「Cloud FunctionsでBigqueryにSQLを実行するにはどうしたらよいか?」
本記事を見に来ていただいた方は、そのようなお悩みをお持ちではないでしょうか。
Google CloudでのDWH開発経験をもとに、そちらの実装ついて解説いたします!
はじめに
以前、Google CloudでDWHを設計・実装しました。
その際に、Cloud Functionsに記述したPythonで処理を実行してSQLでデータ加工を行うようなデータパイプラインを作成しました。そちらのコードサンプルが参考になればと思いまとめてみます。
Cloud FunctionsでBigqueyへSQL実行する際の前提
- Google Cloudの初期環境構築が完了している
- Google Cloudでデータパイプラインを開発したい
- Cloud Storage,Bigquery,Cloud Functionsあたりのサービスをなんとなく理解している
- 言語はPython, SQL
Cloud Functionsとは
イベント駆動型のコンピューティングサービスです。Cloud Functionsは、イベントが発生するたびに実行される関数を提供します。
Cloud Functionsの主な特徴と利点は以下となります。
Cloud Functions特徴① サーバーレスなアーキテクチャ
Cloud Functionsでは、サーバーのプロビジョニングや管理が不要です。コードをデプロイして実行するだけで、自動的にスケーリングや負荷分散が行われます。
Cloud Functions特徴② イベント駆動型の実行
Cloud Functionsは、トリガーと呼ばれるイベントに基づいて実行されます。例えば、ファイルがストレージにアップロードされたとき、メッセージがパブリッシュされたときなどのイベントに関数を実行できます。
Cloud Functions特徴③ 無駄のない課金モデル
Cloud Functionsでは、実際に関数が実行された時間やリソースの使用量に基づいて課金されます。関数が実行されていない場合は、料金も発生しません。また、関数が初めて実行されるときの起動時間を最小限に抑えるためのオプションも提供されています。
Cloud Functions特徴④ デプロイと管理の容易さ
Cloud Functionsを使用すると、コードをデプロイし、トリガーを設定し、関数のログを表示するなど、関数のデプロイと管理が容易に行えます。また、他のGCPのサービスとの統合も簡単に行えます。
Cloud Functionsは、シンプルなタスクの自動化やイベント処理、マイクロサービスの構築など、さまざまな用途で活用されます!
Cloud FunctionsとBigqueryで実現した方法
Google Cloudのアーキテクチャ
Google CloudのCloud FunctionでBigqueryにデータを読みに行くSQLをPythonで実行します。
そちらは、このようなデータ分析基盤のアーキテクチャを組んでいました。
Cloud Functionsに記述したコードサンプル
下記コードをCloud Functionsのpythonファイルに記述しました。
from google.cloud import bigquery
client = bigquery.Client()
def main(data, context):
query = """この中にSQL書く"""
job_config = bigquery.QueryJobConfig()
query_job = client.query(
query,
job_config=job_config,
)
query_job.result()
- query = から query_job.result() を追加すればクエリ2つ以上実行することも可能です
- 1つ目のクエリで “CREATE or REPLACE TABLE” して2つ目のクエリで1つ目で作成したテーブルを再加工するような感じで活用していました
ここまで読んでいただきありがとうございます。
CloudFunctionの実装だけでなく、様々なケースで疑問を感じるかと思います。
「このようなケースの場合はどのように記述したらよいか、、」
「データサイエンティストになるにはどのように効率的に学習していったらよいか?」
など自己学習に不安がありましたら、以下のスクールのご活用もご検討ください!
Goole Cloud関連書籍
データ基盤そのものについての説明や、Goolge Cloud各サービスについて説明がされています。データ基盤についての一般的な情報から、Google Cloudのサービスでいかに実現するかにに落とし込む参考になるのではないかと思います。
SQL関連書籍
SQLの文法がまとまった一冊となります。初学者の方には参考になる一冊かと思います!
Google Cloud関連記事
上記の処理を自動実行するための方法として
- GCSトリガー(ファイル配置をトリガーにする)
- PubSubトリガー(時間指定の定期実行) も紹介しておりますのでご参考ください。
その他、Google Cloud関連記事はこちらにもございます。
もしIT業界への転職でお困りでしたら、下記サービスのご活用をご検討ください!
私は転職の際にGeeklyを活用させて頂き、ご縁を頂くことができました。
参考になれば幸いです☕
コメント