[レポート] dbtウェビナー『What is dbt?データ基盤にdbtが必要な3つの理由』を開催しました! #dbt_classmethod

2023.03.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

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ユーザー数
  • アジア太平洋チームのメンバー紹介
  • 日本市場について
    • 現在ユーザー数が増えている
    • 成長に合わせた投資(サポートやコンテンツ等)を行っている

商品ラインナップの紹介

モダンデータスタック(MDS)

  • クラウドサービスやSaaSの組み合わせで構成されたデータ分析基盤。
  • データ統合や基盤にこれらのサービス群を使うことで、ビジネスチャンス、価値を発見し効率を向上させることが出来る。
  • MDSにおけるdbtの立ち位置:
    • dbtは「クラウドデータベース」と「可視化ツール」の間に位置。
    • dbtはELTプロセスにおける「T(Transformation)」を行う。
    • クラウドDWHの導入により、トランスフォーメーションコストが削減出来るようになった
      • 従来:ETL(ロードする前に加工する)
      • MDS:ELT(ロードしてから加工する)
    • dbtはクラウドデータプラットフォームの上に位置し、「アナリティクスエンジニア」のワークフローを通じてデータを変換する事を支援している。
  • 従来のETLでは、20年間に渡りデータの変換方法は変わっていなかった
    • 長所:GUI、オールインワン/カスタムコードで何でも作れる、要求に合ったソリューションが提供出来る
    • 短所:限られた人しかアクセス出来ない→サイロ化を招き、エラーも起きやすくなる

データ基盤にdbtが必要な理由3つ

  • (1).プログラマー(SE)のような開発方法が可能になる
    • SQLが共通言語になっている
    • 品質テスト、バージョンコントロール、ドキュメント等と連動していて、スピードと信頼性を促進させていくことが可能
    • バージョン管理とCI/CDを使用して簡単にデプロイを行うことも出来る
  • (2).SQLのスキルを持っている全員が新たな価値を創造出来る
  • (3).データに関する信頼性が向上する
    • データリネージの可視化
    • 長い間データ開発業務は一貫性の無いプロセスが発生しやすく、データの品質と信頼性が低下しがち。dbtはSQLスキルを持つ全ての人が分析プロセスをテスト、リリース、文書化出来るようにする開発プロセスを標準化している
  • dbtの導入により「コラボレーション」「開発スピード」「品質」「ガバナンス」の4つのベネフィット(利益)を得ることが出来る

プラットフォームのロードマップ

セッション:10Xにおけるdbtの事例紹介

登壇資料

はじめに

  • 自己紹介
    • グロース本部所属、データサイエンティスト
    • 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段階に分けて品質を担保するための開発プロセスを明確化
    • Explorational/Ad-hoc/Business Insight/Trusted
    • DRL毎に要件や必要な開発プロセスを定義(こちらはまだ途中段階とのこと)
    • ちなみに「データ品質の定義」についてはDAMAが使っているものを参考にしている
  • dbtの機能を用い、この品質を担保している
  • マスタデータに求められる品質

セッション:dbtでデータ品質活動

登壇資料

はじめに

  • 自己紹介
    • 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がカバーする範囲も、ちょうどデータ品質の担保する範囲と同じ

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

elementary:データエンジニア、アナリティクスエンジニア向けの可視化ソリューション。データ監視、アラート、分析が可能

まとめ

  • 継続的なデータ品質系のテスト実行にはインフラコストが掛かる
  • データ量やテストの複雑さによるインフラコストと データ品質要件のバランスを見極めて対応しよう

セッション:dbtと仲良し!クラスメソッドのModern Data Stack

  • 登壇者:さがら(クラスメソッド株式会社 アライアンス統括部 アナリティクスコンサルタント)

イベントの最後、4つ目のセッションは弊社クラスメソッドから さがら が登壇。dbtを含めたモダンデータスタックのサービス群について、クラスメソッドでどのようにそれらを扱っているのか、またクラスメソッドで提供しているサービスの内容に関しての紹介を行いました。

こちらの内容については既に登壇者本人が「発表しました」ブログを挙げています。詳細については下記エントリをご参照ください。

まとめ

本編終了後はささやかではありますが、オフライン会場に起こし頂いた方々との懇親会(ネットワーキング)を行いました。

飲食物もこんな感じで用意していました。この辺もオフライン開催ならではの風景であり、個人的には久々の状況ではありました。

オフライン&オンラインのハイブリット開催であり、オンライン開催にご参加頂いた方々の人数も多いこともあって最後まで(コンテンツ配信とオフライン会場運営を)滞り無く進める事が出来るか不安がありましたが、無事終えることが出来てひと安心です。またセッション内容に関しても、そのどれもが学びの多いものでした。個人的には収穫大(というか収穫しかない)です。

イベントに関して御参加頂いた皆様、登壇頂いた皆様、御協力頂いた社内の皆さん、ありがとうございました! また近いうちにアライアンス統括部としてモダンデータスタック関連のイベントをやりたいと思っておりますのでその際は是非御参加頂けますと幸いです。


あ、申し遅れましたが私、2023年03月01日付でアライアンス統括部に部署異動致しました。モダンデータスタック(MDS)周りのプロダクトに関する情報収集&アウトプットを中心に色々やっていく予定です。こんな感じの開催&参加レポートも増えて行くんじゃないかなと思います。こちらも合わせて宜しくお願い致します。