クエリ結果を Amazon S3 にエクスポートする
このドキュメントでは、BigLake テーブルに対して実行されたクエリの結果を Amazon Simple Storage Service(Amazon S3)バケットにエクスポートする方法について説明します。
BigQuery と Amazon S3 間のデータフローについては、データをエクスポートする際のデータフローをご覧ください。
制限事項
Amazon S3 と Blob Storage に基づく BigLake テーブルに適用される制限事項の全リストについては、制限事項をご覧ください。
始める前に
以下のリソースがあることを確認してください。
- Amazon S3 バケットにアクセスするための接続。
- Amazon S3 BigLake テーブル。
- 正しいアマゾン ウェブ サービス(AWS)の Identity and Access Management(IAM)ポリシー。
- Amazon S3 バケットにデータを書き込むには、
PutObject権限が必要です。詳細については、BigQuery の AWS IAM ポリシーを作成するをご覧ください。
- Amazon S3 バケットにデータを書き込むには、
- 容量ベースの料金モデルを使用している場合は、プロジェクトで BigQuery Reservation API が有効になっていることを確認します。料金については、BigQuery Omni の料金をご覧ください。
クエリ結果をエクスポートする
BigQuery Omni は、既存のコンテンツが存在するかどうかに関係なく、指定された Amazon S3 のロケーションにコンテンツを書き込みます。エクスポート クエリでは、既存のデータを上書きすることも、クエリ結果を既存のデータと混在させることもできます。クエリ結果は、空の Amazon S3 バケットにエクスポートすることをおすすめします。
クエリを実行するには、次のいずれかのオプションを選択します。
SQL
[クエリエディタ] フィールドに、GoogleSQL エクスポート クエリを入力します。GoogleSQL は Google Cloud コンソールのデフォルトの構文です。
Google Cloud コンソールで、[BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
EXPORT DATA WITH CONNECTION `CONNECTION_REGION.CONNECTION_NAME` OPTIONS(uri="s3://BUCKET_NAME/PATH", format="FORMAT", ...) AS QUERY
次のように置き換えます。
CONNECTION_REGION: 接続が作成されたリージョン。CONNECTION_NAME: S3 バケットへの書き込みに必要な権限を使用して作成した接続名。BUCKET_NAME: データを書き込む Amazon S3 バケット。PATH: エクスポートされるファイルを書き込むパス。../aa/*、../aa/b*c、../aa/*bc、../aa/bc*のように、パス文字列のリーフ ディレクトリに必ず 1 つのワイルドカード*を含める必要があります。BigQuery は、エクスポートされたファイルの数に応じて*を0000..Nに置き換えます。ファイルの数とサイズは BigQuery によって決まります。BigQuery が 2 つのファイルをエクスポートする場合、最初のファイルのファイル名の*は000000000000で置き換わり、2 番目のファイルのファイル前の*は000000000001で置き換わります。FORMAT: サポートされている形式はJSON、AVRO、CSV、PARQUETです。QUERY: BigLake テーブルに保存されているデータを分析するクエリ。クエリで使用される BigLake テーブルを含むデータセットは、ターゲットの Amazon S3 バケットと同じ Amazon S3 リージョンに存在する必要があります。[ 実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Java の設定手順を完了してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
トラブルシューティング
quota failure に関連するエラーが発生した場合は、クエリ用の予約済み容量があるかどうかを確認します。スロット予約の詳細については、このドキュメントの始める前にをご覧ください。
次のステップ
- BigQuery Omni について確認する。
- テーブルデータをエクスポートする方法を確認する。
- Amazon S3 に保存されているデータをクエリする方法を確認する。
- BigQuery Omni の VPC Service Controls の設定方法を確認する。