LookerでAmazon Athenaの接続設定をする #looker
Lookerを触りはじめて4年、初めてAmazon Athena(以下Athena)とLookerを接続したのでブログに残しておきます。
手順
AWS側で必要な情報、準備
- Athena用のIAMを作成し、必要なロールを付与する
- 対象のS3バケットの読み取り/書き込み権限が必要です
- 作成したIAMユーザーのアクセスキーを作成する
- Athenaを置いているリージョンをこちらで確認する
- ホスト欄に
athena.<Athenaをホストしているリージョン>.amazonaws.com
の形式で入力します
- Lookerからクエリするメインのデータベース名を確認する
- Athenaがクエリ結果を保存しておくS3バケットへのパスを確認する
s3_staging_dir:=s3://<S3バケットへのパス>
の形式で入力します
Looker側での設定
- 管理画面からデータベース > 接続 を選択して必要項目を入力する
1. Athena用のIAMを作成し、必要なロールを付与する
まずはAWSでIAMを作成して、そのIAMに対してAthena接続に必要なロールを付与します。
- IAMのページに移動して、右上の「ユーザーの作成」を選択
- ユーザー名を入力
- 作成するユーザーにポリシーを付与 - ポリシーを検索
今回は、事前に作成されていたポリシーがあったので、それを利用しました。
- 作成するユーザーにポリシーを付与 - 付与するポリシーを選択
- 設定内容を確認して「ユーザーの作成」を選択
2. 作成したIAMユーザーのアクセスキーを作成する
1で作成したIAMユーザーのアクセスキーを作成します。
- ユーザーを作成したらユーザー一覧の画面に遷移するので、先ほど作成したユーザーを選択
- アクセスキーを作成
- アクセスキーを使うケースを選択
(今回はAWSの外部で実行されるアプリケーションを選択)
- アクセスキーがどこで何のために使用されるのかを入力
(仮名は入力できないのでFor Looker Connectionを入力)
- アクセスキーを取得が表示されるので、アクセスキーとシークレットアクセスキーを控えておく
(LookerのConnection設定画面を開いて置いて、そのまま入力してしまうと楽です。上記Looker Connection設定画像の⑥⑦)
- 控えたら完了を選択(完了したらシークレットアクセスキーは確認できなくなるので、確実にメモしておく!)
こちらで確認する
3. Athenaを置いているリージョンを4. Lookerからクエリするメインのデータベース名を確認する
Athenaのページに移動して、メニューからデータソースを選択して、データベースを検索します。
該当のデータベースを選択すると、データベース名が出てくるのでメモしておきます。(上記Looker Connection設定画像の⑤)
5. Athenaがクエリ結果を保存しておくS3バケットへのパスを確認する
Athenaページのメニューからワークグループを選択して、ワークグループを検索します。
該当のワークグループを選択すると、ワークグループ名が出てくるのでメモしておきます。(上記Looker Connection設定画像の⑧)
ここまででAWSで設定、確認しておくことは終了です。
ここからはいよいよLookerのデータベースConnectionの設定をします。
6. LookerのデータベースConnectionの設定
管理画面のメニューから「データベース > 接続」を選択して、右上の「Add Connection」を選択すると、下記設定画面が出てきます。
① 接続の名前を入力
② SQL dialectは「Amazon Athena」を選択
選択すると、入力項目が出現します。
③ 手順3で確認したホスト名を入力
④ 443 と入力されているので、そのままにしておく
⑤ 手順4で確認したデータベース名を入力
⑥⑦ 手順2で作成したアクセスキーとシークレットアクセスキーを入力
⑧ 手順5で確認したAthenaがクエリ結果を保存しておくS3バケットへのパスを入力
必要項目が入力できたら画面下のテストを実行します。問題なく設定ができていたらテストが成功するので接続を選択したら完了です!