Pythonでのgoogle-cloud-bigqueryライブラリを利用したBigQueryでのパーティションを利用したデータの挿入と検索

BigQueryでのデータ操作でパーティションを利用することは非常に重要となります。

BigQueryの料金で大きいところを締めるのがクエリの利用です。

クエリの料金としては操作した回数ではなく、走査されたデータ量で料金が変わってきます。

これは10件の検索結果でも、1,000件の検索結果でも扱う元のデータ数が一緒であれば金額は変わりません。

検索する対象を絞ることで料金(と検索速度)を大きく節約できますが、その際に「パーティショニング」は非常に有効な手段になります。

具体的には日付でテーブルを分割してデータは分割されたデータごとに保存されます。

BigQueryのテーブルの作成時に「取り込み時間位より分割」を選択すれば日毎のパーティショニングが有効になります。

 

パーティションを利用したデータの挿入と検索

以下のプログラムでデータの挿入と検索を行います。

 

こちらをプロンプトで確認してみます。

 

結果として、パーティションに指定したものだけを読み込むことができました。

 

時刻など少し複雑なフォーマットでの挿入

時刻など少し複雑なデータを扱った場合のDMLを記載します。

フォーマットは以下とします。

 

queryなどは以下のように書けます。

 

こちらでパーティションを利用したDMLの操作など実施できました。

 

★関連記事
Pythonでのgoogle-cloud-bigqueryライブラリを利用したBigQueryの操作を標準SQLとレガシーSQLで実施(データの取得)
Pythonでのgoogle-cloud-bigqueryライブラリを利用したBigQueryのシンプルなデータ挿入とデータ更新
Pythonでのgoogle-cloud-bigqueryライブラリを利用したBigQueryへのストリーミング挿入