Help us understand the problem. What is going on with this article?

Cloud Dataflow SQL眺めてみた

  • 使ってみた・ドキュメント眺めただけです
  • Cloud Dataflow SQLはアルファです(2020/02時点)

Cloud Dataflow SQLとは

  • BigQueryのUIから、Cloud Dataflowジョブを作成する機能です
  • SQLを書くだけで、Pub/Sub・BigQuery・Cloud Storageのデータを組み合わせて、BigQueryのテーブルに書き出せます(※)
  • 内部的にはBeam SQLで処理しているらしいです

※ チュートリアルはPub/SubとBigQueryのJOINですが、リファレンスではPub/Subのメッセージ同士のJOINをしています

使ってみる

チュートリアルでは、以下の作業を行います:

  1. BigQueryのテーブル作成・データ登録(通常のBigQueryで使う時と同じです)
  2. Data Catalogに、Pub/Subメッセージの情報を登録
  3. BigQuery UIから、Pub/SubトピックをDataflowソースとして登録
  4. BigQuery UIから、SQLを実行
  5. Pub/Subメッセージをpublish

Dataflowジョブの開始時にサブスクリプションが作られ、そこからメッセージがpullされます。ジョブ実行前にpublishされたメッセージは無視されるので、気をつけませう。

制限

現時点で、結構制限があります。

  • 読み込みはPub/Sub・BigQuery・GCS、書き込みはBigQueryだけ
    • (日本語版ドキュメントだとGCSの記載はないですが、英語版だと可能とあります)
    • 普通のBeam/Dataflowはより多くのサービスと接続(S3とかDatastoreとか)出来ます
  • GCSファイルはヘッダーありのCSVのみ
  • Pub/SubメッセージはJSON、かつスキーマが事前定義されている
  • Dataflow workerのスケールのコントロールは出来ない
    • 上限設定出来ないのは怖いかも
  • Dataflow jobをdrain出来ない
    • ただし、Dataflow画面からはdrain選べ、停止も出来ます‥保証してないという意味?

出来ないとは書いていないが、出来なさそうな点

  • 書き出し先のデータセット・テーブル名は固定?
    • Beam/Dataflowでは、メッセージの中身に応じて書き込み先を変更することが出来ます(Dynamic Destinationという機能)

SQL

Dataflow SQLは、BigQueryと同じくZetaSQLをベースとしていますが、いくつか違いがあるようです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした