クエリ結果を Blob Storage にエクスポートする
このドキュメントでは、BigLake テーブルに対して実行されたクエリの結果を Azure Blob Storage にエクスポートする方法について説明します。
BigQuery と Azure Blob Storage 間のデータフローについては、データをエクスポートする際のデータフローをご覧ください。
制限事項
Amazon S3 と Blob Storage に基づく BigLake テーブルに適用される制限事項の全リストについては、制限事項をご覧ください。
始める前に
以下のリソースがあることを確認してください。
- Blob Storage にアクセスするための接続。接続内で、エクスポート先にする Blob Storage コンテナパスのポリシーを作成する必要があります。そのポリシー内で、
Microsoft.Storage/storageAccounts/blobServices/containers/write
権限を持つロールを作成します。 - Blob Storage BigLake テーブル。
- 容量ベースの料金モデルを使用している場合は、プロジェクトで BigQuery Reservation API が有効になっていることを確認します。料金については、BigQuery Omni の料金をご覧ください。
クエリ結果をエクスポートする
BigQuery Omni は、既存のコンテンツに関係なく、指定された Blob Storage のロケーションに書き込みます。エクスポート クエリでは、既存のデータを上書きすることも、クエリ結果を既存のデータと混在させることもできます。クエリ結果は、空の Blob Storage コンテナにエクスポートすることをおすすめします。
Google Cloud コンソールで [BigQuery] ページに移動します。
[クエリエディタ] フィールドに、GoogleSQL エクスポート クエリを入力します。
EXPORT DATA WITH CONNECTION \`CONNECTION_REGION.CONNECTION_NAME\` OPTIONS( uri="azure://AZURE_STORAGE_ACCOUNT_NAME.blob.core.windows.net/CONTAINER_NAME/FILE_PATH/*", format="FORMAT" ) AS QUERY
次のように置き換えます。
CONNECTION_REGION
: 接続が作成されたリージョン。CONNECTION_NAME
: コンテナへの書き込みに必要な権限を使用して作成した接続名。AZURE_STORAGE_ACCOUNT_NAME
: クエリ結果を書き込む Blob Storage アカウントの名前。CONTAINER_NAME
: クエリ結果を書き込むコンテナの名前。FILE_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 テーブルに保存されているデータを分析するクエリ。
トラブルシューティング
quota failure
に関連するエラーが発生した場合は、クエリ用の予約済み容量があるかどうかを確認します。スロット予約の詳細については、このドキュメントの始める前にをご覧ください。
次のステップ
- BigQuery Omni について確認する。
- テーブルデータをエクスポートする方法を学習する。
- Blob Storage に保存されているデータをクエリする方法を学習する。
- BigQuery Omni の VPC Service Controls の設定方法を学習する。