このページでは、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
データ型が含まれます。変更イベントの種類(INSERT
、UPDATE-INSERT
、UPDATE-DELETE
、DELETE
)を示します。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 無限大型などの範囲外の日時リテラルを次の値にマッピングします。
- 正の
DATE
を9999-12-31
の値に - 負の
DATE
を0001-01-01
の値に - 正の
TIMESTAMP
を9999-12-31 23:59:59.999000 UTC
の値に - 負の
TIMESTAMP
を0001-01-01 00:00:00 UTC
の値に
- 正の
BigQuery は、主キーのデータ型が
FLOAT
またはREAL
のストリーミング テーブルをサポートしていません。このようなテーブルは複製されません。BigQuery の日付型と範囲の詳細については、データ型をご覧ください。ソースが Salesforce の場合、[スキーマごとにデータセット] 構成オプションはサポートされていません。