転送元 - Google BigQuery

Prev Next

概要

Google Cloud PlatformのBigQueryからデータを転送する設定のDocsです。

制約

  • 転送容量の制限があります。
  • Google Spreadsheetsを外部テーブルとしたテーブルに対しては、クエリを実行できません。

設定項目

STEP1 基本設定

ロケーションに関する制約

以下のロケーションはすべて一致させる必要があります。

  • SQL内に記述するデータセット
  • 一時テーブル作成先データセット
  • データセットのロケーション
項目名 必須 デフォルト値 内容
BigQuery接続情報 Yes - BigQueryの接続情報を参照ください。
SQL Yes - BigQueryから転送データを取得するためのSQLを入力します。
FROM句は、`FROM <project_name><dataset_name>.<table_name>` の形式で記述してください。
SQLタイプ Yes 標準SQL 標準SQLとレガシーSQLから選択できます。
それぞれの違いについて、詳しくはBigQuery公式ドキュメント - Comparison of legacy and GoogleSQLを参照ください。
一時テーブル作成先データセット Yes - 転送元BigQueryでは、転送処理時にSQLの実行結果を一時テーブルに保存します。
その一時テーブルをどのデータセットに作成するかを指定します。
BigQuery上にすでに存在するデータセットを指定してください。

なお、作成された一時テーブルは転送ジョブが正常に終了すると削除されます。
一方、転送ジョブがエラー終了した場合は、一時テーブルがデータストアに残ってしまう可能性があります。ご留意ください。
データセットのロケーション Yes US (米国) SQLで指定したデータセットと、一時テーブル作成先データセットのロケーションを選択します。
これらのロケーションはすべて一致させる必要があります。
一時データエクスポート指定 Yes バケットのみ指定 転送元BigQueryでは、BigQueryのデータを一時的にGoogle Cloud Storageにエクスポートします。
そのエクスポート先となるCloud Storage バケット内のパスの指定方法を選択します。
  • バケットのみ指定:Cloud Storageのバケット名を指定します。この場合、指定したバケット内にユニークなフォルダが生成され、その中に一時データがエクスポートされます。
  • カスタムパス設定:Cloud Storage バケット内のファイルパスを指定します。バケット名のみの指定はできません

いずれの場合も、Google Cloud Storage上にすでに存在するバケットまたはファイルパスを指定してください。
一時データのファイル形式 Yes CSV Google Cloud Storageにエクスポートする一時データのファイル形式を選択します。
なお、既存の転送設定に対して本設定を変更する場合は、転送設定STEP2に遷移する際に自動データ設定を行ってください。
一時データの削除ポリシー Yes 削除する Google Cloud Storageにエクスポートした一時データを、ジョブ完了後に削除するかどうかを選択します。
ジョブ完了後に一時データを確認したい場合は、削除しないを選択してください。
一時データの確認方法について、詳しくはGCS上の一時データを確認する方法を参照ください。
一時データエクスポート指定にてカスタムパス設定を選択した場合

Google Cloud Storage URIに入力するファイルパスのファイル部分に、ワイルドカード「*」を含めるかどうかで挙動が変わります。

  • ワイルドカードを含める場合(例:gs://<BUCKET_NAME>/foo/bar*
    • 一時データは複数ファイルに分割されてエクスポートされます。
  • ワイルドカードを含めない場合(例:gs://<BUCKET_NAME>/foo/bar
    • 一時データは単一ファイルでエクスポートされます。

ただし、BigQueryは1GB以上のテーブルデータのエクスポートには対応していません。
この場合、ワイルドカードを含めて、複数ファイルに分割してエクスポートすることを検討ください。
本仕様について、詳しくはBigQuery公式ドキュメント - テーブルデータを Cloud Storage にエクスポートするを参照ください。

STEP1の詳細設定

項目名 デフォルト値 内容
ジョブ待機タイムアウト(秒) 600 ジョブが実行されるまでの待機時間のタイムアウトを秒単位で指定できます。
クエリキャッシュを利用する 有効 BigQueryのクエリキャッシュ機能を利用するか選択します。
詳しくは、BigQuery公式ドキュメント - Short query optimized modeをご参照ください。
ジョブ待機タイムアウトの利用例

BigQueryで実行中のクエリが多い場合、スロット制限により、ジョブが実行されるまでの待機時間が発生することがあります。
この待機時間が指定したタイムアウト時間に達すると、Not found: Tableといったエラーが発生し、該当の転送ジョブは失敗します。
そのような場合にジョブ待機タイムアウトの時間を増やすことで、転送ジョブの失敗を回避できます。

必要な権限

ご利用いただくにあたって必要な権限は以下となります。

  • bigquery.datasets.get
  • bigquery.jobs.create
  • bigquery.tables.create
  • bigquery.tables.delete
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.updateData
  • storage.buckets.create
  • storage.buckets.delete
  • storage.buckets.get
  • storage.buckets.list
  • storage.objects.create
  • storage.objects.delete
  • storage.objects.get
  • storage.objects.list

GCS上の一時データを確認する方法

前述の通り、転送データはGCSの指定したバケット・フォルダに一時的に格納されます。
「一時データの削除ポリシー」を「削除しない」に設定した場合、GCSに残った一時データを転送後に確認できます。
一時データは圧縮されているため、内容を確認したい場合には、解凍する必要があります。
一時データの拡張子を.gzに変更し、gzipで解凍したうえで、ファイルの内容を確認してください。