[レポート] dbtウェビナー『What is dbt?データ基盤にdbtが必要な3つの理由』を開催しました! #dbt_classmethod
2023年03月14日(火)、モダンデータスタック(MDS)を構成するサービスの1つであるdbtにちなんだイベント『What is dbt?データ基盤にdbtが必要な3つの理由』を開催しました。モダンデータスタック及びdbtに関しては下記ページをご参照ください。
このイベントはオンライン(Livestormによる配信)及びオフライン(弊社クラスメソッド岩本町オフィス)でのハイブリッド開催となりました。オフライン開催分については諸々状況を鑑みて少数招待に留める形となりましたが、オンライン開催分に関しては定員数250人を超える参加申し込みがありました。これは嬉しい状況でした。
当日のTwitterつぶやきまとめはこちらです。
当エントリでは会場の模様及び当日の発表内容についてお届けします。
当日の会場風景
オフライン開催を踏まえて、オフィスのある建物の入り口に案内の紙を掲示。いやーこういうのも久々でしたねぇ。
開催会場は弊社オフィスの8Fフロアを活用する形となりました。配信用の機材もセッティング&テスト済み。
オフライン会場に起こし頂いた方々への特典として、dbt社から頂いたクッキー&靴下のノベルティをご提供。
また弊社からも特製ボールペンと「新バージョンロゴのステッカー」をご提供する形となりました。
セッション:dbt製品紹介とメリット - データ基盤にdbtが必要な3つの理由
- 登壇者:Aaron Mcgrath(アーロン・マクグラー)氏(Dbt Labs APJパートナーマネジャー)
ここからはセッション本編です。イベント司会の 兼本侑始 による開催挨拶と諸注意の後、dbt社からAaron Mcgrath(アーロン・マクグラー)氏による発表でスタートしました。
dbtの会社概要
- 会社名は「dbt Labs」、商品名(OSS+SaaS)は「dbt」。
- 元々SIerコンサルだった(FISHTOWN Analyticsという会社)。創立者の3名がdbt製品構想を立ち上げたのが発端
- 売上の9割がソフトの販売、14000以上の利用者、1800以上のdbt Cloudの利用者、30000以上のSlackユーザー数
- アジア太平洋チームのメンバー紹介
- 日本市場について
- 現在ユーザー数が増えている
- 成長に合わせた投資(サポートやコンテンツ等)を行っている
商品ラインナップの紹介
- 商品は2種。
- コア(dbt Core)
- GitHub - dbt-labs/dbt-core: dbt enables data analysts and engineers to transform their data using the same practices that software engineers use to build applications.
- オープンソース(Apache 2.0)
- セルフホスト型
- 無償
- CLIでの利用
- 汎用性があり、様々なニーズに合わせられる
- クラウド(dbt Cloud)
- dbt - Transform data in your warehouse
- SaaS提供
- クラウド専用の機能もあり
- 有償
- コア(dbt Core)
- プランのラインアップは4種類(Core+下記ページ内の3種類)
- dbt Pricing Plans
- dbe Core:OSS、無償
- dbt Clodu Developer:無償、1名制限
- dbt Cloud(Team):ユーザー毎、月毎のプライシング
- dbt Cloud(Enterprise):年毎のプライシング
- dbtの学び方
- 共同開発のための一元化された環境が揃っている
モダンデータスタック(MDS)
- クラウドサービスやSaaSの組み合わせで構成されたデータ分析基盤。
- データ統合や基盤にこれらのサービス群を使うことで、ビジネスチャンス、価値を発見し効率を向上させることが出来る。
- MDSにおけるdbtの立ち位置:
- 従来のETLでは、20年間に渡りデータの変換方法は変わっていなかった
- 長所:GUI、オールインワン/カスタムコードで何でも作れる、要求に合ったソリューションが提供出来る
- 短所:限られた人しかアクセス出来ない→サイロ化を招き、エラーも起きやすくなる
データ基盤にdbtが必要な理由3つ
- (1).プログラマー(SE)のような開発方法が可能になる
- SQLが共通言語になっている
- 品質テスト、バージョンコントロール、ドキュメント等と連動していて、スピードと信頼性を促進させていくことが可能
- バージョン管理とCI/CDを使用して簡単にデプロイを行うことも出来る
- (2).SQLのスキルを持っている全員が新たな価値を創造出来る
- dbt Cloud向け
- FireFly Helathの事例
- dbtを利用することで様々な問いにスムーズに回答出来るようになり、より価値の高いタスクに取り組む事ができるようになった。
- データエンジニアリング自体はアナリストのセルフサービスとなり、組織全体でデータの一貫性と信頼性が向上した。
- (3).データに関する信頼性が向上する
- データリネージの可視化
- 長い間データ開発業務は一貫性の無いプロセスが発生しやすく、データの品質と信頼性が低下しがち。dbtはSQLスキルを持つ全ての人が分析プロセスをテスト、リリース、文書化出来るようにする開発プロセスを標準化している
- dbtの導入により「コラボレーション」「開発スピード」「品質」「ガバナンス」の4つのベネフィット(利益)を得ることが出来る
プラットフォームのロードマップ
- 注)将来の話なので予定が変わる可能性は十分にあり得るのでその点をご了承ください。
- 最近のアップデートまとめ
- dbtセマンテックレイヤー:主要指標の一貫性、信頼性、アクセス可能性をサポート
- 新dbt Cloud IDE:全てのユーザーを念頭に置いて再構築された環境。
- Pythonのサポート:SQLで出来ないことをPythonで補う形に。
- 今後のアップデート:
- 2023年は「コラボレーション」「UX/DevEx」「プラットフォーム」の観点でアップデートをしていく予定
- 主なトピック
- Trinoのコネクター
- マルチプロジェクトのサポート
- Cloud-attached CLI(dbtクラウドと統合されたCLI)
- dbt Semantic Layer機能の追加・拡張
セッション:10Xにおけるdbtの事例紹介
- 登壇者:谷口 和輝氏(株式会社10X データサイエンティスト)
- Twitter:Kazk1018(@Kazk1018)さん / Twitter
登壇資料
はじめに
- 自己紹介
- グロース本部所属、データサイエンティスト
- dbt歴は約1年(10X所属歴=dbt歴)
- 会社概要
- ミッション:COMPANY | 株式会社10X
- ミッションに掲げている3つのポイントを同時に満たすことを「10X」と定義している
- チーム構成:全社で103名(2023年1月時点)。
- 2017年6月創業、2020年12月にStailerをリリース
- Stailerとは?
- Stailer | 小売チェーンのECを垂直立ち上げ
- 小売エンタープライズに特化したEC/DXプラットフォーム
- プロダクトとしてのStailer、及び事業エキスパートチームが広範な領域をパートナーとして伴走。
- お客様・小売事業者・配送の三者に必要な全てのプロダクトを提供
- お客様向け統合UX
- 小売事業者向けオペレーションシステム
- 配送業者向けオペレーションシステム
- 事業に即したマトリクス組織を軸に
10Xにおけるデータ活用
- 各領域の専門家がデータを武器にパートナープロダクトへ向けて価値を提供
- 【10,000字詰め込みました】10Xのデータに関わる職種を紹介します(2022年12月版) - 10X Product Blog
- データプロダクト:パートナーからデータを受領、Stailerにおけるその後のデータ利活用のもととなるマスタデータや売り場を生成
- データ基盤:プロダクト経由のログを扱いやすい形に加工し社内外利活用に活かす/信頼性や品質も担保
- インサイト分析・ダッシュボード:インパクトと優先順を判断の上で意思決定を支えるインサイトの提供・KPI追跡用のダッシュボードを作成
- 機械学習:ユーザーが一度に多くの情報処理を行う必要がある場合に売場や個人に最適な形で提供、意思決定や作業を支援
10Xにおけるdbtの活用
- 10X社では、データ活用の広い範囲でdbtを活用している。カテゴリは主に以下の2つ。
- ①マスターデータ開発
- ②データ基盤開発
- なぜdbtを利用しているのか
- SQLとjinjaでの開発で、データマート開発の敷居を下げる事が出来るため(スキルセットの観点から)
- ソフトウェア開発のDevOps(Test, CI/CD)の考えを取り入れて品質を向上させるため
データモデリングとdbt
- マスタデータ開発のアーキテクチャとして、ドメインを考慮したレイヤードアーキテクチャを採用
- ソース(SOURCE):元データ。パートナーから受領したデータが格納されている
- ゲートウェイ(GWATEWAY):ステージング層想定。ソースにあるデータをクレンジングする
- ドメイン:
- ドメインモデル(DOMAIN MODEL):事業のビジネスロジックを適用。ビジネスドメインを一定の粒度で集約する
- ドメインサービス(DOMAIN SERVICE):ドメインモデル同士を利用して複雑な処理を行う
- アプリケーション(APPLICATION):最終的なユースケースに沿った結合処理等を行う
- Data Vault:Enterprise Data Warehouse(EDW)を構築するための設計やアプローチ全体
- Data vault modeling - Wikipedia
- What is Data Vault? | Snowflake Data Cloud Glossary
-
The Data Vault is a detail oriented, historical tracking and uniquely linked set of normalized tables that support one or more functional areas of business. It is a hybrid approach encompassing the best of breed between 3rd normal form (3NF) and star schema. The design is flexible, scalable, consistent, and adaptable to the needs of the enterprise. It is a data model that is architected specifically to meet the needs of today’s enterprise data warehouses.
(Data Vault は、1 つ以上のビジネスの機能領域をサポートする、詳細指向の履歴追跡および一意にリンクされた正規化されたテーブルのセットです。 これは、第 3 正規形 (3NF) とスター スキーマの最善の組み合わせを含むハイブリッド アプローチです。設計は柔軟で、スケーラブルで、一貫性があり、企業のニーズに適応できます。これは、今日のエンタープライズ データ ウェアハウスのニーズを満たすように特別に設計されたデータ モデルです。)
-
- [レポート] Data Vault Modelling on Snowflake #SnowflakeDB | DevelopersIO
- 社内で「Data Vault勉強会」を開催しました - 10X Product Blog
- Data Vault Modeling
- Hub:ビジネスオブジェクトを管理
- Link:ビジネスオブジェクトの関係を管理
- Satellite:ビジネスオブジェクトを説明する値を履歴とともに管理
- dbtvault
- dbtの利点の1つである「jinjaによるテンプレート化」はData Vaultのようなモデリングと相性が良い
- dbtでData Vaultを実装するライブラリとして「dbtvault」がある
- 2023/03/14現在、対応しているモデルは以下。
- Stage
- Hub
- Link(Link, Transactional)
- Satellite(Satellite, Effectivity, Multi-Active, Extend Tracking)
- PIT
- Bridge
- 使用例の解説:マクロで定義されているものに変数を入れて呼び出すという構造。10-20行くらいのコードでモデリングが出来る
データ品質とdbt
- Data Reliabity Level(DRL):データの品質を4段階に分けて品質を担保するための開発プロセスを明確化
- dbtの機能を用い、この品質を担保している
- テストを自動化
- custom generic testを用いたテストも検討中(品質項目:dbtによるアプローチ)
- Clarity:dbt docs
- Completeness(values):Non-null test
- Currency:Freshness test
- Traceabillity:Data Lineage
- Uniqueness:Unique test
- マスタデータに求められる品質
- データ特性から、高水準高品質が求められる部分。そのため特に重要になるドメインサービス層では単体テストを実施
- dbt-datamocktool(dml)を活用
- GitHub - mjirv/dbt-datamocktool: A dbt package for unit testing your SQL analytics models
- dbt modelの単体テストを行うためのパッケージ。
- custom generic testでassertionを実現している
セッション:dbtでデータ品質活動
- 登壇者:菱沼 雄太氏(ちゅらデータ株式会社 CTO)
登壇資料
はじめに
- 自己紹介
- Snowflake Data Hero of YEAR(2021)
- Snowflaek Data Superhero(2021-2023)
- Data Leader to Watch in 2023(2023年1月選出、世界で30人)
データ品質とは?
- データ品質に取り組む動機:イマイチなデータを使うとイマイチな結果を得るという教訓 - "Garbage in Garbage out"
- データ品質はデータから価値を作り出すシステム全般の「急所」である
- データ品質のカテゴリ:ISO/IEC 25012ではデータの品質を次の15のカテゴリに分類している。dbtで対応出来そうなものも結構ある
- 大規模データ管理のScalable Architectureにおける読み出し専用データストア(RDS)アーキテクチャだと、データ品質コンポーネントはETLやデータ完全性チェックが該当
dbtでデータ品質マネジメント
Generic tests(汎用テスト)
- 以下3つのデータ品質を管理出来る
- 正確性(Accuracy)
- 完全性(Completeness)
- 一貫性(Consisutency)
- ※利用するテスト:「unique」「not_null」「accepted_values」「relationships」
- Writing custom generic tests | dbt Developer Hub
- 生データ/ファクト/ディメンションに当てはめるとこういう対応になる
Singular tests(単一テスト)
- 複雑なデータ品質要件に対応、SELECT文を書くことで任意のデータ品質テストを実行可能
- 以下3つのデータ品質を管理出来る
- 正確性(Accuracy)
- 完全性(Completeness)
- 一貫性(Consisutency)
- 想定するデータ品質要件の例
- 書式やフォーマットが適したものであるか
- 合計値(SUM)がマイナスになっていないか
- 住所コードと住所文字列が一致しているか
- 出荷トランザクションの合計と出荷数が合致しているか
- その他、この辺りもSingular testsでいける
- 標準適合性(Compliance):システム毎の名称(方言)をMDM由来の標準的な表記へ変換
- 効率性(Efficiency):ヨミガナを全角カタカナに統一
- 追跡可能性(Traceability):レコードのUPDATE、DELETE等を追跡、データの出所元システムを明示
- 理解性(Understandability):全てのカラムに説明を記載
dbt_utils
- dbt Labsが管理するdbtユーティリティが詰まったパッケージ群。
- GitHub - dbt-labs/dbt-utils: Utility functions for dbt projects.
- [dbt] データモデルの開発が便利になる「Package」を使ってみた(dbt_utils) | DevelopersIO
- 下記記載のように色々出来る。
elementary:データエンジニア、アナリティクスエンジニア向けの可視化ソリューション。データ監視、アラート、分析が可能
- Elementary Data
- 高度な異常検知機能を備えているので、それぞれのデータ品質要件に当てはまるものを採用しましょう
- 用途や内容等多岐にわたっていて使い方や進め方に迷うが、下記のような進め方がオススメとのこと。
まとめ
- 継続的なデータ品質系のテスト実行にはインフラコストが掛かる
- データ量やテストの複雑さによるインフラコストと データ品質要件のバランスを見極めて対応しよう
セッション:dbtと仲良し!クラスメソッドのModern Data Stack
- 登壇者:さがら(クラスメソッド株式会社 アライアンス統括部 アナリティクスコンサルタント)
イベントの最後、4つ目のセッションは弊社クラスメソッドから さがら が登壇。dbtを含めたモダンデータスタックのサービス群について、クラスメソッドでどのようにそれらを扱っているのか、またクラスメソッドで提供しているサービスの内容に関しての紹介を行いました。
こちらの内容については既に登壇者本人が「発表しました」ブログを挙げています。詳細については下記エントリをご参照ください。
まとめ
本編終了後はささやかではありますが、オフライン会場に起こし頂いた方々との懇親会(ネットワーキング)を行いました。
飲食物もこんな感じで用意していました。この辺もオフライン開催ならではの風景であり、個人的には久々の状況ではありました。
オフライン&オンラインのハイブリット開催であり、オンライン開催にご参加頂いた方々の人数も多いこともあって最後まで(コンテンツ配信とオフライン会場運営を)滞り無く進める事が出来るか不安がありましたが、無事終えることが出来てひと安心です。またセッション内容に関しても、そのどれもが学びの多いものでした。個人的には収穫大(というか収穫しかない)です。
イベントに関して御参加頂いた皆様、登壇頂いた皆様、御協力頂いた社内の皆さん、ありがとうございました! また近いうちにアライアンス統括部としてモダンデータスタック関連のイベントをやりたいと思っておりますのでその際は是非御参加頂けますと幸いです。
あ、申し遅れましたが私、2023年03月01日付でアライアンス統括部に部署異動致しました。モダンデータスタック(MDS)周りのプロダクトに関する情報収集&アウトプットを中心に色々やっていく予定です。こんな感じの開催&参加レポートも増えて行くんじゃないかなと思います。こちらも合わせて宜しくお願い致します。