パーティション分割テーブルって何
パーティション分割テーブルは、パーティションと呼ばれるセグメントに分割されたテーブルです。
テーブル作成時に、データの取り込み時間、TIMESTAMP/DATE 列、INTEGER 列のいずれかを指定することで、大きなテーブルを小さなパーティションに内部的に分割できます。
よく分からないのでイメージ↓ ※パーティション列として[Order_Date]を指定
内部的な分割なのでシャーティングテーブル(日付別テーブル)と違って、BigQuery内でテーブルを表示したときには分かりづらいですが、テーブルの詳細にて分割の有無とパーティション列を確認できます。
パーティション分割テーブルの作成方法はいくつかありますが、上記のテーブルは以下のような数行のDDLで作成可能です。その他の作成方法はこちらから*
*パーティション分割テーブルの作成
パーティション分割テーブルのメリット
クエリ課金額を節約できる
パーティション分割する列のフィルタを含むクエリを活用することで、スキャンするデータの全体量を減らすことができ、費用削減が可能になります。
パーティション分割する列:Order_Date
上記の場合、WHERE句の条件指定にパーティション分割する列(Order_Date)を含んでおり、’2021-12-03’のデータのみスキャンするため、パーティションしない場合と比べて費用を抑えることができます。パーティション分割テーブルでない場合はテーブル全体をスキャンします。
パフォーマンス向上
メリット①と同様、パーティション分割する列のフィルタを含むクエリを活用し、スキャン対象のデータサイズを減らすことで、パフォーマンスの向上が可能になります。
次回は、実際にどの程度クエリ課金額を節約できそうなのかを検証してみます。
【BigQuery初心者の日記 DAY2】パーティション分割テーブルークエリ課金額を節約するー前回はパーティション分割テーブルのメリットについてまとめました。今回は具体的にどの程度クエリ課金額を節約できそうなのかを検証してみます。...