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. Elasticsearchの形態素解析機Sudachiでユーザー辞書(…

  2. AWSのLambdaでScrapyを動かす その1

  3. SublimeText3でリモートのサーバ上にあるファイルを開いたり編…

  4. CentOS6 + Apache2 を無料のSSL「Let’…

  5. Elasticsearch 6 を使ったデータ検証 その2(マッピング…

  6. CentOS7 + Apache2.4 を 無料 の SSL 「Let…