NTT DATA TECH
💡

dbt Cloudの新機能dbt CanvasがついにGA!dbtでローコード開発を試してみた

に公開

はじめに

dbt Cloudのローコード開発機能「dbt Canvas」(旧名称「dbt Visual Editor」)がついに正式リリース(GA)されました。
dbt Canvasはコード管理の利点を保持しつつ、ローコードでの開発を可能にする機能です。
この機能により、従来はコードに詳しいユーザ向けだったdbtの「アナリティクスエンジニアリング」が、より多くのユーザに展開され、データ民主化が加速することが期待されます。
(dbtを活用した現代のデータ民主化実現に重要な取り組みはこちらで紹介していますので、興味のある方はぜひご覧ください)

本記事では、dbt Canvasを使ってモデルの作成や編集を試してみます。
なお、dbt Canvasの利用に必要な事前準備やdbt Canvasへのアクセスについては、公式ドキュメント(Quickstart for dbt Cloud Canvas)を参照してください。

本記事の対象者

  • dbtの基本的な知識を有している方

新規モデルを作成してみた

dbt Canvasでのモデルの作成や編集は、ワークスペースで行います。
ワークスペース

今回は、ソーステーブル、加工(集計)処理、ターゲットテーブルの順に設定し、新しいモデルを作成してみます。

ソーステーブルの設定

ワークスペース左上のモデルアイコン、「+」ボタン、「Create new model」の順で選択します。
モデル作成画面の選択手順

Input modelオペレーターをドラッグアンドドロップします。
Input modelオペレーターの操作
ソーステーブル(Input)とターゲットテーブル(Output)を設定する箱が表示されます。
InputとOutputの設定画面

「Choose a model」を押下すると、事前準備のジョブ実行で作成されたモデルの一覧が表示されます。
ソーステーブルのモデルを選択し、「Select model」を押下します。
モデル選択画面

これでソーステーブルの設定は完了です。
※ターゲットテーブルの設定については、「加工処理の設定」の後で説明します。


加工処理の設定

次に、加工処理の設定を行います。
dbt Canvasには以下のような加工処理が用意されています。
利用可能な加工処理一覧

加工処理名 説明
Join(結合) 結合条件を定義し、両方のテーブルから必要な列を選択します。
Union(結合) 複数のテーブルを結合して、1つのテーブルにまとめます。
Formula(計算式) 新しい列を作成するための計算式を追加します。
Aggregate(集計) 集計関数と、それを適用する列を指定します。
Limit(上限) 返す行数の上限を設定します。
Order(並び替え) 並び替えの基準となる列とその順序を選びます。
Filter(フィルター) データを絞り込む条件を設定します。
Rename(名前変更) カラムの名前を変更します。

ここでは、Aggregateオペレーターを用いて集計します。
InputとOutputの間にAggregateオペレーターをドラッグアンドドロップします。
Aggregateオペレーター配置画面

Aggregateオペレーターにて、集約キー、集計関数、対象カラム、エイリアスを設定します。

集計処理の設定前画面
集計処理の設定後画面

設定が完了したら、必要に応じて「SQL」を押下し、発行されるSQLが正しいか確認します。
(表示されるSQLはローコード開発に合わせてリアルタイムで更新されます。)
SQLの確認

これで加工処理の設定は完了です。


ターゲットテーブルの設定

最後に、ターゲットテーブルの設定を行います。
Output modelオペレーターにて、ターゲットテーブル名、ファイルパス、出力するカラムを指定します。

ターゲットテーブル設定画面

これでターゲットテーブルの設定は完了し、新規モデルを作成できました。


既存モデルを編集してみた

dbt Canvasでは既存モデルの編集も可能です。
今回は、手動で作成した既存モデルを、dbt Canvasの編集機能で出力するレコード数を制限します。

加工処理の編集

ワークスペース左上のモデルアイコン、「+」ボタン、「Edit existing model」の順で選択します。
モデル編集選択画面

事前準備のジョブ実行で作成されたモデルが表示されるので、編集するモデルを選択し、「Edit model」を押下します。
編集対象モデル選択画面

すると、手動で作成したモデルがdbt Canvasで編集可能な状態で表示されます。

編集対象モデル表示画面

Outputの箱の手前にLimitオペレーターをドラッグアンドドロップし、出力するレコード数を5件と設定します。

出力制限の設定前画面
出力制限の設定後画面

これで出力レコード数の設定は完了し、既存モデルを編集できました。

注意点:

手作成した既存モデルはdbt Canvasで編集を実施すると、手作成したモデルのSQLがdbt Canvas独自の記法に自動変換されます。現時点で編集してみると、以下の3つの注意点が見えてきました。

  1. Joinオペレーターの未設定
    既存モデルでは実装しているJoinの設定が、Joinオペレーターで未設定のまま表示されます。
    dbt Canvasでの再設定が必須です。
    dbtCanvasによるコード自動変換の結果1
  2. コメントの削除
    手動作成時に含まれていたコメントは削除されます。
    再設定が必要な場合は、dbt CanvasやIDE、CLIのいずれかで対応可能です。
  3. 共通テーブル式名の変更
    共通テーブル式名は自動的にdbt Canvas独自の命名規則で変更されます。
    再設定が必要な場合は、dbt CanvasやIDE、CLIのいずれかで対応可能です。
    dbtCanvasによるコード自動変換の結果2

まとめ

dbt CanvasがGAになったので試してみました。

コードに詳しくないユーザにとっては、直感的な操作でモデルの作成や編集が行え、
コードに詳しいユーザにとっても、リアルタイムでSQLを確認しながら利用ができるのが、魅力的だと感じました。

今回は紹介しきれませんでしたが、処理の途中経過までの結果を容易に確認できる「プレビュー機能」や、dbt CloudのAI機能「dbt Copilot」も便利でした。

公式ドキュメントでは、テストやドキュメントの作成もdbt Canvas上でできるように準備されているとのことなので、今後の機能拡充も楽しみです。

興味のある方は、ぜひdbt Canvasの利用を検討してみてください!

仲間募集

NTTデータ コンサルティング事業本部 では、以下の職種を募集しています。

Snowflake、生成AIを活用したデータ基盤構築/活用支援(Snowflake Data Superheroesとの協働)
Databricks、生成AIを活用したデータ基盤構築/活用支援(Databricks Championとの協働)
プロジェクトマネージャー(データ分析プラットフォームソリューションの企画~開発~導入/生成AI活用)
クラウドを活用したデータ分析プラットフォームの開発(ITアーキテクト/PM/クラウドエンジニア)

ソリューション紹介

Trusted Data Foundationについて

~データ資産を分析活用するための環境をオールインワンで提供するソリューション~
https://www.nttdata.com/jp/ja/lineup/tdf/
最新のクラウド技術を採用して弊社が独自に設計したリファレンスアーキテクチャ(Datalake+DWH+AI/BI)を顧客要件に合わせてカスタマイズして提供します。
可視化、機械学習、DeepLearningなどデータ資産を分析活用するための環境がオールインワンで用意されており、これまでとは別次元の量と質のデータを用いてアジリティ高くDX推進を実現できます。

TDFⓇ-AM(Trusted Data Foundation - Analytics Managed Service)について

~データ活用基盤の段階的な拡張支援(Quick Start) と保守運用のマネジメント(Analytics Managed)をご提供することでお客様のDXを成功に導く、データ活用プラットフォームサービス~
https://www.nttdata.com/jp/ja/lineup/tdf_am/
TDFⓇ-AMは、データ活用をQuickに始めることができ、データ活用の成熟度に応じて段階的に環境を拡張します。プラットフォームの保守運用はNTTデータが一括で実施し、お客様は成果創出に専念することが可能です。また、日々最新のテクノロジーをキャッチアップし、常に活用しやすい環境を提供します。なお、ご要望に応じて上流のコンサルティングフェーズからAI/BIなどのデータ活用支援に至るまで、End to Endで課題解決に向けて伴走することも可能です。

NTTデータとSnowflakeについて

NTTデータとSnowflakeについて
NTTデータでは、Snowflake Inc.とソリューションパートナー契約を締結し、クラウド・データプラットフォーム「Snowflake」の導入・構築、および活用支援を開始しています。
NTTデータではこれまでも、独自ノウハウに基づき、ビッグデータ・AIなど領域に係る市場競争力のあるさまざまなソリューションパートナーとともにエコシステムを形成し、お客さまのビジネス変革を導いてきました。
Snowflakeは、これら先端テクノロジーとのエコシステムの形成に強みがあり、NTTデータはこれらを組み合わせることでお客さまに最適なインテグレーションをご提供いたします。
https://www.nttdata.com/jp/ja/lineup/snowflake/

NTTデータとDatabricksについて

NTTデータは、お客様企業のデジタル変革・DXの成功に向けて、「databricks」のソリューションの提供に加え、情報活用戦略の立案から、AI技術の活用も含めたアナリティクス、分析基盤構築・運用、分析業務のアウトソースまで、ワンストップの支援を提供いたします。
https://www.nttdata.com/jp/ja/lineup/databricks/

NTTデータとInformaticaについて

NTTデータとInformaticaについて
データ連携や処理方式を専門領域として10年以上取り組んできたプロ集団であるNTTデータは、データマネジメント領域でグローバルでの高い評価を得ているInformatica社とパートナーシップを結び、サービス強化を推進しています。
https://www.nttdata.com/jp/ja/lineup/informatica/

NTTデータとTableauについて

NTTデータとTableauについて
ビジュアル分析プラットフォームのTableauと2014年にパートナー契約を締結し、自社の経営ダッシュボード基盤への採用や独自のコンピテンシーセンターの設置などの取り組みを進めてきました。さらに2019年度にはSalesforceとワンストップでのサービスを提供開始するなど、積極的にビジネスを展開しています。
これまでPartner of the Year, Japanを4年連続で受賞しており、2021年にはアジア太平洋地域で最もビジネスに貢献したパートナーとして表彰されました。
また、2020年度からは、Tableauを活用したデータ活用促進のコンサルティングや導入サービスの他、AI活用やデータマネジメント整備など、お客さまの企業全体のデータ活用民主化を成功させるためのノウハウ・方法論を体系化した「デジタルサクセス」プログラムを提供開始しています。
https://www.nttdata.com/jp/ja/lineup/tableau/

NTTデータとAlteryxについて

NTTデータとAlteryxについて
Alteryxは、業務ユーザーからIT部門まで誰でも使えるセルフサービス分析プラットフォームです。
Alteryx導入の豊富な実績を持つNTTデータは、最高位にあたるAlteryx Premiumパートナーとしてお客さまをご支援します。
導入時のプロフェッショナル支援など独自メニューを整備し、特定の業種によらない多くのお客さまに、Alteryxを活用したサービスの強化・拡充を提供します。
https://www.nttdata.com/jp/ja/lineup/alteryx/

NTTデータとDataRobotについて

NTTデータとDataRobotについて
DataRobotは、包括的なAIライフサイクルプラットフォームです。
NTTデータはDataRobot社と戦略的資本業務提携を行い、経験豊富なデータサイエンティストがAI・データ活用を起点にお客様のビジネスにおける価値創出をご支援します。
https://www.nttdata.com/jp/ja/lineup/datarobot/

NTT DATA TECH
NTT DATA TECH

Discussion