BigQuery の宛先に対してパーティショニングとクラスタリングを構成することで、クエリのパフォーマンスを最適化し、コストを制御できます。パーティショニングとクラスタリングを使用すると、クエリの実行中に BigQuery がスキャンする必要があるデータ量を減らすことができます。
テーブルのパーティショニング
テーブル パーティション化により、テーブルがパーティションと呼ばれるセグメントに分割され、データの管理とクエリが容易になります。テーブルを分割するには、テーブルの分割に使用するパーティション列を指定します。
Datastream は、BigQuery テーブルの次の 3 種類のパーティショニングをサポートしています。
取り込み時間によるパーティショニング: Datastream が BigQuery にデータを取り込む時間に基づいてテーブルをパーティション分割できます。取り込み時間のパーティション分割には、時間別、日別、月別、または年別の粒度を選択できます。デフォルトの粒度は [日] です。
時間単位で分割: Datastream が次のいずれかの BigQuery データ型にマッピングするデータ型のソース列に基づいてテーブルをパーティション分割できます。
DATE、DATETIME、 またはTIMESTAMP。 Datastream がソースデータ型を BigQuery データ型にマッピングする方法については、BigQuery でのデータ型マッピングをご覧ください。ソース列がマッピングされる BigQuery のデータ型に応じて、次のいずれかの粒度タイプを選択できます。
DAY、MONTH、YEAR:DATEデータ型の場合。HOUR、DAY、MONTH、YEAR:のためにDATETIMEそしてTIMESTAMPデータ型。
整数範囲によるパーティション分割: Datastream が BigQuery にマッピングするデータ型のソース列でテーブルをパーティション分割できます。
INTEGERデータ型。以下の情報を提供する必要があります。- 開始: 最初のパーティション範囲の開始値(含む)。
- 終了: 最後のパーティション範囲の終了値(含まない)。
- 間隔: 各パーティション範囲の幅。
詳細については、整数範囲のパーティショニングをご覧ください。
BigQuery でのパーティショニングの詳細については、パーティション分割テーブルの概要とパーティション分割テーブルの管理をご覧ください。
テーブルのクラスタリング
クラスタリングは、クラスタリング列の値に基づいてテーブル内のデータを並べ替え、類似した値を持つデータを同じ場所に配置します。クラスター化列でフィルタリングするクエリは、テーブル全体またはテーブルパーティションではなく、関連するデータ ブロックのみをスキャンします。これにより、クエリのパフォーマンスが向上し、クエリのコストが削減されます。
BigQuery テーブルを最大 4 つの列でクラスタ化できます。列を指定する順序によって、データの並べ替え順序が決まります。
Datastream が次のいずれかの BigQuery データ型にマッピングするデータ型のソース列に基づいてテーブルをクラスタ化できます。
BIGNUMERICBOOLEANDATEDATETIMEGEOGRAPHYINT64NUMERICRANGESTRINGTIMESTAMP
Datastream がソースデータ型を BigQuery データ型にマッピングする方法については、BigQuery でのデータ型マッピングをご覧ください。
BigQuery でのクラスタリングの詳細については、クラスタ化テーブルの概要とクラスタ化テーブルの管理をご覧ください。
制限事項
BigQuery でのパーティショニングの制限については、パーティション分割テーブルの概要をご覧ください。
BigQuery のクラスタリングに関する制限については、クラスタ化テーブルの概要をご覧ください。
BigQuery パーティション分割テーブルに適用される割り当て制限については、割り当てと制限をご覧ください。
また、Datastream を使用する場合は、次の制限事項が適用されます。
- パーティショニングとクラスタリングは、Datastream が新しい BigQuery テーブルを作成するときにのみ適用されます。既存のテーブルのパーティショニングとクラスタリングの設定を構成または変更する場合は、まず BigQuery からテーブルを削除し、次に Datastream でその設定を構成または変更します。
- MongoDB ソースの場合、取り込み時間によってのみテーブルをパーティション分割できます。
- MongoDB データベースではクラスタリングはサポートされていません。
次のステップ
- ストリームの詳細については、ストリームのライフサイクルをご覧ください。
- ストリームを作成する方法については、ストリームを作成するをご覧ください。
- BigQuery の詳細については、BigQuery の宛先をご覧ください。