パーティション分割テーブルへデータを読み込む
このドキュメントでは、パーティション分割テーブルにデータを読み込む方法について説明します。
特定のパーティションへデータを書き込む
特定のパーティションにデータを読み込むには、bq load
コマンドでパーティション デコレータを使用します。次の例では、テーブルはすでに日付でパーティショニングされていると仮定し、既存のテーブルの 20160501
(2016 年 5 月 1 日)パーティションにデータを追加しています。
bq load --source_format=CSV 'my_dataset.my_table$20160501' data.csv
クエリの結果を特定のパーティションに書き込むこともできます。
bq query \ --use_legacy_sql=false \ --destination_table='my_table$20160501' \ --append_table=true \ 'SELECT * FROM my_dataset.another_table'
この方法を取り込み時間パーティショニングで使用すると、データが最初に作成された時間に対応するパーティションに古いデータを読み込むことができます。
また、この方法でタイムゾーンを調整することもできます。デフォルトでは、取り込み時間パーティションは UTC 時間に基づきます。パーティションの時刻を特定のタイムゾーンに合わせるには、パーティション デコレータを使用して UTC の取り込み時間をオフセットします。たとえば、太平洋標準時(PST)を使用している場合、対応するパーティション デコレータ $20160501
を使用すると、2016 年 5 月 1 日(PST)で生成されたデータを、その日付のパーティションに読み込むことができます
時間単位列と整数範囲のパーティション分割テーブルの場合、デコレータで指定されたパーティション ID が、書き込まれるデータと一致する必要があります。たとえば、テーブルが DATE
列でパーティション分割されている場合は、デコレータがその列の値と一致する必要があります。一致していない場合は、エラーが発生します。ただし、データが単一のパーティション内にあることがわかっている場合は、パーティション デコレータを指定することで書き込みパフォーマンスを向上させることができます。
上記の例では、パーティションにデータを追加しています。代わりにパーティション内のデータを上書きするには、コマンドごとに異なるフラグ(bq load --replace=true ...
と bq query --append_table=false ...
)を含める必要があります。これらのコマンドのフラグの詳細については、bq load
と bq query
をご覧ください。
データの読み込みの詳細については、BigQuery へのデータの読み込みの概要をご覧ください。
パーティション分割テーブルへのデータのストリーミング
BigQuery Storage Write API を使用したパーティション分割テーブルへのデータのストリーミングについては、時間単位列パーティショニングをご覧ください。
次のステップ
パーティション分割テーブルの操作の詳細については、次をご覧ください。