5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Preview 機能の BigQuery Workflows を試してみた

Posted at

前置き

BigQuery Workflows が Preview になりました。

機能としては公式ドキュメントに次のようなことが書いてあります。

ワークフローをスケジュールして、指定した時間と頻度で自動的に実行することができます。
ワークフローを使用して、コードアセットの実行をスケジュールできます。例えば、SQL クエリを毎日実行し、最新のソース データでテーブルを更新するようスケジュールできます。
複数のコードアセットを持つワークフローでは、実行順序を定義します。例えば、機械学習モデルをトレーニングする場合、SQLクエリでデータを準備し、後続のノートブックでそのデータを使ってモデルをトレーニングするワークフローを作成できます。

Workflows are powered by Dataform. と書いてあり、Dataform のようにクエリのワークフローを組める上に notebook も実行できるようなイメージでしょうか。

僕個人がデータエンジニアとして使うかどうかは怪しいのですが、社内の分析チームにおすすめできそうな気がしたので試してみることにしました。

概要

公式ドキュメントに書いてあることを抜粋します。

できること

  • notebook と SQL クエリをタスクとするワークフローの構成
  • スケジューリング

notebook が実行できるところが Dataform と差別化されていて良さそうです。

制限事項

  • 既存の notebook や SQL クエリをワークフローに追加することはできない
  • 選択したワークフローへのアクセスを他のユーザーに許可することはできない
  • ワークフローは Google Cloud コンソールでのみ利用できる

他のユーザーにアクセスを許可できないのがけっこうしんどそうです。
試しにワークフローを作成したアカウントと別のアカウントで同じ画面を見比べて見ましたが確かにワークフローが表示されませんでした。

workflow を作成したアカウントから見た画面
image.png

workflow を作成していないアカウントから見た画面
image.png

ユースケースとしてもともとイメージしていたのが、分析チームが作成したワークフローをそのまま渡されて、商用利用できるようにシステム構築するための設計に役立てることだったのですが、そのような用途には使えなさそうです。

試してみた

workflows の作り方はこちらのドキュメントにまとまっています。

依存関係の定義

適当なサンプルのクエリと notebook を作成して依存関係を定義しました。
作り方は GUI からポチポチやるだけで簡単すぎたので割愛します。

次のように 1 つのノードから複数に分岐することはできますが、複数の分岐から1つのノードに遷移するような依存関係は作れなさそうでした。
image.png

実行履歴

ワークフローを実行すると実行時間を見ることができます。 Notebook は print するだけでの簡単なコードですがオーバーヘッドがかかるようです。
image.png

notebook の実行結果

notebook の実行結果は事前に指定したバケットに保存されます。

image.png

こんな感じに実行結果が出ています。

image.png

その他細かいことは公式ドキュメントをご確認ください。

感想

notebook を実行できるワークフローを手軽に構築できることは可能性を感じるものの、他のユーザーがアクセスできない点がチームワークするには厳しいと思いました。
現時点では個人開発なら使えそうという感触でした。

まだ Preview 機能なので今後のアップデートに期待します。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?