Rehab for JAPANでのdbt導入から活用まで
株式会社Rehab for JAPAN / nosscafe66
メンバー / データエンジニア / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|
10名以下 | 2023年8月 | B to B |
ツールの利用規模 | 10名以下 |
---|---|
ツールの利用開始時期 | 2023年8月 |
事業形態 | B to B |
アーキテクチャ
アーキテクチャの意図・工夫
source
加工は行わない。 各プロダクトのrawdataをまとめる
staging(dbt利用)
sourceから受け取ったデータの形式を統一したり、不要なデータを削除するなど、 warehouseに格納する前の共通的なクレンジング処理を行う。
warehouse(dbt利用)
異なるソースからのデータを一元管理し、分析やレポーティングの基盤として機能する。 データは整理され、分析しやすい形で保管する。 また、仮名加工情報、匿名加工情報のための加工(ハッシュ化等)を行う。
mart
特定の部門や用途に特化したデータのサブセットを提供する
工夫点
データセットをdbtのconfigやカスタムスキーマをうまく活用することで異なる
スキーマ上にモデルを作成するという構成にしています。
また、staging, warehouse, martを作成していく上で、共通的な処理が乱立してくるためその部分を
マクロに切り出し管理を楽にしています。
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
- 導入前の段階ではデータ基盤として出来上がってまだ一年未満の状態
- 弊社データエンジニアとして1人目の社員ということからまだ構築自体が最低限の状態
どのような状態を目指していたか
- 少数メンバーでもデータ基盤を効率よく開発・保守・運用・テストができる状態
- メタデータ管理などの手間を省ける状態
- 属人化を防ぐ開発体制を構築できている状態
- 将来的なデータ基盤が拡張できる状態
比較検討したサービス
- dbt cloud
比較した軸
- コストをかけずに少ないメンバーでも可能な開発・運用体制
- 今後のデータ基盤の拡張性と柔軟性(データ基盤の拡張性を最大限に高められること)
選定理由
- ETLのTの部分のみを集中的に考えることができる点
- 開発 〜 テストまでの流れがわかりやすい点
- メタデータ管理も可能になる点
- SQLとして共通化が可能な点
- データエンジニアだけでなくデータアナリストも利用できる可能性がある点
- 弊社CEOも当初からデータの重要性を理解した上での先見性があった点
導入の成果
改善したかった課題はどれくらい解決されたか
- メタデータ管理やテストの容易さが向上し、開発・運用が効率的になりました。また既存のデータ基盤に対しても横展開することが容易になりました。
どのような成果が得られたか
- 少数メンバーでもデータ基盤の運用がしやすくなり、データ基盤の拡張性も確保されました。
- dbtのマクロや共通処理をうまく活用することで柔軟に実現したいデータ加工を実現することができました。
導入時の苦労・悩み
dbtを使って0からデータ基盤を設計・開発・リリースを担当したため手間がかかりました。また、dbtのバージョン依存問題や、jinjaテンプレートの理解する点に苦労しました。
導入に向けた社内への説明
上長・チームへの説明
- dbt-coreの利用により無料で機能を使えること
- テストのしやすさ
- 今後のガバナンスを効かせたデータ事業基盤を作れること
- 少人数でも管理がしやすく開発効率や保守・運用がしやすいこと
活用方法
よく使う機能
標準機能
- dbt runコマンドのでのテーブル生成
- exclude、-selectを使いモデルの範囲を限定した実行
- dbt testコマンドによるテスト処理の実行
- Jinjaテンプレートの利用による共通処理の作成
- with句などのモデル内で共通的に記載している部分を一つにまとめるなど
- configやvarの活用により柔軟なデータセットの作成
dbt-osmosis
- ymlによるメタデータの管理
- warehouse,staging以降のメタデータの伝播
- Google DataCatalogの構築まで伝播
dbt run operation
- select以外のSQLなどの作成
dbtパッケージ
- dbt-labsのdbt_utils(テスト周りでの活用)
- adapter(sql内でのカラム取得などに活用)
- get_columns_in_relation関数
- get_relation関数
ツールの良い点
- dbt-coreを利用する場合低コストな点
- 導入することでテストやメタデータ管理まで一貫して行うことができる点
- マクロををうまく利用することで、処理の幅を効かせることができることやメインの実行モデルの作成に集中できる点
ツールの課題点
- メタデータ周りの準軟性でdbt-osmosisによりBigquery to yml、yml to Bigqueryなど双方向に取り込みや連携ができると良さそうです。
ツールを検討されている方へ
無料で比較的お試しでも入れやすいツールなため、技術的なキャッチアップが楽しくできる方であればぜひ触ってみて欲しいです。 ETLの「Transform」の部分を便利にすることができるためデータ基盤としても柔軟に組み込みやすいのかと思います。また、昨年リリースされているCosmosというApache Airflowにdbtを組み込みできるライブラリを延長線で導入することが可能になるので、データ基盤全体としてもコストをかけずに開発・構築が可能になると思います。
今後の展望
弊社は科学的介護を実現するためにデータ基盤の利活用を今後も進めていきます。その上でデータのセンシティブ性やデータガバナンスなどより強固なデータ基盤かつ開発効率、運用保守性を最大限に高めるためにもdbtを活用していきます。
株式会社Rehab for JAPAN / nosscafe66
メンバー / データエンジニア / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
よく見られているレビュー
株式会社Rehab for JAPAN / nosscafe66
メンバー / データエンジニア / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法