dbtとの連携を謳っているモダンデータスタックのサービスにはどのようなものがあるのか #dbt
アライアンス事業部 エンジニアグループ モダンデータスタック(MDS)チームのしんやです。
SQLファーストの変換ワークフローサービスであるdbt™は、モジュール性、移植性、CI/CD、文書化といったソフトウェアエンジニアリングのベストプラクティスに従って、分析コードを迅速かつ共同作業で展開することができ。データチームの誰もが、プロダクショングレードのデータパイプラインに安全に貢献できるようになります。
そんなdbtですが、モダンデータスタック全体の様々なユースケースをカバーするシームレスな統合により、分析エンジニアリングワークフローを dbt Cloud 以外に拡張することが可能となっています。
そこで当エントリでは、dbt側で謳っている/紹介している様々な連携対応サービスの一覧を眺めつつ、それらの連携を行うことによって何が可能となるのか、何が出来るのかについてザッとではありますが見ていきたいと思います。
目次
クラウドデータプラットフォーム
dbtでは、ベンダ各社が提供しているクラウドデータプラットフォームへの接続を提供しています。
AlloyDB
AlloyDB for PostgreSQLは、PostgreSQL互換のフルマネージドデータベースサービスで、ハイブリッドトランザクション処理や分析処理など、最も要求の厳しいワークロード向けに設計されています。
dbt CloudからAlloyDBに接続する際の(dbtプロジェクト接続対象とする際の)手順は以下の通り。
Amazon Redshift
Amazon Redshiftは、クラウド上で完全に管理されたペタバイトスケールのデータウェアハウスサービスです。
dbt CloudからAmazon Redshiftに接続する際の(dbtプロジェクト接続対象とする際の)手順は以下の通り。
BigQuery
BigQueryは、ML、地理空間分析、ビジネス インテリジェンスなどの組み込み機能を使用してデータの管理と分析を支援する、フルマネージドのエンタープライズデータウェアハウスです。
dbt CloudからBigQueryに接続する際の(dbtプロジェクト接続対象とする際の)手順は以下の通り。
DataBricks
Databricksは、エンタープライズグレードのデータ、アナリティクス、AIソリューションを大規模に構築、展開、共有、維持するための統合されたオープンなアナリティクスプラットフォームです。
dbt CloudからDatabricksに接続する際の(dbtプロジェクト接続対象とする際の)手順は以下の通り。
Snowflake
Snowflakeは、データウェアハウス、データレイク、データエンジニアリング、データサイエンス、データアプリケーション開発、リアルタイム/共有データの安全な共有と消費のための単一プラットフォームを提供する、フルマネージドSaaS(サービスとしてのソフトウェア)です。
dbt CloudからSnowflakeに接続する際の(dbtプロジェクト接続対象とする際の)手順は以下の通り。
Starburst
Starburstは、すべてのデータへのシングルアクセスポイントです。オープンソースのTrino(旧PrestoSQL)上に構築され、コストのかかるマイグレーションを行うことなく、データを発見し、利用することができます。
dbt CloudからStarburstに接続する際の(dbtプロジェクト接続対象とする際の)手順は以下の通り。
BI&分析
Deepnote
データを最初から最後まで探索、分析、プレゼンテーションするためにチームをまとめるノートブックサービス「Deepnote」では、ノートブック・エクスペリエンス内からdbtメトリクスをインタラクティブに参照することができます。
Deepnoteでdbtと連携を行うと、以下のようなことが可能となります。
- 変換されたデータの使用:最も一般的な使用例。dbtジョブの結果であるテーブルとビューに基づいて Deepnote ノートブックを構築。
- dbtモデルのプロトタイピング:Deepnoteは、モデルの定義と改善の基礎となる探索的データ分析を得意としている。新しいセマンティック層の統合により、Deepnote は jinja SQL と直接連携可能。
- dbtメトリクスの探索:企業の最も重要なメトリクスを参照し、それらがどのような次元で分解できるかを確認
その他詳細に関しては以下ドキュメントをご参照ください。
Hex
データサイエンスとアナリティクスのための最新のデータプラットフォームである「Hex」では、Metricsセルを使って、dbtメトリクスに簡単にアクセスし、探索することができます。Hex内のスキーマ・ブラウザにdbtメタデータを入力します。
Hexはdbt Cloudのスケジュールされたジョブから以下の情報を取得し、
- モデル、ソース、カラムの説明とテスト
- モデルの最終更新日
- ソースの鮮度テスト
- dbt Cloud にデプロイされた docs サイトの関連ページへのリンク
dbt統合が設定されると、モデルの一部またはdbtのソースとして定義されているデータブラウザのテーブルに、以下の情報が表示されるようになります。
- 最新のジョブ実行日
- ソースの鮮度
- モデルで設定されているテストのステータス
その他詳細に関しては以下ドキュメントをご参照ください。
Lightdash
dbtプロジェクトを即座にフルスタックのBIプラットフォームに変えることが出来る「Lightdashは」では、アナリストがメトリクスを作成し、Lightdashがビジネス全体のセルフサービスを可能にします。
現在、Lightdashはdbtセマンティックレイヤーに対応し、Lightdash Cloudユーザー向けに統合のパブリックプレビューを開始しています。Lightdashとdbtセマンティックレイヤーを統合することで、dbtのメトリクスをリアルタイムで利用することができます。この連携を行うことで以下のようなことが可能となります。
- Lightdash UIからセマンティックレイヤーにクエリ
- 現在選択されているフィールドに基づいて、マッチするメトリクスとディメンションを動的に表示します。
- ディメンションはdbtエンティティによってグループ化されます。
- 時間粒度ディメンションの時間粒度を変更可能
- (セマンティック・レイヤーをLightdashダッシュボードに共有&保存
- (近日公開) メトリクスとディメンジョンを簡単に発見できる検索フィールド
その他詳細に関しては以下ドキュメントをご参照ください。
Mode
組織の分析における中心的なハブであり、データ・チームとビジネス・チームをデータを中心に結びつけ、ビジネスの成果を促進するサービス「Mode」では、クリック数回でdbtメトリクスに基づいたチャートを作成し、共有することができます。
Modeのdbt統合により、以下のようなことが出来るようになります。
- dbtのデータ鮮度に関するメタデータをModeのレポートで直接表示。
- レポートで使用されているテーブルをdbtモデルにマッピングすることで、ソースデータが最後に更新された日付に関する情報をレポートに表示
その他詳細に関しては以下ドキュメントをご参照ください。
Preset
オープンソースのApache Superset™上に構築された、エンタープライズグレードのセキュリティ、信頼性、および分析体験を完全にカスタマイズするためのツールキットを備えた、強力で使いやすいビジネスインテリジェンスソフトウェアを提供する「Preset」では、dbtでメトリクスとモデルを定義し、Presetに簡単に同期させることができます。
dbtの変換レイヤと統合することで、ビジネスロジックやメトリクスをソース管理で定義・管理し、複数のアプリケーションで使用することができます。
その他詳細に関しては以下ドキュメントをご参照ください。
Sigma
使い慣れたスプレッドシート・インターフェースを使用し、ビジネス・ユーザーがクラウド・データウェアハウスから即座にアクセスできる、クラウド・ネイティブな分析プラットフォーム「Sigma」では、dbtジョブから生成されたドキュメントやメタデータに直接アクセスすることができます。
Sigmaとdbtとの統合を行うことによる利点は以下の通りです:
- データの鮮度:dbtジョブの実行データがSigmaに表示され、データの鮮度を確認することができます。
- データの品質:シグマでカラムやモデルのdbt品質テストを表示することができ、データ品質の問題をより明確に把握することができます。
- データカタログ:dbtのテーブルとカラムの説明がシグマに表示され、ユーザーが調査するデータに関するさらなる洞察を提供します。
その他詳細に関しては以下ドキュメントをご参照ください。
ThoughtSpot
誰でも検索を使って企業データを数秒で分析し、自動化された分析結果を得ることができる企業向けの検索&AI駆動型分析プラットフォーム「ThoughtSpot」では、dbtで作成されたデータモデルやメトリクスに対して、Liveboardsの検索と構築を即座に開始できます。
ThoughtSpotのdbt統合により、既存のdbtモデルを簡単に提供し、データを検索するために使用できるThoughtSpotワークシートを自動的に作成することができます。
その他詳細に関しては以下ドキュメントをご参照ください。
運用分析 / Reverse ETL
Census
世界で最もデータドリブンな企業数百社に信頼できるデータを提供する、データアクティベーションプラットフォーム「Census」では、dbtモデルを接続し、下流の販売・マーケティングツールに直接具体化することが出来ます。
Censusでのdbt連携では以下のような事も実現可能です。
- dbtのドキュメントサイトにアクセスすることなく、利用可能な dbt モデルが逆 ETL 同期 に必要なデータを持っているかどうかを確認
- GitHub における dbt 継続的インテグレーション(CI)チェック
- dbt Cloud を使ってdbtプロジェクトを実行している場合、モデルがリビルドされるたびに自動的に同期を実行するように Census を設定することも可能
その他詳細に関しては以下ドキュメントをご参照ください。
hightouch
hightouchでは、シンプルなUIで、モデル化されたデータをダウンストリームツールに簡単に同期できます。選択したdbt Cloudジョブの後に同期を実行するようにスケジュールします。
dbtCloud拡張機能を使用すると、dbtクラウドのジョブが完了するとすぐに実行されるように Hightouch の同期をスケジュールできます。また同期のスケジューリングにdbtクラウドを利用することで、Hightouchは新鮮なデータが利用可能なときに同期を実行します。
その他詳細に関しては以下ドキュメントをご参照ください。
データクオリティ
Anomalo
データの問題を自動的に検出し、その根本原因を誰よりも早く理解出来る「Anomalo」では、dbtメトリックスに供給されるデータを監視し、データ品質の問題が直ちにフラグ付けされ、根本原因が特定されるように利用することができます。
Anomaloとdbtを連携させることで、一貫性のある正確なビジネスクリティカルなメトリクスを保証することができます。また、dbtとAnomaloの組み合わせにより、信頼できるメトリクスの構築とモニタリングが容易になり、データに基づいた意思決定が可能になります。
その他詳細に関しては以下ドキュメントをご参照ください。
Datafold
移行からデプロイまで、データワークフローのあらゆる段階で、データ差分、列レベルのリネージ、CIテストを通じて、データ品質の問題を未然に発見する「Datafold」では、本番環境にマージする前に、dbtプルリクエストがテーブル、カラム、行、ダッシュボードにどのような影響を与えるかを確認できます。
Datafoldとdbtを連携させることで、すべてのdbtモデルで完全なテストカバレッジを取得し、SQLの更新がテーブル、カラム、行、ダッシュボードにどのように影響するかを、本番環境にマージする前に確認(=アナリティクスエンジニアのための自動テスト)できます。
その他詳細に関しては以下ドキュメントをご参照ください。
Metaplane
データチームが「物事がいつ壊れたのか、何が問題だったのか、どのようにそれを修正するのか」を知るのを助けるデータ観測可能性プラットフォーム「Metaplane」では、実行時間、dbt が生成したモデル、モデル間の系統関係など、dbt ジョブの実行に関するメタデータを表示することができます。
Metaplaneとdbtを連携させることで、dbtクラウドのメタデータにアクセスし、実行期間、dbtが生成したモデル、モデル間の系統関係などのジョブ実行メタデータを抽出することができます。またウェアハウス内のテーブルとdbtモデルを照合し、テーブル障害の因果関係や結果を特定することができます。
その他詳細に関しては以下ドキュメントをご参照ください。
Monte Carlo
データウェアハウス、データレイク、ETL、およびビジネスインテリジェンス全体のデータ問題を監視し、アラートを発する、データスタックのためのエンドツーエンドのソリューションである「Monte Carlo」では、機械学習を使用してデータを推論・学習し、データの問題をプロアクティブに特定し、その影響を評価し、知る必要のある人に通知します。
Monte Carloとdbtを連携させることで、内部で関連するdbtモデルとテスト実行結果を表示し、インシデントのトラブルシューティングを簡単に行うことができます。
その他詳細に関しては以下ドキュメントをご参照ください。
データカタログ
Alation
組織がデータ資産を特定、理解、管理するのに役立つデータカタログツール「Alation」では、組織はデータ資産をカタログ化し、データ資産に関する技術レベルおよびビジネスレベルの情報を取得して追加し、これらの資産を管理し、管理することができます。
Alationとdbtを連携させることで、組織は重要な変換メタデータを見逃すことがなくなり、ユーザーはデータ駆動型の意思決定までの時間を短縮することができます。
その他詳細に関しては以下ドキュメントをご参照ください。
Atlan
最新のデータチームのためのアクティブなメタデータプラットフォームの「Atlan」では、データ資産の発見、理解、信頼、コラボレーションを支援することが出来ます。
Atlanとdbtを連携させることで、dbtプロジェクトからメタデータとメトリクスを取り込み、エンドツーエンドのカラムレベルのリネージを見ることができます。また、AtlanのVisual Query Builderを使用して、メトリクスを探索することも出来るようになります。
その他詳細に関しては以下ドキュメントをご参照ください。
Secoda
アナリティクスエンジニアと最新のデータチームのために作られたデータカタログとリネージポータルの「Secoda」では、データチームの効率性を倍増させます。Secodaはデータチームのデータスプロールを管理し、インフラストラクチャを拡張し、観測可能性の欠如、ガバナンス、長いセットアップと統合期間といった一般的な問題の克服をサポートします。
Secodaとdbtを連携させることで、dbtモデル、メトリクス、ドキュメンテーションを、カラムとダッシュボードの自動リネージで強化することができます。
その他詳細に関しては以下ドキュメントをご参照ください。
Select Star
データを自動的に分析して文書化するインテリジェントなデータ発見プラットフォームの「Select Star」では、データウェアハウスやBIツールに直接接続し、各データソースからメタデータ、クエリ履歴、アクティビティログをフェッチします。テーブルのすべての列、データベースのすべてのテーブル、BI ツールのすべてのダッシュボードは、Select Star で人気順に並べられるため、常に最初に何が最も使用されているかを確認できます。
その他詳細に関しては以下ドキュメントをご参照ください。
オーケストレーション
Airflow
バッチ指向のワークフローを開発、スケジューリング、監視するためのオープンソースのプラットフォームの「Airflow」では、拡張可能なPythonフレームワークにより、事実上あらゆるテクノロジーと接続するワークフローを構築することができます。
Airflowとdbtを連携することで、データチームの各メンバーは、データ パイプラインの問題が発生したときに誰が調査する必要があるか(どこから始めるべきか)をアナリストとエンジニア全体で明確にしながら、自分が最も得意とすることに集中し、dbtモデルをDAGとしてオーケストレーションし、実行することができます。
その他詳細に関しては以下ドキュメントをご参照ください。
Dagster
開発ライフサイクル全体のためのクラウドネイティブなオーケストレーターの「Dagster」では、統合されたリネージとオブザーバビリティ、宣言型プログラミングモデル、クラス最高のテスト容易性をサポートします。
Dagsterとdbtを連携すると、dbt Cloudのジョブを他のテクノロジーと一緒に実行し、定期的に実行するようスケジュールしたり、より大規模なパイプラインの一部として実行することができます。
その他詳細に関しては以下ドキュメントをご参照ください。
Prefect
ワークフロー・オーケストレーション・ツール「Prefect」では、開発者がデータ・パイプラインを構築、観察、対応することができます。
その他詳細に関しては以下ドキュメントをご参照ください。
その他
Continual
データおよびAPIと深く統合されたアプリケーション用のAIコパイロットを構築する「Continual」では、AIと人間によるフィードバック、評価、ワークフローの微調整をサポートし、コパイロットが継続的に学習し、時間の経過とともに改善することをサポートします。
Continualとdbtを連携すると、dbtユーザーは既存のdbtモデルから直接エンティティ、フィーチャーセット、予測モデルを定義することができます。
その他詳細に関しては以下ドキュメントをご参照ください。
Immuta
データのアクセスコントロールやデータガバナンスの問題を解決するクラウド型のデータガバナンス管理サービス「Immuta」では、クラウドデータを保護し、安全なアクセスを提供することで、企業がクラウドデータから価値を引き出すことをサポートします。
Immutaとdbtを連携することで、価値とガバナンスの変革を分離するImmutaデータチームのアプローチの共有が促進されます。
その他詳細に関しては以下ドキュメントをご参照ください。
まとめ
という訳で、dbtが連携可能な各種サービス一覧の紹介でした。
データ分野におけるELTのT(変換)部分を担い、またdbtが備える機能(セマンティックレイヤーなど)を活用してこれだけ多くのサービスが連携出来るという状況を眺めてみるだけでも、dbtの重要性や拡張性を実感した次第です。
「dbtと他サービスの連携」という点では、以下の情報も参考になるかと思います。合わせてご参照頂けますと幸いです。