Amazon Athena

Looker は、標準の SQL を使用して Amazon S3 のデータを簡単に分析できるインタラクティブ クエリサービスである Amazon Athena への接続をサポートしています。Amazon Athena はサーバーレスであるため、管理するインフラストラクチャはありません。実行されたクエリに対してのみ料金が発生します。

ネットワークトラフィックの暗号化

Looker アプリケーションとデータベース間のネットワーク トラフィックを暗号化することをおすすめします。セキュアなデータベースアクセスを可能にするドキュメント ページに記載されているオプションのいずれかを検討してください。

Amazon Athena 接続を構成する

このページでは、Looker を Amazon Athena インスタンスに接続する方法について説明します。

  1. 以下があることを確認してください。

    • Amazon AWS のアクセスキーのペア。
    • Amazon Athena で Looker でクエリを実行するデータを含む S3 バケット。Amazon AWS アクセスキーには、このバケットへの読み取り / 書き込みアクセス権が必要です。

      Amazon Athena は、ロールまたは権限セットのいずれかと、ファイアウォール ルールによって、この S3 バケットにアクセスできる必要があります。Looker の IP の S3 バケットにセキュリティ ルールを追加しないでください。セキュリティ ルールによって誤って Amazon Athena が S3 バケットにアクセスできなくなる可能性があります。(Amazon Athena 以外の言語では、安全なデータベース アクセスを有効にするのドキュメント ページに記載されているように、ユーザーが IP 許可リストを使用してネットワーク層からのデータへのアクセスを制限できます。)

    • Amazon Athena インスタンス データが保存されている場所に関する知識。リージョン名は Amazon Console の右上にあります。

  2. Looker の [管理者] セクションで [接続] を選択し、[新しい接続] をクリックします。

  3. 接続の詳細を入力します。

    • Name: 接続の名前を指定します。LookML プロジェクトでこの接続を参照する際に使用します。
    • 言語: [Amazon Athena] を選択します。
    • ホストポート: JDBC URL 形式の Athena ドキュメントで説明されているように、ホストとポートの名前を指定します。ホストは有効な Amazon エンドポイント(athena.eu-west-1.amazonaws.com など)であり、ポートは 443 にとどまる必要があります。Athena をサポートするエンドポイントの最新リストについては、AWS 全般リファレンスのページをご覧ください。
    • データベース: モデル化するデフォルトのデータベースを指定します。他のデータベースにもアクセスできますが、Looker はこのデータベースをデフォルトのデータベースとして扱います。
    • ユーザー名: AWS アクセスキー ID を指定します。
    • パスワード: AWS のシークレット アクセスキーを指定します。
    • PDT を有効にする: 永続的な派生テーブル(PDT)を有効にするには、この切り替えボタンを使用します。PDT を有効にすると、追加の PDT フィールドと、接続用の [PDT オーバーライド] セクションが表示されます。
    • : PDT を書き込む S3 バケットの出力ディレクトリの名前を指定します。出力ディレクトリへのフルパスは、[その他の JDBC パラメータ] フィールドに指定する必要があります。このページのクエリ結果の出力と PDT に S3 バケットを指定するをご覧ください。
    • PDT ビルダーの最大接続数: この接続で同時に可能な PDT ビルドの数を指定します。この値を大きく設定しすぎると、クエリ時間に悪影響を及ぼす可能性があります。詳細については、Looker をデータベースに接続のドキュメント ページをご覧ください。
    • : 接続の追加パラメータを指定します。
      • s3_staging_dir パラメータは、Looker がクエリ結果出力と PDT に使用する S3 バケットです。このページのクエリ結果出力と PDT の S3 バケットの指定をご覧ください。
      • 結果をストリーミングするためのフラグ。Athena ユーザーに athena:GetQueryResultsStream ポリシーが接続されている場合、追加の JDBC パラメータの末尾に ;UseResultsetStreaming=1 を追加することで、一連のラージ アウトプット抽出のパフォーマンスを大幅に向上させることができます。このパラメータはデフォルトで 0 に設定されています。
      • JDBC 接続文字列に追加するオプションのパラメータ。
    • SSL: 無視します。デフォルトでは、AWS API へのすべての接続が暗号化されます。
    • ノードあたりの最大接続数: デフォルトでは 5 に設定されています。Looker が Athena に対して実行されるメインクエリ エンジンである場合は、この値を最大 20 まで増やすことができます。サービスの制限の詳細については、Athena サービスの制限に関するドキュメントをご覧ください。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。
    • 接続プールのタイムアウト: 接続プールのタイムアウトを指定します。デフォルトのタイムアウトは 120 秒に設定されています。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。
    • SQL Runner Precache: テーブルが選択されている場合にのみ、SQL Runner でテーブル情報を読み込む場合に、このオプションの選択を解除します。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。
    • データベースのタイムゾーン: データベースで使用されるタイムゾーンを指定します。タイムゾーンの変換を行わない場合は、このフィールドを空白のままにします。詳しくは、タイムゾーンの設定の使用のドキュメント ページをご覧ください。

接続が成功したことを確認するには、[テスト] をクリックします。トラブルシューティング情報については、データベース接続のテストのドキュメント ページをご覧ください。

これらの設定を保存するには、[接続] をクリックします。

クエリ結果出力と PDT の S3 バケットの指定

[接続] ページの [その他の JDBC パラメータ] フィールドを使用して、Looker がクエリ結果出力の保存に使用する S3 バケットへのパスを構成し、Looker で PDT を書き込む S3 バケット内の出力ディレクトリの名前を指定します。この情報は、s3_staging_dir パラメータを使用して指定します。

s3_staging_dir JDBC パラメータは、Athena JDBC 接続に必要な Amazon Athena S3OutputLocation プロパティを構成する別の方法です。詳細と利用可能なすべての JDBC ドライバ オプションのリストについては、Athena のドキュメントの JDBC ドライバ オプションをご覧ください。

[その他の JDBC パラメータ] フィールドに次の形式を使用して s3_staging_dir パラメータを指定します。

`s3_staging_dir=s3://<s3-bucket>/<output-path>`

ここで

  • <s3-bucket> は S3 バケットの名前です。
  • <output-path> は、Looker がクエリ結果の出力を書き込むパスです。

AWS アクセスキー ペアには、<s3-bucket> ディレクトリへの書き込み権限が必要です。

Looker が PDT を書き込むディレクトリを構成するには、[一時データベース] フィールドに。S3 バケット内のディレクトリのパスを入力します。 たとえば、Looker で PDT を s3://<s3-bucket>/looker_scratch に書き込む場合は、[一時データベース] フィールドに次のように入力します。

`looker_scratch`

ディレクトリのパスのみを入力します。Looker は、[その他の JDBC パラメータ] フィールドに入力した s3_staging_dir パラメータから S3 バケット名を取得します。

S3 バケットに関する考慮事項

Amazon S3 オブジェクトのライフサイクルを構成して、指定した S3 バケット内の不要なファイルを定期的にクリーンアップすることをおすすめします。これには理由があります。

  • Athena は、すべてのクエリのクエリ結果を S3 バケットに保存します。Athena のクエリ処理をご覧ください。
  • PDT が有効になっている場合、PDT が作成されると、作成されたテーブルのメタデータが S3 バケットに保存されます。

関連情報

デバッグ

Amazon は、接続をデバッグするための LogLevel および LogPath JDBC ドライバ オプションを提供します。これらを使用するには、[その他の JDBC パラメータ] フィールドの末尾に ;LogLevel=DEBUG;LogPath=/tmp/athena_debug.log を追加して接続を再度テストします。

インスタンスが Looker でホストされている場合は、Looker サポートまたはアナリストがこのファイルを取得してデバッグを続行する必要があります。

機能のサポート

一部の機能については、Looker でサポートするには、データベース言語が同じ機能に対応している必要があります。

Amazon Athena では、Looker 24.10 の時点で、次の機能がサポートされています。

特徴 サポート対象
サポート レベル
サポート対象
Looker(Google Cloud コア)
はい
対称集計
あり
派生テーブル
あり
永続的な SQL 派生テーブル
あり
永続的なネイティブ派生テーブル
あり
安定したビュー
あり
クエリの強制終了
あり
SQL ベースのピボット
あり
タイムゾーン
あり
SSL
あり
Subtotals
いいえ
JDBC の追加パラメータ
あり
Case Sensitive
あり
ロケーション タイプ
あり
リストのタイプ
あり
パーセンタイル
あり
個別のパーセンタイル
いいえ
SQL Runner の表示プロセス
いいえ
SQL Runner の説明テーブル
あり
SQL Runner 表示インデックス
いいえ
SQL Runner Select 10
あり
SQL ランナーの数
あり
SQL の説明
いいえ
Oauth 認証情報
いいえ
コンテキスト コメント
あり
接続プーリング
いいえ
HLL スケッチ
あり
集計認識
あり
増分PDT
いいえ
ミリ秒
あり
マイクロ秒
いいえ
マテリアライズド ビュー
いいえ
Approximate Count Distinct
あり

次のステップ

データベース接続が完了したら、認証オプションを構成します