dbt Labs社との共催イベント「What is dbt?データ基盤にdbtが必要な3つの理由」でクラスメソッドのModern Data Stackについて紹介しました #dbt_classmethod
さがらです。
2023年3月14日に、dbt Labs社との共催で「What is dbt?データ基盤にdbtが必要な3つの理由」というイベントを開催しました。
本イベントの中で、私は「dbtと仲良し!クラスメソッドのModern Data Stack」というセッションタイトルで登壇したので、その内容について本記事でまとめます。
登壇資料
クラスメソッドのModern Data Stack
昨今、SaaSを組み合わせたデータ分析基盤のことをModern Data Stackと呼ぶことが流行っておりますが、クラスメソッドとしても独自のModern Data Stackを提唱しております。
本イベントのメインでもあるdbtも組み込んだModern Data Stackとなっております。今回の登壇では、特にdbtと仲の良いFivetranとSnowflakeについて、少し厚めに説明しました。(内容は後述)
ぜひ、下記の記事も併せてご覧ください。
dbtと特に仲良しのサービスその1:Fivetran
Fivetranは、「データソースへの接続」と「使用するデータの選択」だけを行うことでDWHへデータロードを行うことができるSaaSです。
下図のようにFivetran側で独自のスキーマを設計しておりこのスキーマに併せてデータがロードされるため、ユーザーはスキーマ設計もAPIの仕様変更による処理の改修も不要です。
そして、dbtとFivetranが特に仲良しの理由として、「dbt Transformation」と「Fivetran用のdbt package」が挙げられます。
dbt Transformationは、Fivetranでのロード直後に続けてdbtで定義された各model(.sqlファイル)を実行できる機能です。Airflowなどのワークフローを必要とせず、「Fivetranによるロード➟dbtによる変換」を実現できることが強みの機能です。
弊社でもすでに、Zendesk SupportのデータをFivetranでロードし、Fivetran用のdbt packageを用いてdbt Transformationで加工する、ということを行った記事がありますので、ぜひこちらも参考にしてみてください。
dbtと特に仲良しのサービスその2:Snowflake
Snowflakeは、クラウドのメリットを最大限活かしたデータウェアハウスと言えます。
コンピューティングとストレージが分離しているため、従来のデータ分析基盤にありがちなデータロードとバッチ処理が重なるタイミングで分析作業はしてほしくない、みたいなことを気にすることなく処理を行うことが可能です。
マルチクラウド対応のため、AWS・Google Cloud・Azure、いずれのクラウドプラットフォームでも同じ機能を使用することが出来ます。
そして、dbtとSnowflakeが特に仲良しの理由として、「dbtの新機能の対応が早い」「Snowflake用のdbt package」という2点が挙げられます。
「dbtの新機能の対応が早い」の具体例としては、dbt Semantic Layerが挙げられます。dbt Semantic Layerは「売上」や「利益」など、 データを用いたビジネス指標の定義をdbt上で一元管理出来る機能であり、BIツールやデータカタログのサービスから参照することが出来ます。この機能が2023年3月14日時点では、DWHがSnowflakeである場合のみ使用することが出来ます。
dbt Semantic Layerについては、私も以前Tableauと繋いでみた経験があるので、下記の記事もぜひご覧ください。
「Snowflake用のdbt package」については、dbtはSnowfalkeに対応したpackageが多く提供されています。
マスキングポリシーをdbtから設定できるdbt_snow_mask
、Snowflake上の制約をdbtでtestを定義するだけで付与できるdbt_constraints
、Data Vault 2.0のモデリングを楽に行うことができるマクロを持つdbtvault
、などがあります。
おまけ:宣伝
クラスメソッドのModern Data Stackに興味のある方はぜひお問い合わせ頂けると嬉しいです!
また、データ分析基盤に関わる各職種も積極採用中です!!