Cloud Storage の転送でのパラメータの使用

は、

BigQuery Data Transfer Service for Cloud Storage を使用すると、Cloud Storage から BigQuery への繰り返しのデータ読み込みをスケジュールできます。

Cloud Storage の転送でランタイム パラメータを使用することで、次のことができます。

  • 宛先テーブルをどのように分割するかを指定する
  • Cloud Storage から特定の日付に一致するファイルを取得する

使用可能なランタイム パラメータ

Cloud Storage の転送を設定するときに、ランタイム パラメータを使用して宛先テーブルをどのように分割するかを指定できます。

パラメータ テンプレートの種類
run_time フォーマットされたタイムスタンプ スケジュールごとに UTC 時間で設定されます。定期的にスケジュールされた転送の場合、run_time は実行予定時刻を表します。たとえば、転送が「24 時間ごと」に設定されている場合、実際の実行時間が多少異なる場合でも、連続する 2 つのクエリ間の run_time 差はちょうど 24 時間になります。

TransferRun.runTime をご覧ください。
run_date 日付文字列 %Y%m%d」形式の run_time パラメータの日付。たとえば、「20180101」となります。この形式は、取り込み時間分割テーブルと互換性があります。

テンプレート システム

Cloud Storage の転送では、テンプレート構文で宛先テーブル名内のランタイム パラメータをサポートします。

パラメータ テンプレート構文

テンプレート構文は、基本的な文字列のテンプレートと時間オフセットをサポートします。パラメータは、次の形式で参照されます。

  • {run_date}
  • {run_time[+\-offset]|"time_format"}

パラメータ 目的
run_date このパラメータは、YYYYMMDD 形式の日付に置き換えられます。
run_time このパラメータは、次のプロパティをサポートします。


offset
時間オフセットは、時間(h)、分(m)、秒(s)の順序で表されます。
日(d)はサポートされていません。
小数を指定できます。例: 1.5h

time_format
フォーマット文字列。最も一般的なパラメータの形式は、年(%Y)、月(%m)、日(%d)です。
分割テーブルの場合、YYYYMMDD は必須の接尾辞です。これは「%Y%m%d」と同等です。

詳しくは datetime エレメントのフォーマット設定をご覧ください。

使用上の注意:

  • run_time、offset、time 形式の間に空白文字は使用できません。
  • 文字列にリテラル中括弧を含むには、‘\{‘ and ‘\}’ としてエスケープできます。
  • time_format に “YYYY|MM|DD” などのリテラル引用符や縦線を含むには、‘\”’‘\|’ のフォーマット文字列でエスケープできます。

パラメータ テンプレートの例

以下の例は、異なる時刻形式の宛先テーブル名を指定し、実行時間をオフセットする方法を示しています。
run_time(UTC) テンプレート パラメータ 出力宛先テーブル名
2018-02-15 00:00:00 mytable mytable
2018-02-15 00:00:00 mytable_{run_time|"%Y%m%d"} mytable_20180215
2018-02-15 00:00:00 mytable_+25h{run_time|"%Y%m%d"} mytable_20180216
2018-02-15 00:00:00 mytable_-1h{run_time|"%Y%m%d"} mytable_20180214
2018-02-15 00:00:00 mytable_+1.5h{run_time|"%Y%m%d;%H"}
または
mytable_+90m{run_time|"%Y%m%d;%H"}
mytable_2018021501
2018-02-15 00:00:00 {run_time+97s|"%Y%m%d"}_mytable_{run_time|"%H%M%s"} 20180215_mytable_000137

分割のオプション

Cloud Storage の転送では、分割された宛先テーブルまたは分割されていない宛先テーブルに書き込むことができます。BigQuery には次の 2 つのタイプのテーブル分割があります。

  • 取り込み時間で分割されたテーブル: 取り込み時間に基づいて分割されたテーブル。Cloud Storage の転送の場合、取り込み時間は転送の実行時間です。
  • 分割テーブル: TIMESTAMP 列または DATE 列に基づいて分割されたテーブル。

宛先テーブルが列に分割されている場合は、宛先テーブルを作成する際に分割する列を特定し、スキーマを指定します。列ベースの分割テーブルの作成については、分割テーブルの作成と使用をご覧ください。

分割の例

  • 分割なしのテーブル
    • [Destination table] - mytable
  • 取り込み時間分割テーブル
    • [Destination table] - mytable$YYYYMMDD
  • 列分割テーブル
    • [Destination table] - mytable
    • テーブルのスキーマを作成する場合は、分割する列として TIMESTAMP 列または DATE 列を指定します。

ランタイム パラメータの例

これらの例は、一般的な使用例でワイルドカード文字とパラメータを結合する方法を示しています。すべての例で、run_time2018-02-15 00:00:00(UTC)であると仮定します。

地域のタイムゾーンに基づいてデータを分割する場合は、テンプレート構文のオフセット メカニズムを使用して、UTC に対する補正時間を手動で計算する必要があります。

Cloud Storage のデータを分割されていないテーブルに転送する

この使用例は、Cloud Storage バケットから分割されていないテーブルに新しいファイルを読み込む際に適用されます。この例では、Cloud Storage URI でワイルドカードを使用し、アドホックの更新転送によって、作成後 1 時間以上経過した新しいファイルを転送対象にしています。

ソース(Cloud Storage URI) 宛先テーブル名
構成済み gs://bucket/*.csv mytable
評価済み gs://bucket/*.csv mytable

すべてのデータのスナップショットを取り込み時間分割テーブルに読み込む

この場合、指定された Cloud Storage URI 内のすべてのデータは、当日の日付で分割されたテーブルに転送されます。更新転送では、この構成によって、最後の読み込み以降に新たに追加されたファイルが転送対象になり特定のパーティションに追加されます。

ソース(Cloud Storage URI) 宛先テーブル名
構成済み gs://bucket/*.csv mytable${run_time|”%Y%m%d”}
評価済み gs://bucket/*.csv my_table$20180215

日付固有のデータを取り込み時間分割テーブルに読み込む

この使用例では、Cloud Storage の当日のデータが、当日の日付で分割されたテーブルに転送されます。この使用例は更新転送にも適用されます。更新転送では、特定の日付に一致する新たに追加されたファイルを取得し、対応するパーティションに読み込みます。

ソース(Cloud Storage URI) 宛先テーブル名
構成済み gs://bucket/events-{run_time|"%Y%m%d"}/*.csv mytable${run_time|”%Y%m%d”}
評価済み gs://bucket/events-20180215/*.csv my_table$20180215

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。