このページでは、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 の料金をご覧ください。
費用管理のベスト プラクティス
Datastream で BigQuery を宛先として使用する場合は、次の費用管理のベスト プラクティスを検討してください。
- BigQuery CDC の費用を把握する: Datastream で BigQuery を宛先として使用する場合、変更データ キャプチャ(CDC)にはバックグラウンド マージ オペレーションが含まれます。デフォルトでは、
`BACKGROUND` または `BACKGROUND_CHANGE_DATA_CAPTURE` BigQuery
予約の割り当てなしで実行される BigQuery CDC 取り込みバックグラウンド ジョブには、
オンデマンド料金が適用されます。
BACKGROUNDBACKGROUND_CHANGE_DATA_CAPTURE - BigQueryこれにより、固定料金で固定容量が提供され、費用をより予測しやすくなります。詳細については、 CDC 取り込みで使用する BigQuery 予約を構成するをご覧ください。
max_stalenessを調整する: BigQuery のmax_stalenessパラメータは、データの鮮度と費用の直接的なトレードオフです。値が小さいほど、マージ オペレーションの頻度が高くなり、費用は高くなりますが、データはより最新になります。予算を超過することなく、データの鮮度に関するビジネス要件を満たすレベルにこのパラメータを調整します。詳細については、テーブルの鮮度を管理するをご覧ください。
既知の制限事項
宛先として BigQuery を使用する場合の既知の制限事項は次のとおりです。
- デフォルトでは、Datastream は、主キーなしで BigQuery にすでに複製されているテーブルに主キーを追加したり、主キーありで BigQuery に複製されているテーブルから主キーを削除したりすることをサポートしていません。このような変更を行う必要がある場合は、Google サポートにお問い合わせください。すでに主キーがある ソーステーブルの主キー定義を変更する方法については、問題の診断 をご覧ください。
BigQuery の主キーは、次のデータ型である必要があります。
DATEBOOLGEOGRAPHYINT64NUMERICBIGNUMERICSTRINGTIMESTAMPDATETIME
サポートされていないデータ型の主キーを含むテーブルは、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 または Salesforce Marketing Cloud (プレビュー版) の場合、 [スキーマごとのデータセット] 構成オプションはサポートされていません。