はじめに
Sơ めまして. プラットフォーム khai phát bộ にてデータ cơ bàn の chỉnh đốn và sắp đặt をしているazukiと thân します.
Nay hồi はdbt(Data build tool)を dẫn vào した kinh vĩ と phi trung ương tập 権 なdbt の sử い phương についてご giới thiệu したいと tư います.
Nay hồi は dẫn vào に quan してまとめています の で, dbt の vận dụng mặt の kỹ càng tỉ mỉ は đừng ký sự で giải thích dư định です.
データモデリングツール dẫn vào の bối cảnh
ピクシブではプロダクト の nhiều さを lý do に phi trung ương tập 権データ tổ chức を chọn dùng しています.
ドメインチームがメインでデータ の lấy り tổ みやデータモデリングを hành い, データ駆 động đẩy mạnh thất やデータ cơ bàn チームはそ の サポートや chỉnh đốn và sắp đặt を đảm đương しています.
そ の bối cảnh に quan しては,【PIXIV MEETUP 2023】の phương でお lời nói しています の でぜひご lãm hạ さい. speakerdeck
Nay までBigQuery の データ gia công SQLは tự xã で khai phát したツールで quản lý していました.
Python から変 số chôn め込みができるSQLを tác thành し, CI/CDで変 càng コミットがマージされた khi にView の đổi mới, Airflowで định kỳ にテーブル の đổi mới を hành なっていました.
Đã tồn の ツールでは, データリネージやドキュメント, テスト の ような cơ năng がないことで chỉnh đốn và sắp đặt されていないテーブルやビューが loạn lập することになり, lầm った phân tích を hành う khả năng tính もありました. またデータ駆 động đẩy mạnh thất ・データ cơ bàn チームといった xã nội の データ chỉnh đốn và sắp đặt を hành うチーム の vận dụng コストが cao くなり, データモデリングツール の dẫn vào が tất yếu になりました.
ピクシブで の văn kiện quan trọng とツール tuyển định
Phi trung ương tập 権データ tổ chức として ai がど の ようにツールを sử う の かという bộ phận を minh らかにする tất yếu がありました.
そこでツール dẫn vào する mục đích をWhy・Who・When・What の văn kiện quan trọng でまとめました.
それぞれ の hạng mục において thật hiện khả năng なツールとしてdbt coreを chọn dùng しました.
Tương đối đối tượng としてdataformを kiểm thảo していましたが, hạng mục 8や hạng mục 10と の tương tính が ác く, tệ xã ではdbt coreを chọn dùng する phương がメリットが đại きいと cảm じました.
データモデリング chỉnh đốn và sắp đặt
レイヤリング
dbt のベストプラクティスに従って, tập kế định nghĩa の レイヤーを phân けました.
- staging
- カラム danh の 変 càng ・カラムtype の 変 đổi を hành い, unique,やnot null の testを thật hành します
- Phi trung ương tập 権データ tổ chức とも tương tính が lương く, stagingモデルを các チームで cùng sở hữu することでSSOT(Tin lại できる duy nhất の tình báo nguyên)を thật hiện します
- intermediate
- Các チーム の ビジネス văn kiện quan trọng に hợp わせた tập kế, rút ra
- Không cần なレコードを lấy り trừ いたり, ファンアウト の lầm tính toán に đối ứng する vì の tập kế などを các チームが quản lý します
- mart
- BIなどレポート sườn が tham chiếu するデータ
- Star schemaを ý thức したモデリングを hành っています. ディメンションテーブル, ファクトテーブルを tác thành し, エンドユーザーが tập kế しやすいデータマートを cung cấp しています
Phi trung ương tập 権 tổ chức の sử い phương として, dưới の ルールを thiết けました.
- stagingは hắn bố trí も lợi dụng khả năng なモデル
- intermediate lấy hàng に quan してはハブになるような riêng の モデルを trừ いて, hắn bố trí は lợi dụng しない
データリネージ cơ năng も sống dùng することで khai phát khi に dễ dàng に toàn thể の nắm chắc ができるようになりました.
Đầu đề となっていたデータ cơ bàn の vận dụng コストもかなり khinh giảm できる trạng thái になりました.
tagでモデル quản lý
tags: - department - report - exclude_ci_test
- Bố trí の tag
- Bố trí nội で の quản lý 単 vị
- Bố trí の tagで đã に phân かれている の で, bộ nội で tự do に giả thiết できます
- Chủ にairflow の DAGに hợp わせてtagを chấn っていきます
- hourly, every_day, monthlyなど thật hành タイミングもairflowと tổ み hợp わせることで quản lý できます
- システムに quan するタグ
こ の 3 điểm をタグで quản lý することでモデル(SQL) の quản lý を hành っています.
なぜこ の 3 điểm で quản lý している の か の lý do に quan しては đừng ký sự で giới thiệu dư định です.
Sống nhờ vào nhau quan hệ (ref)
dbt の đặc trưng としてテーブルを tham chiếu する tế にdbt の モデルを chỉ định します.
モデルを tham chiếu することによって, ảnh hưởng するモデル の quản lý やsource の quản lý も dễ dàng になります.
with import_stating_model_a as ( select * from {{ ref( "stg_model_a" ) }} ), import_stating_model_b as ( select * from {{ ref( "stg_model_b" ) }} ), import_stating_model_c as ( select * from {{ ref( "stg_model_c" ) }} ),
Phi trung ương tập 権データ tổ chức において, ảnh hưởng phạm 囲を nắm chắc できるようにするという điểm が phi thường に quan trọng です. データリネージ cơ năng を sống dùng し, データ sống dùng の xúc tiến と vận dụng コスト の cắt giảm を thật hiện しました.
クエリ の bộ phẩm hóa
dbt の macro cơ năng を sử うことでクエリ の bộ phẩm hóa を hành います.
Đặc にGA4(Google Analytics 4) の データなどは chung な bộ phận も nhiều く, スケールしやすい hoàn cảnh を chỉnh えることができました.
{% macro ga4_base_select_source() %} parse_date( "%Y%m%d", replace(_table_suffix, "intraday_", "" )) as event_date, timestamp_micros(event_timestamp) as event_timestamp, event_name, (... Trung lược ) is_active_user {% endmacro %}
dbt test
モデル định nghĩa の ファイル nội でuniqueやnot null の テストも thư ける の でテスト の khai phát が dễ dàng にできます.
Dễ dàng に khai phát できるという の も phi thường に mị lực です.
models: - name: users columns: - name: user_id tests: - unique - not_null
エコシステム の cấu trúc
ドメインチームが mau thích にdbtを lợi dụng する vì に, データ cơ bàn チームがエコシステム の dẫn vào ・ chỉnh đốn và sắp đặt を hành っています.
ソースコード の phẩm chất の đảm bảo と mau thích な khai phát hoàn cảnh を cung cấp することで従 tới の システムと の khác biệt hóa も hành っています.
Phi trung ương tập 権データ tổ chức でdbtを sũng nước させる vì に hành ったこと
ドキュメント chỉnh đốn và sắp đặt
dbt の ドキュメントをベースにデータ cơ bàn チームが ý thức して dục しい cái sở を xã nội wikiにまとめています.
ツール の dẫn vào や lợi dụng phương pháp は chớ luận の こと, Star Schemaなど chuyên môn な lời nói も giao えることで tự nhiên とデータモデリングを học べる hoàn cảnh を chỉnh えています.
Miễn cưỡng sẽ
Chu に1 hồi đọc thư sẽ を khai thúc giục しています.
Hiện tại đọc んでいる kỹ thuật thư はStar Schemaです. Nghiệp vụ だけでは đến られないデータモデリング の tri thức を thân に phó ける cơ hội になっています.
Nghi vấn điểm や khí づきを cùng sở hữu することで xã nội の データコミュニティ の hoạt tính hóa にも繋がっています.
まとめ
Nay hồi の inside ký sự ではピクシブにおけるdbt dẫn vào と phi trung ương tập 権データ tổ chức な sử い phương について giới thiệu しました. dbt dẫn vào に bạn う sống nhờ vào nhau quan hệ の sửa sang lại やtest の thật thi, phi trung ương tập 権データ tổ chức として ý thức した điểm について ghi lại させて đỉnh きました. dbt dẫn vào でデータモデリングが lặc になりました. しかし, dbtを dẫn vào しても giải quyết できないことも nhiều くあります. データ cơ bàn は chớ luận の こと, đặc にデータ sống dùng についてはこれからやっていくことが nhiều く tàn っています.
データマート の 拡 sung や tự động hoá, データ cơ bàn /データ sống dùng lạng phương におけるデータマネジメントを tiến めて tham ります.
ピクシブでは, một tự にプロダクトを thịnh り thượng げてくれる phương を đại mộ tập しています. ご hứng thú の ある phương は, dưới の リンクから thị phi ご ứng mộ hạ さい.