Cloud FunctionsでBigqueryにSQLを実行する

Google Cloud
※本ページにはプロモーションが含まれます
※本ページにはプロモーションが含まれます
スポンサーリンク

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で実行します。

そちらは、このようなデータ分析基盤のアーキテクチャを組んでいました。

Google Cloudのデータ分析基盤のアーキテクチャ

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の実装だけでなく、様々なケースで疑問を感じるかと思います。

このようなケースの場合はどのように記述したらよいか、、
データサイエンティストになるにはどのように効率的に学習していったらよいか?
など自己学習に不安がありましたら、以下のスクールのご活用もご検討ください!

techgymTech Academyスタアカ
定額制・自習型のプログラミングスクールです。サンプルコードの仕様変更の繰り返し、その中で出現するエラーを解決することで、自己解決力、自走力を育みます。現役エンジニアから学べるオンラインに特化したプログラミングスクールです。転職の支援はもちろん、副業に活かせるスキルの習得から、副業の仕事紹介まで寄り添います。データサイエンティストを目指すことに特化したスクールです。
★コース例
・Python基礎コース
・AIエンジニア養成コース
 など
コース例
・Pythonコース

・AIコース
・データサイエンスコース
★コース例
・データサイエンティスト概要コース
・Python基礎コース
・データ加工集計可視化コース
・統計学概要コース
・SQL基礎コース
 など

Goole Cloud関連書籍

データ基盤そのものについての説明や、Goolge Cloud各サービスについて説明がされています。データ基盤についての一般的な情報から、Google Cloudのサービスでいかに実現するかにに落とし込む参考になるのではないかと思います。

SQL関連書籍

SQLの文法がまとまった一冊となります。初学者の方には参考になる一冊かと思います!

Google Cloud関連記事

上記の処理を自動実行するための方法として

その他、Google Cloud関連記事はこちらにもございます。

もしIT業界への転職でお困りでしたら、下記サービスのご活用をご検討ください!
私は転職の際にGeeklyを活用させて頂き、ご縁を頂くことができました。

Geekly転職ドラフト
IT・WEB・ソーシャルゲーム業界を専門とした転職支援サービスです。ギークリー独占の求人案件も扱っており、大手サービスに劣らないサービス力を誇ります。転職ドラフトは年収UP率94.3% / 平均年収UP額148.4万円と圧倒的な年収UP率を誇るイベント型のエンジニア向け転職サービスです。毎月1回開催され、IT/Web系企業を中心に、厳選された約240社からダイレクトスカウトを受け取ることができます。

参考になれば幸いです☕

コメント

タイトルとURLをコピーしました