Looker は Amazon Athena への接続をサポートしています。これは、標準 SQL を使用して Amazon S3 のデータを簡単に分析できるインタラクティブなクエリサービスです。Amazon Athena はサーバーレスであるため、インフラストラクチャの管理は不要です。実行したクエリに対してのみ課金されます。
このページでは、Looker を Amazon Athena インスタンスに接続する方法について説明します。
次のものがあることを確認します。
- Amazon AWS アクセスキーのペア。
Amazon Athena を使用して Looker でクエリを実行するデータを含む S3 バケット。Amazon AWS アクセスキーには、このバケットへの読み取り / 書き込みアクセス権が必要です。
Amazon Athena には、ロールまたは権限セットだけでなく、ファイアウォール ルールからも、この S3 バケットにアクセスできる必要があります。Looker の IP の S3 バケットにセキュリティ ルールを追加しないでください。そうすると、Amazon Athena による S3 バケットへのアクセスが誤ってブロックされる可能性があります。(Amazon Athena 以外の言語については、安全なデータベース アクセスの有効化に関するドキュメント ページで説明されているように、IP 許可リストを使用してネットワーク レイヤからのデータへのアクセスを制限することをおすすめします)。
Amazon Athena インスタンス データが配置されている場所に関する知識リージョン名は Amazon Console の右上部分にあります。
Looker の [Admin] セクションで、[Connections] を選択して [Add Connection] をクリックします。
接続の詳細を入力します。
- 名前: 接続の名前を指定します。これは、LookML プロジェクトの接続の参照方法です。
- Dialect: [Amazon Athena] を選択します。
- Host:Port: ホストの名前とポートを指定します。JDBC URL 形式に関する Athena のドキュメントで説明されているように、ホストは有効な Amazon エンドポイント(
athena.eu-west-1.amazonaws.com
など)である必要があり、ポートは443
のままにしておく必要があります。Athena をサポートするエンドポイントの最新のリストについては、AWS 一般リファレンス ページをご覧ください。 - データベース: モデル化するデフォルトのデータベースを指定します。他のデータベースにもアクセスできますが、Looker はこのデータベースをデフォルトのデータベースとして扱います。
- Username: AWS アクセスキー ID を指定します。
- Password: AWS のシークレット アクセスキーを指定します。
- 永続的な派生テーブル: PDT を有効にするにはチェックボックスをオンにします。
- Temp Database: Looker が PDT を書き込む S3 バケットの出力ディレクトリの名前を指定します。出力ディレクトリへのフルパスは、[Additional Params] フィールドに指定する必要があります。このページのクエリ結果と PDT 用の S3 バケットを指定するをご覧ください。
- 最大 PDT ビルダー接続: この接続で可能な同時 PDT ビルドの数を指定します。この値を大きくしすぎると、クエリ時間に悪影響を及ぼす可能性があります。詳細については、Looker のデータベースへの接続ドキュメント ページをご覧ください。
- 追加のパラメータ: 接続の追加パラメータを指定します。
s3_staging_dir
パラメータは、Looker がクエリ結果の出力と PDT に使用する S3 バケットです。このページのクエリ結果の出力と PDT に使用する S3 バケットの指定をご覧ください。- ストリーミング結果をフラグ。Athena ユーザーに
athena:GetQueryResultsStream
ポリシーを接続している場合は、追加のパラメータの末尾に;UseResultsetStreaming=1
を追加すると、大規模な結果セット抽出のパフォーマンスを大幅に向上させることができます。このパラメータはデフォルトで0
に設定されています。 - JDBC 接続文字列に追加する追加のパラメータ(省略可)。
- SSL: 無視。AWS API へのすべての接続は、デフォルトで暗号化されます。
- 最大接続数: デフォルトでは 5 に設定されています。Looker が Athena に対して実行されるメインのクエリエンジンの場合は、この値を 20 まで増やすことができます。サービス制限について詳しくは、Athena サービス制限のドキュメントをご覧ください。詳細については、Looker のデータベースへの接続ページをご覧ください。
- Connection Pool Timeout: 接続プールのタイムアウトを指定します。デフォルトでは、タイムアウトは 120 秒に設定されています。詳細については、Looker のデータベースへの接続ページをご覧ください。
- SQL Runner プリキャッシュ: SQL Runner でテーブルが選択されたときにのみテーブル情報を読み込むようにする場合は、このオプションの選択を解除します。詳細については、Looker のデータベースへの接続ページをご覧ください。
- データベースのタイムゾーン: データベースで使用するタイムゾーンを指定します。タイムゾーンの変換を希望しない場合は、このフィールドを空白のままにします。詳しくは、タイムゾーンの設定の使用に関するドキュメントをご覧ください。
こちらのガイドで、カスタム JDBC 設定の詳細と設定に関するその他の情報をご確認いただけます。
クエリ結果の出力と PDT 用に S3 バケットを指定する
[Connections] ページの [Additional Params] フィールドを使用して、クエリ結果の出力を保存する Looker の S3 バケットへのパスを構成し、PDT を書き込む S3 バケットの出力ディレクトリの名前を指定します。この情報は、s3_staging_dir
パラメータを使用して指定します。
s3_staging_dir
JDBC パラメータは、Amazon Athena S3OutputLocation
プロパティを構成する別の方法です。これは Athena JDBC 接続に必要です。詳細と利用可能な JDBC ドライバ オプションの一覧については、JDBC ドライバ オプションに関する Athena のドキュメントをご覧ください。
[Additional Params] フィールドで、次の形式を使用して s3_staging_dir
パラメータを指定します。
`s3_staging_dir=s3://<s3-bucket>/<output-path>`
ここで
<s3-bucket>
は S3 バケットの名前です。<output-path>
は、Looker がクエリ結果の出力を書き込むパスです。
AWS アクセスキーペアには、
<s3-bucket>
ディレクトリへの書き込み権限が必要です。
Looker が PDT を書き込むディレクトリを構成するには、[Temp Database] フィールドに、上記の S3 バケット内のディレクトリのパスを入力します。たとえば、Looker で PDT を s3://<s3-bucket>/looker_scratch
に書き込む場合は、[Temp Database] フィールドに次のように入力します。
`looker_scratch`
ディレクトリのパスのみを入力します。Looker は、[Additional Params] フィールドに入力した s3_staging_dir
パラメータから S3 バケット名を取得します。
S3 バケットに関する考慮事項
指定した S3 バケット内の不要なファイルを定期的にクリーンアップするように、Amazon S3 オブジェクトのライフサイクルを構成することをおすすめします。これには次のような理由があります。
- Athena は、すべてのクエリのクエリ結果を S3 バケットに保存するので、Athena クエリをご覧ください。
- PDT が有効になっている場合は、PDT が作成されると、作成されたテーブルに関するメタデータが S3 バケットに保存されます。
関連情報
- Amazon Athena のドキュメント
- Athena 用の Amazon Web Services Console(AWS ログインが必要です)
- Amazon Athena SQL と HiveQL リファレンス
デバッグ
Amazon には、接続をデバッグするための LogLevel
と LogPath
の JDBC ドライバ オプションが用意されています。それらを使用するには、[Additional Params] フィールドの最後に ;LogLevel=DEBUG;LogPath=/tmp/athena_debug.log
を追加してから、もう一度接続をテストします。
Looker がインスタンスをホストしている場合、Looker サポートまたはアナリストはこのファイルを取得してデバッグを続行する必要があります。
機能のサポート
一部の機能については、Lookerでサポートするには、データベースダイアレクトが同じ機能に対応している必要があります。
Looker の最新リリースでは、Amazon Athena は Looker の次の機能をサポートしています。
次のステップ
データベース接続が完了したら、認証オプションを構成します。