送信先としての BigQuery

このページでは、BigQuery の宛先の概要について説明します。このドキュメントでは、BigQuery にデータを複製する際の Datastream の書き込み動作と既知の制限事項について説明します。

書き込みの動作

  • BigQuery にデータをストリーミングする際のイベントの最大サイズは 20 MB です。

  • ストリームを構成するときに、Datastream が変更データを BigQuery に書き込む方法を選択できます。詳細については、書き込みモードを構成するをご覧ください。

テーブルのメタデータ

Datastream は、BigQuery の宛先に書き込まれる各テーブルに datastream_metadata という名前の STRUCT 列を追加します。

マージ書き込みモード

ソースのテーブルに主キーがある場合、列には次のフィールドが含まれます。

  • UUID このフィールドには STRING データ型が含まれます。
  • SOURCE_TIMESTAMP このフィールドには INTEGER データ型が含まれます。

テーブルに主キーがない場合、列には IS_DELETED という追加フィールドが含まれます。このフィールドには BOOLEAN データ型があり、Datastream が宛先にストリーミングするデータがソースの DELETE オペレーションに関連付けられているかどうかを示します。主キーのないテーブルは追加専用です。

追記専用の書き込みモード

datastream_metadata 列には、主キーのあるテーブルとないテーブルで同じフィールドが含まれます。

  • UUID このフィールドには STRING データ型が含まれます。
  • SOURCE_TIMESTAMP このフィールドには INTEGER データ型が含まれます。
  • CHANGE_SEQUENCE_NUMBER このフィールドには STRING データ型が含まれます。 これは、Datastream が各変更イベントに使用する内部シーケンス番号です。
  • CHANGE_TYPE このフィールドには STRING データ型が含まれます。変更イベントの種類(INSERTUPDATE-INSERTUPDATE-DELETEDELETE)を示します。
  • SORT_KEYS: このフィールドには STRING 値の配列が含まれます。これらの値を使用して、変更イベントを並べ替えることができます。

BigQuery の費用を管理する

BigQuery の費用は Datastream とは別に請求されます。BigQuery の費用を管理する方法については、BigQuery CDC の料金をご覧ください。

既知の制限事項

宛先として BigQuery を使用する場合の既知の制限事項は次のとおりです。

  • データを複製できるのは、Datastream ストリームと同じ Google Cloud プロジェクトにある BigQuery データセットのみです。
  • デフォルトでは、Datastream は、主キーなしで BigQuery にすでに複製されているテーブルに主キーを追加することや、主キーありで BigQuery に複製されているテーブルから主キーを削除することをサポートしていません。このような変更が必要な場合は、Google サポートにお問い合わせください。すでに主キーがあるソーステーブルの主キー定義を変更する方法については、問題を診断するをご覧ください。
  • BigQuery の主キーは、次のデータ型である必要があります。

    • DATE
    • BOOL
    • GEOGRAPHY
    • INT64
    • NUMERIC
    • BIGNUMERIC
    • STRING
    • TIMESTAMP
    • DATETIME

    サポートされていないデータ型の主キーを含むテーブルは、Datastream によって複製されません。

  • BigQuery は、.$/@+ の文字を含むテーブル名をサポートしていません。Datastream は、宛先テーブルの作成時にこのような文字をアンダースコアに置き換えます。

    たとえば、ソース データベースの table.name は BigQuery では table_name になります。

    BigQuery のテーブル名の詳細については、テーブルの命名をご覧ください。

  • BigQuery は、4 つを超えるクラスタリング列はサポートしていません。主キー列が 5 つ以上あるテーブルを複製する場合、Datastream は 4 つの主キー列をクラスタリング列として使用します。

  • Datastream は、PostgreSQL 無限大型などの範囲外の日時リテラルを次の値にマッピングします。

    • 正の DATE9999-12-31 の値に
    • 負の DATE0001-01-01 の値に
    • 正の TIMESTAMP9999-12-31 23:59:59.999000 UTC の値に
    • 負の TIMESTAMP0001-01-01 00:00:00 UTC の値に
  • BigQuery は、主キーのデータ型が FLOAT または REAL のストリーミング テーブルをサポートしていません。このようなテーブルは複製されません。BigQuery の日付型と範囲の詳細については、データ型をご覧ください。

  • ソースが Salesforce の場合、[スキーマごとにデータセット] 構成オプションはサポートされていません。

次のステップ