ブログ | XIMIX

GCPでDataformがパブリックプレビューになったので触ってみた

作成者: 日本情報通信株式会社|2022.08.30

はじめに

こんにちは。CI部の今井です。

最近Dataformというサービスが GCPでパブリックプレビューになりましたね!

このDataformというサービスはGoogleが2020年に買収したサービスで、SQLのWorkflowを実行しやすいサービスであるといえます。

私は案件の中でWEB版のDataformを触っていたため、使いやすくなると考えられるGCP版が出ることを今か今かと待っていました。

Dataformの特徴を以下のようにGoogleは述べています。

  • コラボレーションとデータパイプラインの作成 – SQLでデータワークフローを開発し、Gitを介して他のユーザーとコラボレーションを行うことができます。自動的に他のユーザーにも表示されるデータドキュメントを含めることも可能です。
  • データパイプラインのデプロイ – ダウンストリームデータセットを段階的に更新するデータワークフローをスケジュールすることで、論理データを最新の状態に保ち、コストとレイテンシを削減できます。
  • データ品質の確保 – SQLでデータ品質チェックを定義し、それらのチェックが不合格になったときにアラートを自動的に受信できます。ログ、変更履歴、依存関係グラフを表示して、データの変更を把握できます。

今回触るGCP版Dataformはパブリックプレビューのため以下の画像のような依存関係グラフといった一部機能はまだ使うことができません。

ですが基本的な機能は使うことができますし、サービスの使用料は無料(クエリの課金に関しては BigQuery に含まれる)なので、触っていきたいと思います。

本ブログではGitHubへの接続まで行いません。詳しくは公式ドキュメントをご確認ください。

APIの有効化からリポジトリの作成まで

まず最初にDataformのAPIを有効化します。

再度、Dataformのリンク先に行き、以下の画面でCREATE REPOSITORYを押下します。

そして、リポジトリ名とリポジトリを作成するリージョンを指定します。

現在選択できるリージョンはEUとUSのみしか選択できませんが、プレビュー版ではなくなった時にはASIAも選択できるようになると思います。

今回はUSのリージョンを選択し、作成します。

作成した後に Dataform 用のサービスエージェントのアカウント(service-プロジェクトID@gcp-sa-dataform.iam.gserviceaccount.com)も一緒に作成されます。

このアカウントに BigQuery ユーザーのロールを付与する必要がありますので、メモに残しておくことをお勧めします。 メモした後に完了ボタンを押下します。

上記により、 GCP側にDataform用のリポジトリを作成することができました。

そして、メモに取ったアカウントに BigQuery ユーザーのロールを付与します。
今回はロールの付与は主題ではないので省きます

次はWorkspaceの作成からSQLXの作成まで行います。

Workspaceの作成からSQLXの作成まで

作成したリポジトリ内に移動した後、CREATE WORKSPACEのボタンを押下します。

試しにtestというWorkspaceを作成しました。

この作成したWorkspace内に移動して、INITIALIZE WORKSPACEを押下します。

しばらくすると複数のファイルが作成されます。

作成された複数のファイルの中に、dataform.jsonというファイルがあるので、defaultLocationの行のUSをあなたのBigQueryのデータセットが存在しているロケーションに変更します。(私の場合はasia-northeast1)

そのあとに、definitionsフォルダ内に作成されたsample.sqlxを開きます。

そして、今回はタグを指定してSQLを実行したいと考えたため、以下のようにSQLXを変更します。

そして、START EXECUTIONからタグを選択し、tagsの中からTESTを選択します。

そのあと、サイドメニューが出てくるので、その中にあるSTART EXECUTIONを押して、SQLを実行させます。

上記のSQLが実行され成功した場合は、dataformというデータセットが作成され、sampleというビューが作成されているはずです。

失敗した場合は、メモに取ったアカウントにBigQueryユーザーのロールを付与することを忘れている可能性があります。

今回はロールの付与は主題ではないので省いています。

最後に

今回はDataformのリポジトリをGitHubに連携せずにSQLXの実行までを行いました。

基本的にはGitHubに接続し、運用する必要がありますが、GCP版のDataformに手軽に触るため行いませんでした。
実際の案件では接続が必須になりますのでご注意ください。

今後、アップデートを重ねて機能が追加されていくと思いますので楽しみですね。
引き続き注視するようにします!

ご一読、ありがとうございました。

Google Cloud、Google Workspaceに関するご相談は 日本情報通信にお任せください。

Google Cloud、Google Workspaceに関する お問い合わせはこちら