[dbt basic] [P1] dbt là gì?

0 0 0

Người đăng: Minh Tuan

Theo Viblo Asia

Lời mở đầu

Trong những năm gần đây, dbt trở nên khá phổ biến trong domain data engineering. Trong quá trình làm việc mình cũng có chút kiến thức và trải nghiệm với dbt, nên sẽ viết 1 series về dbt cơ bản, hi vọng có thể giúp được những ai đang có nhu cầu tìm hiểu thêm về công nghệ này.

dbt là gì? Tại sao lại cần dbt?

Trước khi đi vào khái niệm, hãy cùng đưa ra context trước:

Ở 1 số nơi, data engineer (DE) sẽ dựng platform, kiêm cả ETL, kiêm luôn cả data quality check, ... nhiều không tả nổi. Vào 1 ngày trời không đẹp lắm, bạn đang bận vãi nhái để fix 1 major bug cho cụm Kafka thân yêu. Trong lúc bận, data analyst (DA) và dev vẫn cứ liên tục "Bạn ơi kéo hộ mình bảng X", "Bạn ơi sao dữ liệu bảng Y lệch thế", "Business logic cho bảng Z sai rồi bạn ơi", ... Vừa bận vừa bực vì bị giục, điều bạn nên làm là

  • 👊 mấy đứa giục 1 phát cho bõ tức ❌️
  • tìm cách để mấy con vợ tự đi mà làm, đỡ phải giục ✅️

Tuy nhiên thì để DA/dev code Pyspark có vẻ không giòn lắm, nguyên nhân có thể là vì không quen code, hoặc chưa code python bao giờ (hoặc lười học cái mới). → Đưa về SQL, vì SQL là ai cũng làm được

Từ đấy, dbt ra đời. dbt được phát triển tại RJMetrics vào năm 2016 để cho đội DA có thể tự thực hiện transform data mà không phụ thuộc quá vào DE -> giải quyết vấn đề tắc nghẽn workflow, đỡ phải đợi nhau.

Dựa trên dbt document, dbt được định nghĩa như sau:

dbt is a transformation workflow that helps you get more work done while producing higher quality results

Tuy nhiên, cho dễ hiểu, thì dbt là tool dạng CLI, giúp user transform data sử dụng SQL. dbt chỉ là tool hỗ trợ, không phải query engine như Spark, Trino, ... cũng không phải database.

Tổng quan dbt

dbt đưa data transformation về các model, được lưu dưới dạng các file SQL. Thêm nữa, dbt còn tích hợp Jinja template (jinja là gì thì phiền ae google nhé 😉) cho các model, giúp user code các câu SQL linh hoạt hơn.

dbt sẽ được kết nối với query engine, mỗi model sẽ định nghĩa data transformation bằng SELECT ... . dbt sẽ compile model để lấy ra SQL tương ứng, sau đó execute đoạn SQL đó để ra được output, lưu ở trong data warehouse. Điều này nghĩa là dbt không có liên quan gì tới data của bạn cả, nó chỉ là tool hỗ trợ, query vẫn được execute sử dụng query engine/data warehouse được kết nối (trino, postgres, bigquery, ...)

image.png

Ngoài ra, dbt hỗ trợ nhiều config khác nhau trong model để hỗ trợ cho nhiều nhu cầu sử dụng khác nhau, và một số feature khác mình tạm thời chưa đề cập tại bài viết này. Các model cũng là code, thế nên sử dụng Git cho version control cho dbt cũng hoàn toàn ổn. Kết hợp dbt với Airflow để schedule data transformation job thuận tiện hơn, và ngon nhất là cho DA/dev làm, mình đỡ phải làm 🤤

Kết luận

dbt là một công nghệ phổ biến, và khá đáng thử nếu như bạn/team bạn đang gặp vấn đề như trên. dbt sẽ giúp phân chia công việc cho DA/dev, giảm workload cho đội DE. Tuy nhiên, dbt cũng chỉ là một tool, không nên lạm dụng/ép buộc trong trường hợp không thực sự cần thiết. Hãy dùng vì nó thực sự cần chứ không phải vì thấy nó hay.

Trong các bài viết tiếp theo, mình sẽ viết về setup dbt cơ bản với Postgresql, data quality testing với dbt, và một số feature khác nữa. Cảm ơn mọi người đã đọc 😁

Bình luận

Bài viết tương tự

- vừa được xem lúc

Nhập môn lý thuyết cơ sở dữ liệu - Phần 2: Mô hình thực thể liên kết

**Chào các bạn, hôm nay mình tiếp tục viết tiếp phần 2 cho series Nhập môn lý thuyết cơ sở dữ liệu. Chắc hẳn qua bài trước các bạn tìm được lý do vì sao mình phải học môn này rồi chứ.

0 0 74

- vừa được xem lúc

Các vai trò chính trong Data Ecosystem - [Data Analyst Series]

Ngày nay, các tổ chức đang sử dụng dữ liệu để khám phá các cơ hội và mang lại lợi ích trong tương lai. Điển hình là tạo các mô hình trong các giao dịch tài chính để phát hiện gian lận, sử dụng các côn

0 0 49

- vừa được xem lúc

Tìm hiểu về Apache Spark

Ngày nay có rất nhiều hệ thống đang sử dụng Hadoop để phân tích và xử lý dữ liệu lớn. Ưu điểm lớn nhất của Hadoop là được dựa trên một mô hình lập trình song song với xử lý dữ liệu lớn là MapReduce, m

0 0 54

- vừa được xem lúc

Data Warehouse là gì? Top 7 ứng dụng quan trọng của kho dữ liệu

Data Warehouse là gì? Lợi ích và ứng dụng của kho dữ liệu Data Warehouse là gì? Với sự bùng nổ về mặt thông tin và dữ liệu như hiệu này thì đây luôn là những câu hỏi được rất nhiều bạn thắc mắc, đặc b

0 0 37

- vừa được xem lúc

Phân biệt: Database, Data Warehouse, Data Mart, Data Lake, Data Lakehouse, Data Fabric, Data Mesh

Chào mọi người,. Hôm nay, tiếp tục Series Phân tích dữ liệu kinh doanh, mình sẽ chia sẻ với mọi người những khái niệm phổ biến nhất liên quan về thiết kế hệ thống dữ liệu bên dưới nhé, vì khi làm phân

0 0 47

- vừa được xem lúc

Kỹ sư dữ liệu và lộ trình trở thành data engineer (DE) với 4 bước

Data Engineer hay còn gọi là kỹ sư dữ liệu là một trong những vị trí quan trọng trong lĩnh vực khoa học dữ liệu. Với sự phát triển của kỷ nguyên số, nhu cầu chuyển đổi số của các doanh nghiệp ngày càn

0 0 38