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

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へのストリーミング挿入

 

このブログは株式会社CoLabMixによる技術ブログです。

GCP、AWSなどでのインフラ構築・運用や、クローリング・分析・検索などを主体とした開発を行なっています。

Ruby on RailsやDjango、Pythonなどの開発依頼などお気軽にお声がけください。

開発パートナーを増やしたいという企業と積極的に繋がっていきたいです。

お問い合わせやご依頼・ご相談など

    関連記事

    1. さくらVPS の CentOS7 サーバに Elasticsearch…

    2. ElasticSearchでjava.lang.OutOfMemory…

    3. Elasticsearch 6 を使ったデータ検証 その3(bulkで…

    4. Django2.1.1 を使ってログインを実装する

    5. terraform構築手順〜EC2編〜

    6. Vue.jsで申し込み同意でボタンをアクティブにするチェックボタンの作…