Bỏ qua để đến nội dung

Chạy dbt & CI/CD: dbt build, môi trường, lịch chạy, kiểm tra tự động

dbt không chỉ giúp viết logic biến đổi — nó còn giúp vận hành logic đó một cách kỷ luật: chạy đúng lịch, tách dev/prod, và kiểm tra tự động trước khi đưa thay đổi vào sản xuất.

LệnhLàm gì
dbt runChạy (tạo/cập nhật) các model
dbt testChạy kiểm thử dữ liệu
dbt snapshotCập nhật snapshots (lịch sử)
dbt seedNạp các seed (CSV)
dbt buildChạy tất cả trên theo đúng DAG — khuyến nghị dùng hằng ngày
dbt docs generateSinh tài liệu & lineage

Selector giúp chạy đúng phần cần: dbt build --select stg_don_hang+ (model đó + mọi thứ phụ thuộc nó), --select tag:tai_chinh (theo nhãn), state:modified+ (chỉ phần vừa đổi — rất hợp cho CI).

dbt khuyến khích mỗi lập trình viên một schema dev riêng, prod một schema riêng — nhờ ref() tự đổi tên đối tượng theo môi trường. Bạn thử nghiệm thoải mái ở dev mà không đụng dữ liệu prod.

flowchart LR
  DEV["Dev<br/>(schema cá nhân)"] -->|"Pull Request"| CI["CI: dbt build + test<br/>trên dữ liệu mẫu"]
  CI -->|"Merge"| PROD["Prod<br/>(chạy theo lịch)"]

Pipeline cần chạy đều (vd mỗi đêm). Vài cách:

  • dbt Cloud — có bộ lập lịch sẵn, chạy job theo giờ + gửi cảnh báo khi fail.
  • Airflow / Dagster / Prefect — công cụ điều phối, gọi dbt build như một bước trong luồng lớn.
  • Cron + dbt Core — đơn giản nhất cho đội nhỏ.

Đây là điểm dbt đưa dữ liệu lên ngang phần mềm: khi ai đó mở pull request sửa model, một pipeline CI tự động:

  1. Dựng các model vừa đổi (và downstream) trên môi trường tạm.
  2. Chạy toàn bộ test.
  3. Chỉ cho merge khi mọi test xanh.

Cấu hình gửi cảnh báo (email/Slack) khi job fail; lưu log chạy để soi hiệu năng model nào chậm. BSD thiết lập sẵn giám sát + cảnh báo khi triển khai để đội yên tâm vận hành.

Chia sẻ: