Trong công việc của một Data Analyst, các bước như trích xuất (extract), tải (load), chuyển đổi (transform) và phân tích dữ liệu đóng vai trò quan trọng. Hiện nay, có nhiều công cụ hỗ trợ việc trích xuất và tải dữ liệu, nhưng giai đoạn chuyển đổi dữ liệu (Transformation) đòi hỏi chuyên môn cao từ các Data Engineer. Bởi vì nó liên quan đến việc xử lý dữ liệu từ nhiều nguồn khác nhau, tối ưu hóa hiệu suất và áp dụng vào các mô hình phân tích, yêu cầu phải nắm rõ cách hoạt động của cơ sở dữ liệu.
Tuy nhiên may mắn thay với sự xuất hiện của các công cụ ETL hiện đại, đặc biệt là DBT (Data Build Tool), việc chuyển đổi dữ liệu đã dễ dàng hơn bao giờ hết. Một công cụ mã nguồn mở giúp các Data Analysts dễ dàng tiếp cận quá trình chuyển đổi dữ liệu hơn. Nhưng chính xác thì dbt hoạt động như thế nào và bạn có thể làm gì với nó? Trong bài viết này, mình sẽ giải thích dbt là gì và cụ thể nó có thể cải thiện như thế nào trong công việc của bạn.
DBT là gì?
DBT (data build tool) là một công cụ chuyển đổi dữ liệu mạnh mẽ được phát triển bởi dbt Labs, trước đây là Fishtown Analytics. Công cụ chuyển đổi dữ liệu DBT, dựa trên SQL, cho phép các chuyên gia dữ liệu xây dựng các mô hình dữ liệu lặp đi lặp lại và tự động chuyển đổi dữ liệu.
DBT biên dịch và chạy mã phân tích dựa trên data platform. Bằng cách sử dụng các câu lệnh SQL SELECT để tạo quan hệ phụ thuộc giữa các mô hình, sau đó cụ thể hóa chúng dưới dạng bảng hoặc view trong kho dữ liệu. Từ đó, DBT đơn giản hóa việc biến dữ liệu thô thành các thông tin hữu ích phục vụ bài toán phân tích của bạn.
Nền tảng DBT gồm 2 sản phẩm. Nhưng khi nhắc đến dbt hầu hết mọi người đang nói về dbt core. Một công cụ mã nguồn mở cho phép người thực hiện dữ liệu chuyển đổi dữ liệu và phù hợp với những người dùng thích thiết lập dbt theo cách thủ công trên máy cục bộ (local).
Sản phẩm còn lại, dbt Cloud, cung cấp cách nhanh nhất, bảo mật nhất và dễ mở rộng khi triển khai DBT. Cho phép quá trình dữ liệu tối ưu hóa việc chuyển đổi dữ liệu bằng cách phát triển, thử nghiệm, lập kế hoạch được quản lý hoàn toàn thông qua giao diện người dùng (UI) dựa trên web. Một số tính năng của dbt Cloud là miễn phí, trong khi các tính năng khác dành cho mục đích cộng tác hoặc sử dụng trong doanh nghiệp sẽ phải trả phí khi sử dụng chúng.
DBT hỗ trợ nhiều cơ sở dữ liệu như Snowflake, BigQuery và Redshift. Vì nó sử dụng các câu lệnh SQL SELECT đơn giản nên các nhà phân tích dữ liệu có thể tiếp cận quá trình chuyển đổi dữ liệu và hiểu được tính logic giữa các mô hình một cách dễ dàng hơn mà không cần phải là chuyên gia về cơ sở dữ liệu.
Vai trò của dbt trong ETL
Hãy tưởng tượng rằng bạn đang điều hành một trang web thương mại điện tử trông giống như Amazon, Shopify hoặc bất kỳ cửa hàng trực tuyến nào khác. Và đột nhiên một ngày bạn nhận được phàn nàn của khách hàng về số liệu doanh số bị sai lệch hay đơn đặt hàng bị giao trễ.
Đây là một vấn đề nghiêm trọng cần phải xử lý ngay. Và để biết được điều gì đang xảy ra bạn cần phải tìm hiểu nguyên nhân sâu xa gây ra cho vấn đề đang gặp phải. Vì vậy, bạn muốn tạo một số liệu đơn giản như thông tin các đơn hàng đã thanh toán hay có bao nhiêu đơn hàng không được giao trong thời gian dự kiến và lý do cho sự chậm trễ là gì?
Vì vậy, về cơ bản chúng ta cần một báo cáo chi tiết về những vấn đề mình gặp phải. Đây là lúc các quy trình ETL (Extract-Transform-Load) hoặc ELT (Extract-Load-Transform) phát huy vai trò.
Và để giải quyết vấn đề này trên quy mô lớn, trước tiên chúng ta cần hiểu ETL, ELT là gì! Và mình cũng đã có bài viết giải thích cơ bản về vấn đề này, mọi người có thể tham khảo thêm bài viết So sánh giữa ETL và ELT.
Để tóm gọn lại quá trình ETL cần phải làm ở đây. Chúng ta sẽ phải trích xuất dữ liệu nằm rải rác ở khắp nơi sau đó bạn cần phải làm sạch, xác thực, xử lý dữ liệu đó và cuối cùng tải lên các kho dữ liệu để phục vụ cho việc phân tích.
Vậy dbt đang nằm ở đâu trong quá trình trên? Lưu ý rằng dbt chỉ là một công cụ chuyển đổi dữ liệu. Nó không xử lý việc trích xuất hoặc tải dữ liệu. Vậy nên sau khi bạn đọc bài viết về So sánh giữa ETL và ELT của mình đã biết được sự khác nhau giữa 2 quy trình. Và khi dữ liệu thô được tải trong kho dữ liệu, đó là lúc DBT bắt đầu.
DBT kết nối trực tiếp với kho dữ liệu của bạn và có thể tương tác với tất cả dữ liệu được đọc và ghi. Nếu bạn muốn thực hiện một số phân tích dữ liệu, chẳng hạn như xây dựng số liệu, tất cả những gì chúng ta cần làm là viết các truy vấn SELECT đơn giản vào bảng dữ liệu thô. Sau khi bạn đã viết một truy vấn SELECT và chạy nó, dbt sẽ tự động đảm nhiệm việc tìm nạp dữ liệu, áp dụng tất cả các hoạt động kiểm tra, logic khác nhau và ghi dữ liệu trở lại kho lưu trữ của bạn.
Ưu điểm nổi bật của DBT
Với thông tin mình đã trình bày ở trên chắc hẳn bạn cũng đã mường tượng ra lợi thế khi sử dụng kết hợp DBT trong công việc phân tích của bạn. Dưới đây là một số ưu điểm nổi bật:
- Đơn giản hóa quy trình làm việc: Bạn chỉ cần tập trung vào việc viết các truy vấn SELECT mà không cần lo lắng về việc triển khai hoặc cấu hình phức tạp.
- Tích hợp liền mạch: DBT cho phép xuất bản và cập nhật dữ liệu mới trực tiếp trong quy trình phân tích, giúp bạn dễ dàng mở rộng hoặc thay đổi logic khi cần.
- Tăng tốc quá trình phân tích: Các nhà phân tích có thể làm việc như kỹ sư dữ liệu thông qua việc tương tác trực tiếp với đường dẫn dữ liệu, từ đó rút ngắn thời gian xử lý và phân tích dữ liệu.
Vì vậy, với dbt, các Data Engineer và Data Analyst có thể được kết hợp thành một vai trò gọi là Analyst Engineer.
Data Analyst + Data Engineer = Analyst Engineer
Các Analyst Engineer có thể làm việc như kỹ sư phần mềm, nơi họ có thể tương tác trực tiếp và sửa đổi đường dẫn dữ liệu để phân tích dữ liệu nhanh hơn. Với sự hỗ trợ mạnh mẽ từ cộng đồng và khả năng tích hợp với các kho dữ liệu đám mây hiện đại, DBT là lựa chọn hàng đầu cho các doanh nghiệp muốn tối ưu hóa quy trình chuyển đổi dữ liệu.
Tổng kết
DBT hiện nay đã trở nên phổ biến rộng rãi. Nó cho phép các data Analyst nắm quyền kiểm soát giai đoạn "Transform" trong ETL, chuyển đổi dữ liệu thô thành các thông tin giá trị cho bài toán phân tích của mình. Ngoài ra, nó còn hỗ trợ kho dữ liệu đám mây hiện đại như BigQuery, Redshift và Snowflake và cộng đồng rộng lớn khiến cho chúng ta linh hoạt hơn trong việc xử lý và phân tích dữ liệu.
Nếu bạn muốn tìm hiểu thêm, bạn có thể tham khảo dbt document tài liệu chính thức trên trang chủ DBT. Và ở bài viết tiếp theo mình sẽ đi sâu vào công cụ DBT trong các tình huống thực tế!