Trong kỷ nguyên bùng nổ dữ liệu, việc thu thập thông tin và tải chúng vào kho dữ liệu đã trở nên dễ dàng hơn bao giờ hết nhờ các công cụ ELT hiện đại. Dữ liệu thô có thể sở hữu hàng Terabyte dung lượng, nhưng nếu không được làm sạch và chuẩn hóa, chúng chỉ là một “mớ hỗn độn” tốn tài nguyên lưu trữ. Điều gì sẽ xảy ra nếu bạn có thể áp dụng các nguyên tắc kỹ thuật phần mềm tốt nhất trực tiếp vào quy trình chuyển đổi dữ liệu chỉ bằng SQL? Đây chính là lúc DBT (Data Build Tool) bước vào và thay đổi hoàn toàn cuộc chơi. Vậy DBT là gì?
Tổng quan về DBT
DBT là gì?
DBT (viết tắt của Data Build Tool) là một công cụ dòng lệnh nguồn mở, đóng vai trò then chốt trong việc chuyển đổi dữ liệu (chữ “T – Transform” trong mô hình ELT). Công cụ này không thực hiện việc trích xuất (Extract) hay tải (Load) dữ liệu, mà nó hoạt động sau khi dữ liệu thô đã được đưa vào kho dữ liệu (Data Warehouse) của bạn, như BigQuery, Snowflake hay Redshift.

Về cơ bản, DBT cho phép các nhà phân tích và kỹ sư dữ liệu áp dụng các phương pháp thực hành tốt nhất của kỹ thuật phần mềm như kiểm soát phiên bản (version control), kiểm thử (testing) tự động, tài liệu hóa (documentation) và tính mô-đun (modularity) vào quy trình làm việc với SQL.
Bằng cách sử dụng các câu lệnh SELECT đơn giản kết hợp với ngôn ngữ tạo mẫu Jinja, DBT giúp biến dữ liệu thô, lộn xộn thành các mô hình dữ liệu tin cậy, đã được làm sạch và sẵn sàng cho việc phân tích.
Các khái niệm cơ bản khi làm việc với một dự án DBT
Models (Mô hình)
- Mô tả: Đây là “linh hồn” của toàn bộ dự án. Mỗi model là một tệp tin .sql duy nhất nằm trong thư mục models/.
- Chức năng: Nội dung của tệp model chỉ đơn giản là một câu lệnh SELECT. Người dùng không cần tự viết CREATE TABLE hay VIEW; DBT sẽ tự động đảm nhận việc này dựa trên các cấu hình.
- Mục đích: Bạn sử dụng hàm {{ ref(‘ten_model_khac’) }} để tham chiếu đến các model khác. DBT sẽ tự động phân tích các tham chiếu này để xây dựng một cây phụ thuộc (DAG), đảm bảo mọi model được thực thi theo đúng thứ tự.
Sources (Nguồn)
- Mô tả: DBT không tải dữ liệu, mà chỉ biến đổi dữ liệu đã có sẵn. Sources là các tệp .yml dùng để khai báo cho DBT biết các bảng dữ liệu thô (ví dụ: raw_users, raw_payments) đang nằm ở đâu trong kho dữ liệu.
- Chức năng: Việc khai báo sources cho phép bạn tham chiếu chúng một cách an toàn bằng hàm {{ source() }} và quan trọng hơn là có thể kiểm thử (test) dữ liệu thô ngay tại đầu vào, trước khi bắt đầu biến đổi.

Tests (Kiểm thử)
- Mô tả: Đây là các quy tắc được định nghĩa để đảm bảo tính toàn vẹn và chất lượng của dữ liệu trên toàn bộ hệ thống.
- Phân loại: DBT cung cấp hai loại kiểm thử chính:
- Generic Tests (Phổ biến): Được khai báo nhanh trong tệp .yml. Ví dụ: unique (đảm bảo cột ID là duy nhất), not_null (không được trống), accepted_values (chỉ chấp nhận các giá trị nhất định).
- Singular Tests (Tùy chỉnh): Là các tệp .sql riêng biệt trong thư mục tests/. Mỗi tệp viết một câu SELECT để tìm các hàng “lỗi”. Nếu truy vấn trả về 0 hàng, kiểm thử thành công.
Seeds (Dữ liệu hạt giống)
- Mô tả: Là các tệp tin .csv được đặt trong thư mục seeds/ (hoặc data/).
- Chức năng: Dùng để tải các bảng dữ liệu nhỏ, tĩnh, ít khi thay đổi (ví dụ: danh sách mã quốc gia, ánh xạ trạng thái đơn hàng) lên kho dữ liệu. Khi người dùng chạy lệnh dbt seed, DBT sẽ đọc các tệp CSV này và tạo thành bảng.
Macros
- Mô tả: Macros là các tệp .sql trong thư mục macros/ chứa code Jinja (ngôn ngữ tạo mẫu).
- Chức năng: Giúp người dùng tuân thủ nguyên tắc DRY (Don’t Repeat Yourself – Không lặp lại). Nếu một logic nghiệp vụ phức tạp (ví dụ: chuyển đổi tiền tệ) cần dùng ở nhiều nơi, bạn chỉ cần viết logic đó một lần trong macro và gọi lại như một hàm (function).
Snapshots (Ảnh chụp nhanh)
- Mô tả: Snapshots là các tệp .sql đặc biệt, thường được đặt trong thư mục snapshots/.
- Chức năng: Chuyên dùng để theo dõi sự thay đổi của dữ liệu theo thời gian (còn gọi là Slowly Changing Dimensions – SCD Type 2). Ví dụ, để lưu lại toàn bộ lịch sử mỗi khi một khách hàng thay đổi địa chỉ, snapshot sẽ tự động xử lý việc này.
Khám phá các tính năng cốt lõi làm nên sức mạnh của DBT
Biến SQL tĩnh thành “code động” với Jinja
SQL truyền thống rất mạnh nhưng cứng nhắc. Bạn thường phải copy-paste code để xử lý logic tương tự cho các năm hoặc khu vực khác nhau.
DBT giải quyết vấn đề này bằng cách nhúng Jinja (ngôn ngữ tạo mẫu) vào SQL. Công cụ cho phép sử dụng các cấu trúc lập trình như vòng lặp (for loops), câu lệnh điều kiện (if/else) và biến môi trường ngay trong SQL. Bạn có thể viết một đoạn logic duy nhất (DRY – Don’t Repeat Yourself) và áp dụng nó cho hàng trăm bảng dữ liệu khác nhau một cách tự động.
Chiến lược tăng trưởng
Xử lý lại toàn bộ dữ liệu lịch sử mỗi ngày là một sự lãng phí tài nguyên và tiền bạc khủng khiếp trên Cloud Data Warehouse (BigQuery/Snowflake). DBT cung cấp tính năng incremental models. Tính năng này thông minh đến mức chỉ xử lý và nạp những dữ liệu mới phát sinh hoặc mới thay đổi kể từ lần chạy gần nhất.
Nhờ đó, thời gian chạy pipeline sẽ được giảm đáng kể (từ hàng giờ xuống vài phút) và tiết kiệm chi phí tính toán (compute cost) cho doanh nghiệp.

Tự động dựng biểu đồ phụ thuộc (Automated Dependency Graph)
Trong các hệ thống cũ, việc xác định thứ tự chạy các bảng (bảng A phải có trước bảng B) thường phải cấu hình thủ công rất dễ sai sót. Thông qua hàm ref(), DBT tự động vẽ ra một bản đồ toàn diện (DAG – Directed Acyclic Graph) kết nối tất cả các model.
DBT biết chính xác thứ tự cần thực thi. Bạn có thể chạy song song (multithreading) các luồng không liên quan đến nhau để tối đa hóa tốc độ, và nếu một model bị lỗi, DBT sẽ tự động bỏ qua các model con phụ thuộc vào nó để tránh sai số dây chuyền.
Hệ sinh thái packages (Thư viện mã nguồn mở)
Cộng đồng DBT cực kỳ lớn và họ đóng gói các giải pháp phổ biến thành các packages. Điều này giúp bạn:
- Cài đặt các gói như dbt-utils, dbt-expectations hay các gói dành riêng cho Google Ads, Facebook Ads, Stripe… chỉ với một dòng khai báo.
- Có ngay các hàm SQL phức tạp (như tính toán ngày làm việc, pivot bảng, kiểm tra định dạng email) mà không cần viết một dòng code nào.

Tài liệu sống (Living Documentation)
Tài liệu dữ liệu (Data Dictionary) thường bị “chết” ngay sau khi viết vì không ai cập nhật nó.
DBT đảo ngược quy trình này. Tài liệu được sinh ra từ code. Khi code thay đổi, tài liệu thay đổi theo. Trang web nội bộ cho phép người dùng tra cứu (searchable), xem nguồn gốc dữ liệu (lineage) và ý nghĩa từng cột. Điều này đảm bảo Data Analyst và Business User luôn nhìn thấy cùng một “sự thật”, giảm thiểu việc hỏi đi hỏi lại về ý nghĩa của dữ liệu.
Môi trường phân tách (Environment Separation)
DBT quản lý các profiles để tách biệt hoàn toàn môi trường Development (phát triển) và Production (sản xuất). Khi bạn chạy thử trên máy cá nhân, DBT sẽ tạo bảng trong schema riêng của bạn (ví dụ: dbt_tung_dev). Chỉ khi code được merge và deploy, nó mới chạy vào schema chính (analytics_prod).
Các phiên bản của DBT: Core vs. Cloud
DBT được phân phối dưới hai hình thức chính, phục vụ cho các nhu cầu khác nhau:
DBT Core (Mã nguồn mở – Miễn phí)
Đây là phiên bản dòng lệnh (CLI) mà bạn cài đặt trên máy tính cá nhân hoặc máy chủ riêng.
- Chi phí: Hoàn toàn miễn phí mãi mãi.
- Phù hợp với: Cá nhân, đội nhóm nhỏ có kỹ năng kỹ thuật tốt (biết tự dựng server, tự cấu hình Airflow để lên lịch chạy), hoặc các dự án muốn tiết kiệm chi phí tối đa.
- Đặc điểm: Bạn phải tự lo liệu mọi thứ về hạ tầng, bảo mật và giao diện người dùng.

DBT Cloud (Dịch vụ SaaS – Trả phí)
Đây là nền tảng web được quản lý bởi dbt Labs. Bạn chỉ cần đăng nhập và sử dụng.
- Chi phí: Có gói miễn phí (cho 1 developer) và gói trả phí theo người dùng (Team/Enterprise).
- Phù hợp với: Doanh nghiệp, các team lớn cần cộng tác, cần tính ổn định và không muốn tốn nhân sự để bảo trì hạ tầng.
- Đặc điểm:
- IDE trên trình duyệt: Viết code, chạy thử và xem kết quả ngay trên web.
- Job Scheduler: Lên lịch chạy tự động dễ dàng (không cần Airflow).
- CI/CD tích hợp: Tự động chạy test khi có code mới được đẩy lên.
- DBT Semantic Layer: Tính năng cao cấp giúp đồng bộ hóa các chỉ số (metrics) ra các công cụ BI.
Tại sao DBT lại trở thành “ngôi sao” trong ngành dữ liệu?
DBT không chỉ đơn thuần là một công cụ; nó là một triết lý. Sự trỗi dậy của nó đến từ việc giải quyết một cách thanh lịch một trong những vấn đề lộn xộn và bị xem nhẹ nhất trong ngành dữ liệu: sự hỗn loạn của logic nghiệp vụ.
Mang tư duy Kỹ thuật Phần mềm (Software Engineering) vào SQL
Trước DBT, các pipeline chuyển đổi dữ liệu thường tồn tại dưới dạng một “mớ hỗn độn” gồm các file .sql rời rạc, được cron job chạy theo lịch cố định – không ai dám chỉnh sửa vì sợ phá vỡ toàn bộ hệ thống.
DBT đã thay đổi tất cả khi mang các nguyên tắc của kỹ thuật phần mềm vào thế giới SQL:
- Version Control (Kiểm soát phiên bản): Mọi logic chuyển đổi đều là code (SQL) và được lưu trữ trên Git. Mọi thay đổi đều phải qua pull request, được review và ghi lại lịch sử.
- Testing (Kiểm thử): Lần đầu tiên, các nhà phân tích có thể viết các bài kiểm tra (test) một cách có hệ thống cho dữ liệu của họ—ví dụ: đảm bảo một cột ID không bao giờ null, hoặc tổng doanh thu phải luôn dương.
- CI/CD (Tích hợp/Triển khai liên tục): Bạn có thể tự động chạy thử nghiệm trên một môi trường staging trước khi triển khai logic mới lên production.
- Modularity (Tính mô-đun): Viết code một lần và tái sử dụng nó ở nhiều nơi bằng các macro, thay vì copy-paste các đoạn SQL phức tạp.

Trao quyền cho Data Analyst và tạo ra vai trò “Analytics Engineer”
Trước đây, có một “bức tường” lớn giữa Data Engineer (viết Python/Scala, xây dựng pipeline) và Data Analyst (viết SQL, tạo báo cáo). Khi Analyst cần một cột dữ liệu mới đã được làm sạch, họ phải tạo “ticket” và chờ Engineer xử lý.
DBT đã phá vỡ bức tường đó. Công cụ cho phép Data Analyst – những người hiểu rõ nhất về logic nghiệp vụ – tự mình xây dựng các pipeline dữ liệu vững chắc, đáng tin cậy chỉ bằng ngôn ngữ mà họ thành thạo nhất: SQL.
Điều này đã khai sinh ra một vai trò lai (hybrid) vô cùng giá trị: Analytics Engineer. Họ là những người ngồi giữa, có kỹ năng SQL của Analyst nhưng lại làm việc với tư duy và bộ công cụ của một Engineer.
Giải quyết “nút thắt cổ chai” của việc chuyển đổi
Trong mô hình ELT hiện đại, việc tải dữ liệu thô vào kho dữ liệu gần như không còn là vấn đề. Tuy nhiên, chuyển đổi dữ liệu thành các bảng “sẵn sàng cho phân tích” mới là điểm nghẽn lớn nhất. DBT tập trung 100% vào việc tháo gỡ nút thắt này bằng một quy trình chuyển đổi có quản lý, có kiểm thử, có phiên bản và có tự động hóa. Nhờ đó, dữ liệu đi từ “thô” sang “chuẩn” nhanh hơn, sạch hơn và ổn định hơn – mở đường cho phân tích và ra quyết định hiệu quả.
Một vài hạn chế của DBT mà bạn cần biết
- Phụ thuộc hoàn toàn vào SQL: DBT được xây dựng xoay quanh SQL. Nếu nhóm dữ liệu của bạn thiên về sử dụng Python, R hoặc Java để xử lý dữ liệu, DBT có thể không phải là lựa chọn tối ưu (dù hiện tại DBT đã bắt đầu hỗ trợ Python models, nhưng SQL vẫn là cốt lõi).
- “Đẩy” chi phí sang Kho dữ liệu (Compute Cost): Vì DBT thực hiện biến đổi ngay trong kho dữ liệu (in-warehouse transformation), nên mọi tính toán nặng nhọc đều do kho dữ liệu (BigQuery, Snowflake…) xử lý. Nếu bạn viết code SQL không tối ưu, chi phí điện toán đám mây có thể tăng vọt.
- Không phải công cụ thời gian thực (Not Real-time): DBT được thiết kế chủ yếu cho xử lý theo lô (batch processing). Mặc dù tần suất chạy có thể rất nhanh (ví dụ: 5 phút/lần), nhưng đây không phải là công cụ Streaming (xử lý luồng) như Apache Kafka hay Flink. Có độ trễ nhất định từ lúc dữ liệu thô về đến lúc dữ liệu sạch được tạo ra.
- Rào cản gia nhập với Data Analyst truyền thống: Mặc dù chỉ dùng SQL, nhưng để dùng DBT hiệu quả, Data Analyst phải học thêm các kỹ năng của Developer như: Git (dòng lệnh), Pull Request, CI/CD và ngôn ngữ Jinja. Đây có thể là một “cú sốc văn hóa” với những người quen dùng giao diện kéo thả.
So sánh nhanh DBT với các công cụ khác
DBT vs. Airflow (hoặc Prefect, Dagster)
- Airflow/Prefect (Điều phối): Các công cụ này không quan tâm nội dung của tác vụ là gì (chạy script Python, gọi API hay chạy DBT). Chúng chỉ quan tâm đến việc lên lịch (schedule), thực thi và đảm bảo các tác vụ chạy đúng thứ tự, báo lỗi khi thất bại.
- DBT (Chuyển đổi): Tập trung 100% vào chữ “T” (Transform). DBT trả lời câu hỏi: “Biến đổi dữ liệu A thành dữ liệu B như thế nào?”
➡️Cách dùng phổ biến nhất là dùng Airflow để lên lịch và thực thi các lệnh dbt run và dbt test.
DBT vs. Fivetran/Airbyte/Stitch
- Fivetran/Airbyte (EL – Tải dữ liệu): Đây là các công cụ Extract (E) và Load (L). Nhiệm vụ duy nhất của chúng là hút dữ liệu thô từ hàng trăm nguồn (Salesforce, Google Ads, Facebook Ads,…) và tải vào kho dữ liệu (BigQuery, Snowflake).
- DBT (T – Biến đổi): Bắt đầu công việc sau khi Fivetran/Airbyte đã làm xong. DBT lấy dữ liệu thô đó và biến đổi chúng thành các mô hình sạch, sẵn sàng cho phân tích.
➡️Đối tác hoàn hảo. Fivetran/Airbyte lo “E” và “L”, DBT lo “T”. Đây chính là “Ngăn xếp dữ liệu hiện đại” (Modern Data Stack) tiêu chuẩn.

DBT vs. Informatica/Talend
- Informatica/Talend (ETL truyền thống): Đây là các nền tảng ETL “nặng ký”, thường có giao diện đồ họa kéo-thả (drag-and-drop). Chúng thực hiện việc biến đổi dữ liệu (T) trên một máy chủ riêng trước khi tải (L) vào kho dữ liệu.
- DBT (ELT hiện đại): Hoạt động theo mô hình ELT. DBT không tự mình xử lý dữ liệu; thay vào đó, công cụ sẽ “ra lệnh” cho kho dữ liệu tự biến đổi, tận dụng sức mạnh tính toán vô hạn của kho dữ liệu đám mây.
➡️Đối thủ về triết lý. DBT đại diện cho cách tiếp cận ELT linh hoạt, tập trung vào SQL, trong khi các công cụ kia đại diện cho ETL truyền thống.
DBT vs. Spark/Pandas (Script tùy chỉnh)
- Spark/Pandas (Code): Cực kỳ mạnh mẽ và linh hoạt, cho phép bạn thực hiện các phép biến đổi phức tạp bằng Python/Scala/Java. Tuy nhiên, chúng đòi hỏi kỹ năng lập trình cao, khó bảo trì, và phải tự xây dựng cơ chế kiểm thử (testing) và tài liệu hóa (documentation).
- DBT (SQL + Framework): Dân chủ hóa việc chuyển đổi bằng cách sửS dụng SQL. Bất kỳ ai biết SQL đều có thể xây dựng pipeline. Sức mạnh lớn nhất là DBT cung cấp sẵn một bộ khung (framework) hoàn chỉnh cho việc kiểm thử, tài liệu hóa, và quản lý phụ thuộc mà bạn không cần tự xây dựng.
➡️Giải quyết các vấn đề khác nhau. Dùng Spark/Pandas cho các tác vụ khoa học dữ liệu, ML, hoặc xử lý dữ liệu phi cấu trúc cực lớn. Dùng DBT cho 90% các nhu cầu còn lại về phân tích nghiệp vụ và xây dựng mô hình dữ liệu có cấu trúc.
Khi nào doanh nghiệp nên sử dụng DBT?
- Bạn đang sử dụng kho dữ liệu đám mây hiện đại: Nếu bạn đã dùng Snowflake, BigQuery, Redshift hay Databricks, DBT là mảnh ghép hoàn hảo. (Nếu bạn vẫn dùng MySQL hay SQL Server cũ cho phân tích, DBT có thể chưa phát huy hết sức mạnh).
- Logic nghiệp vụ bị phân tán: Một phần logic nằm trong code Python của Data Engineer, một phần nằm trong View của Database, một phần lại nằm trong công thức tính toán của Tableau/PowerBI. Bạn không biết đâu là “sự thật”. DBT giúp gom tất cả về một chỗ.
- Nhóm dữ liệu đang mở rộng: Khi bạn có từ 2-3 Data Analyst trở lên, việc giẫm chân lên nhau khi sửa code SQL là không tránh khỏi. DBT với Git giúp giải quyết xung đột và làm việc nhóm hiệu quả.
- Dữ liệu hay bị lỗi: Sếp thường xuyên phàn nàn về báo cáo sai số liệu? Tính năng Testing của DBT sẽ là “tấm khiên” bảo vệ uy tín của team dữ liệu.
- Mất quá nhiều thời gian bảo trì: Bạn sợ sửa một bảng vì không biết nó ảnh hưởng đến những báo cáo nào? DBT Lineage sẽ cho bạn sự tự tin để thay đổi.

DBT tích hợp với những nền tảng nào?
Tích hợp với các kho dữ liệu (Data Warehouse / Data Lakehouse)
DBT hỗ trợ trực tiếp các nền tảng dữ liệu phổ biến nhất hiện nay, bao gồm:
- Snowflake
- BigQuery (Google Cloud)
- Amazon Redshift
- Databricks / Lakehouse
- PostgreSQL
- Amazon Athena
- Azure Synapse
- Apache Spark
- DuckDB
- StarRocks
- ClickHouse
- Trino / Presto
- Exasol
(DBT hỗ trợ thông qua adapters official hoặc community-supported adapters.)
Tích hợp với công cụ orchestration / workflow
DBT được sử dụng rộng rãi trong các hệ thống điều phối dữ liệu hiện đại:
- Airflow
- Dagster
- Prefect
- AWS Step Functions
- GitHub Actions
- GitLab CI/CD
- Azure DevOps Pipeline
- CircleCI
Các công cụ này dùng để chạy DBT theo lịch, tự động triển khai và quản lý pipeline.

Tích hợp với công cụ BI và phân tích
DBT giúp chuẩn hóa dữ liệu đầu vào cho các công cụ BI:
- Looker (tích hợp metadata mạnh mẽ)
- Tableau
- Power BI
- Mode Analytics
- Hex
- Sigma Computing
Nhiều công cụ BI có thể đọc trực tiếp catalog và schema do DBT tạo ra.
Tích hợp với hệ thống kiểm thử & quan sát dữ liệu (Data Quality / Observability)
- Great Expectations
- Monte Carlo
- Soda Data
- Datafold
Lightdash (BI thuần cho DBT) - Elementary Data (observability chuyên cho DBT)
Tích hợp với hệ thống quản lý mã nguồn & DevOps
- GitHub
- GitLab
- Bitbucket
- Terraform (quản lý hạ tầng DBT Cloud)
DBT Cloud tích hợp nâng cao
Nếu dùng DBT Cloud, bạn có thêm các tích hợp đặc biệt:
- Lịch chạy (Scheduler) tích hợp sẵn
- GitHub / GitLab OAuth
- Data lineage trực quan
API real-time - Webhooks
- Kết nối tới BigQuery, Snowflake, Redshift, Databricks chỉ bằng 1 giao diện
Kết luận
DBT đang dần trở thành tiêu chuẩn vàng cho việc chuyển đổi dữ liệu theo mô hình ELT tại các doanh nghiệp hiện đại. Với khả năng đơn giản hóa pipeline, giảm sai sót, tăng tính tái sử dụng và hỗ trợ mạnh mẽ cho Data Team, DBT là lựa chọn bạn không nên bỏ qua khi xây dựng hệ thống dữ liệu bền vững.
Những câu hỏi thường gặp
DBT hỗ trợ những cơ sở dữ liệu (Database) nào?
DBT hoạt động tốt nhất trên các Kho dữ liệu đám mây (Cloud Data Warehouses) như: Snowflake, Google BigQuery, Amazon Redshift, Databricks và PostgreSQL. Ngoài ra, cộng đồng cũng phát triển các adapter cho MySQL, SQL Server, Oracle, Spark, …, nhưng hiệu năng và tính năng có thể không tối ưu bằng các nền tảng đám mây native.
DBT lưu trữ dữ liệu của tôi ở đâu?
DBT không lưu trữ dữ liệu. Đây là một ưu điểm lớn về bảo mật. DBT chỉ đọc dữ liệu từ kho dữ liệu của bạn, xử lý và ghi lại kết quả vào chính kho dữ liệu đó. Dữ liệu không bao giờ rời khỏi môi trường đám mây của bạn (ví dụ: dữ liệu nằm yên trong BigQuery hoặc Snowflake), giúp đảm bảo tuân thủ các quy định bảo mật khắt khe.
Tôi có cần biết Python để sử dụng DBT không?
Không bắt buộc. Ngôn ngữ chính của DBT là SQL. Nếu bạn rành SQL, bạn đã nắm được 90% công cụ này. 10% còn lại là Jinja (ngôn ngữ tạo mẫu), rất dễ học và có cú pháp tương tự Python cơ bản. Tuy nhiên, từ phiên bản 1.3, DBT đã bắt đầu hỗ trợ các model viết bằng Python cho các tác vụ phức tạp (như Data Science), nhưng đây là tùy chọn nâng cao, không phải bắt buộc.
DBT có miễn phí không?
Có và không.
- DBT Cloud: Là giải pháp thương mại (SaaS) trả phí, cung cấp giao diện web, trình lên lịch (scheduler), CI/CD tích hợp và hỗ trợ kỹ thuật.
- DBT Core: Là phiên bản mã nguồn mở và hoàn toàn miễn phí. Bạn có thể tải về, cài đặt và chạy trên máy tính cá nhân hoặc server riêng mà không tốn phí bản quyền.
Tôi có thể dùng DBT cho dữ liệu Real-time (thời gian thực) không?
DBT được thiết kế cho xử lý theo lô (Batch processing). Mặc dù bạn có thể chạy DBT rất thường xuyên (ví dụ 5-10 phút/lần – gọi là micro-batch), nhưng đây không phải là công cụ Streaming thực thụ như Kafka hay Spark Streaming. Tuy nhiên, xu hướng “Streaming SQL” (như Materialize) đang tích hợp với DBT để thu hẹp khoảng cách này.
