Data Engineering
7 bài viết
Đọc theo series
dbt là gì và vì sao là 'chữ T' của ELT hiện đại: triết lý analytics engineering, dbt Core vs dbt Cloud, cách dbt biên dịch SQL & chạy trên warehouse, cấu trúc project và vòng đời một lần chạy.
Đơn vị cốt lõi của dbt: model là một câu SELECT, cách ref()/source() dựng DAG, và bốn kiểu materialization (view, table, incremental, ephemeral) — chọn đúng để cân bằng chi phí, độ tươi và tốc độ.
Điểm vào và lịch sử dữ liệu trong dbt: khai báo sources & kiểm tra độ tươi (freshness), seeds cho dữ liệu tĩnh nhỏ, và snapshots để lưu lịch sử thay đổi theo kiểu Slowly Changing Dimension Type 2.
Đảm bảo chất lượng & minh bạch dữ liệu bằng dbt: data tests dựng sẵn (unique, not_null, relationships, accepted_values), singular test, unit test, và tài liệu tự sinh kèm lineage graph.
Sức mạnh lập trình của dbt: Jinja biến SQL thành template động, macros để tái dùng logic (DRY), biến & môi trường, hooks, và hệ sinh thái packages (dbt_utils) — cùng cảnh báo đừng lạm dụng.
Xử lý bảng lớn hiệu quả trong dbt: cơ chế incremental (chỉ nạp dữ liệu mới), câu is_incremental(), các chiến lược (merge/insert_overwrite/append/delete+insert), unique_key, xử lý late data, và tối ưu chi phí trên warehouse.
Đưa dbt vào production: môi trường dev/prod & targets, cách chạy định kỳ (dbt Cloud jobs, Airflow, dbt-core + cron), Slim CI dùng state để chỉ chạy phần đổi, và các best practice tổ chức project.