昨年と比べると圧倒的に注目され、実際に導入している会社も増えてきているdbt(data build tool)というツールがあります。dbt Tokyo Meetupのオーガナイザーを担当してきた1年、コミュニティでの取り組み事例や今後の見通しに関してご紹介したり、実際に10Xの事業でどのように使われているのかの振り返りが出来たらなと思います。
©10X, Inc. All Rights Reserved.dbt日本コミュニティの立ち上げと 10Xでdbtの実践を行った2022 Data Engineering Study #17 株式会社10X 瀧本晋也1
View Slide
©10X, Inc. All Rights Reserved.瀧本 晋也 2● 株式会社10X ○ データプロダクト所属 ○ データプロダクトエンジニア ● 山梨在住 ● Twitter @takimo 最近はTokyo dbt Meetupのオーガナイザーをやってます
アジェンダ ● dbtとは? ● dbt日本コミュニティの活動 ○ dbt公式Slackコミュニティの#local-tokyoの開設 ○ dbt Tokyo Meetupの開催 ○ dbt入門記事の公開 ● 10Xでdbtを使ってDWHやデータプロダクトを作った話 ○ DWHがなかった状況からDWHを作った ○ 商品在庫データを作るデータプロダクトをdbtで作った ○ JDの公開(データプロダクトマネージャーとデータプロダクトエンジニア) 5
©10X, Inc. All Rights Reserved. 6詳しい人には釈迦に説法感ありますがdbtとは?
まずdbtとはなんなのか? - 正式名称は「data build tool」 - dbt Labs社とdbtコミュニティが開発するOSS - 拡張されたSQLを使い、ソフトウェアエンジニアリングのベストプラクティスを取り入れられる開発ツールであり、データモデリングを信頼性高く、高速に、楽しくしてくれるもの - ELTにおけるT(データ変換)を担当する
ELTとdbtの関係 - ELTとは、Extract(抽出)、Load(読み込み)、Transform(変換)の略 - 高速でかつ安価で運用ができるデータ基盤が台頭し、データ変換をロードしてから行うアプローチ - データエンジニアリングの領域からアナリストの領域にデータの管理や処理が染み出す
課題のまとめとdbtを使った解決のアプローチ
©10X, Inc. All Rights Reserved. 10dbt日本コミュニティの活動
©10X, Inc. All Rights Reserved.dbt公式Slackコミュニティの#local-tokyoの開設 ● 当時観測範囲ではクラスメソッドの玉井さんやUbieの石川さんが先行してウォッチ&コミットをしていらっしゃった ● 自分も使っていくなかでもっとこのツールとそのコミュニティ含め広げたいと思い、2021年11月19日に#local-tokyoが誕生(2022年の話ではない) ● 今では292人のチャンネルに!(嬉しい 11dbt日本コミュニティの立ち上げの話
©10X, Inc. All Rights Reserved.他の全ローカルチャンネルのうち5位まで成長 12dbt日本コミュニティの立ち上げの話
©10X, Inc. All Rights Reserved.dbt CoalesceのイベントでもTokyoが紹介された 13dbt日本コミュニティの立ち上げの話
©10X, Inc. All Rights Reserved.dbt Tokyo Meetupの開催 ● #1 2021年11月30日 ● #2 2021年12月16日 ● #3 2022年05月10日 ● #4 2022年08月23日 ● #2022dbt忘年会 2022年12月27日 new 14dbt日本コミュニティの立ち上げの話
©10X, Inc. All Rights Reserved.dbt入門記事の公開 15dbt日本コミュニティの立ち上げの話
©10X, Inc. All Rights Reserved. 1610Xでdbtを使ってDWHや データプロダクトを作った話
©10X, Inc. All Rights Reserved.DWHやデータマート構築用のパイプライン 1710Xでdbtを使ってDWHやデータプロダクトを作った話
©10X, Inc. All Rights Reserved.商品在庫データのデータアプリケーションを構築 1810Xでdbtを使ってDWHやデータプロダクトを作った話
©10X, Inc. All Rights Reserved.2022年前半 戦乱期 ● 個社毎に作ったパイプラインにも問題がで始める🔥 ● 複雑に入り組むリネージ ● 同じような処理ロジックが様々なところに&下流に様々なロジックが混在しやすくなってしまっていた ● また属人的に開発をする必要が高く、キャッチアップコストも高い状態に ● 修正をしたりする開発難易度や品質確認のためのQA工数も高くなってしまった ○ リネージが複雑でデータの流れを追うのが大変だったり、抽象度が荒いので様々なテーブルの確認が必要等 1910Xでdbtを使ってDWHやデータプロダクトを作った話
©10X, Inc. All Rights Reserved. 20※知ろうとしてなかったわけではないですよもっと業務を理解しないと 最適なモデリングの 抽象度、粒度を より良い設計が出来ない!
©10X, Inc. All Rights Reserved.実際にパートナーの店舗に伺って業務してみたり 2110Xでdbtを使ってDWHやデータプロダクトを作った話
©10X, Inc. All Rights Reserved.リファインしたアーキテクチャ 2210Xでdbtを使ってDWHやデータプロダクトを作った話
©10X, Inc. All Rights Reserved.5つのレイヤリングに役割を区分しテストで品質を保証 2310Xでdbtを使ってDWHやデータプロダクトを作った話ソースデータ ・このデータを様々なところから利用しない ゲートウェイ ・ソースデータをクレンジングする処理層 ・データレイクとの入り口を意識した名前 ドメインモデル ・ビジネスドメインを一定の粒度で集約する ・ドメインモデル同士は依存させない ドメインサービス ・ドメインモデル同士を利用して複雑な処理をするための処理層 ・必ず実装する必要はない アプリケーション ・最終的なユースケースに沿った結合処理等を行う
©10X, Inc. All Rights Reserved.「データプロダクトマネージャー」と 「データプロダクトエンジニア」という名のJDを作った 2410Xでdbtを使ってDWHやデータプロダクトを作った話
©10X, Inc. All Rights Reserved.詳しくは別途登壇資料を御覧ください 2510Xでdbtを使ってDWHやデータプロダクトを作った話
©10X, Inc. All Rights Reserved.来年への抱負 ● dbtのコミュニティに関してはより活用のシーンが広がっていくことを支援したいし、いろんな人や企業の取り組みが共有されるような取り組みをしたい ● 10XではDWHはもちろん、データプロダクトを作る上でもdbtを活用していますが、よりデータ品質を向上させるためのテストや検知、またアナリティクスエンジニアやデータプロダクトエンジニアがチームで開発するためのナレッジ等を深めて共有していきたい 26