2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Amazon AthenaとYellowfinでS3にあるCSVファイルを可視化する

Last updated at Posted at 2019-12-10

Yellowfin 8.0.2ではAmazon Athenaが正式にサポートされました。この機能を使えば、Amazon S3に保管されたデータを容易に分析することができます。
この記事では、簡単なCSVのファイルを例として、Yellowfin+Athena+S3を連携する手順をご紹介します。

Amazon Athenaとは

Amazon Athenaは標準SQLを使用してAmazon S3内のデータを直接、簡単に分析できるようにするインタラクティブなクエリサービスです。
CSV、JSON、ORC、Avro、Parquetといったさまざまなデータ形式がサポートされており、AthenaのJDBCドライバーを使用して、さまざまなBIツールからAthenaに接続することもできます。
image-c.png

つまり、上図のようにAthenaを中継することによって、S3のファイルをわざわざDBに取り込まなくてもYellowfinの分析対象としてしまえるのです。

Amazon Athenaを使ってみる

それではAthenaを実際に使ってみましょう。やることはざっくり以下の4つです。

  • IAMで権限のあるアクセスキーを作成する
  • S3にファイルを置く
  • Athenaにテーブルを作る
  • Yellowfin(BIツール)のデータソースを設定する

IAMで権限のあるアクセスキーを作成する

まず、S3とAthenaへのアクセス権を割り当てます。とりあえず細かいことは考えずに動かしてみたいので、どちらもフルアクセスを直接アタッチしました。
02.png

そして、アクセスキーを作成します。アクセスキーIDシークレットアクセスキーは後で必要になるので、手元にコピーしておきます。

03.png

S3にファイルを置く

Amazon S3にファイルを配置します。
今回はKaggleで公開されているユニクロ(ファーストリテイリング)の2010年から2016年の株価データをサンプルとして使用します。

S3にバケット、フォルダを作成し、CSVファイルを配置します。
ただ、ダウンロードしたCSVファイルはそのまま使わず、ヘッダー行の除去を行っています。Athenaを使う場合、こうした前処理はAWS GlueなどのETLで事前に済ませておく必要があります。なお、今回は手作業で除去しました。
01.png

配置したフォルダのパス(s3://バケット名/フォルダ名/〜)が後で必要になりますので、手元にコピーしておいてください。

Athenaにテーブルを作る

Athenaのサービス画面のトップにある「Get Started」をクリックします。
04.png

このメッセージが出ているときは、クエリの実行結果の出力先を事前に設定する必要があります。リンクをクリックして、出力先にするS3のフォルダを指定してください。とりあえず動かすだけなら適当なフォルダで大丈夫です。
この出力先も後で必要になるので、手元にコピーしておいてください。
06.png

「Create Table」→「from S3 bucket data」と進みます。
05.png

データベース名、テーブル名と、CSVを配置したフォルダのパスを入力します。パスはフォルダまでで、ファイル名は不要です。
07.png

データフォーマットは「CSV」を選択します。
08.png

カラムを定義します。今回の例では以下の7つのカラムを定義しました。

  • date (date型)
  • open(int型)
  • high(int型)
  • low(int型)
  • close(int型)
  • volume(bigint型)
  • stock_trading(bigint型)

09.png

パーティションは特に追加せずにテーブルを作成します。
12.png

テーブル作成が成功したらResultsに「Query successful.」と表示されます。
10.png

Athenaの画面上でクエリを実行してみると、CSVファイルを探索した結果が返ってきました。
13.png

Yellowfinのデータソースを設定する

JDBCドライバの入手

AWSから提供されているAthenaのJDBCドライバを入手します。ご自身の環境に合わせた適切なものをダウンロードしてください。

プラグインの追加

Yellowfinのメニューの「管理」→「プラグイン管理」から、入手したJDBCドライバをプラグインとして追加します。

15.png

データソースの追加

プラグインを追加すると、データソース作成時にデータベースタイプ「Amazon Athena」が選択可能になります。
17.png

以下の4箇所を入力します。

  • リージョン:AWSのリージョン名
  • S3の場所:上記手順で設定したクエリ実行結果の出力先のパス
  • ユーザー名:上記手順で設定したアクセスキーID
  • パスワード:上記手順で設定したシークレットアクセスキー

18.png

接続に成功すれば、あとはごく普通にビューやレポートを作成することが可能です。
19.png

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?