Tổng quan về Dataform(cloud-based DBT) và ứng dụng

2 min read

1. Giới thiệu về Dataform

Dataform là 1 Google Cloud service dùng để xử lý data, phát triển, kiểm thử (test), hỗ trợ version control và quản lý lập lịch toàn bộ workflow. Dữ liệu downstream là nằm ở Bigquery.

Dataform giúp bạn quản lý quá trình chuyển đổi dữ liệu trong mô hình ELT (Extract, Load, Transform). Sau khi dữ liệu thô được trích xuất từ các hệ thống nguồn và nạp vào BigQuery, Dataform hỗ trợ bạn thực hiện các bước biến đổi dữ liệu dạng thô thành dữ liệu có ý nghĩa để có thể hỗ trợ decision-making.

Ngôn ngữ chính sử dụng: SQL, Javascript.

2. Quy trình tạo và thực thi SQL worklow trong Dataform

Tạo Dataform repository và workspace

  1. Vào Google Cloud console, vào Dataform.
  2. Đặt tên repository tuỳ chọn: quickstart-repository, đặt region tương ứng.
  3. Chọn Create development workspace.
  4. Trong Create development workspace cửa sổ, thực hiện:
  5. Trong Workspace ID field, nhập vào tên workspace tuỳ chọn quickstart-workspace. Chọn Create.
  6. Chọn Initialize workspace.

Cấu trúc thư mục Dataform

Dataform bao gồm nhiều models (file sqlx) để tạo table, view như DBT

File workflow_setting.yaml chứa các configuration cho cấu trúc dự án

Ta có thể định nghĩa các biến global vars để dùng trong các file model sqlx.

Quality assurance với dataform

Ta có thể tạo 1 số assertion và testing theo condition để đảm bảo dữ liệu là chính xác.

Custom code với javascript

Ta có thể tạo 1 file trong thư mục includes/functions.js để định nghĩa các hàm có thể tái sử dụng lại trong dự án

Run các models trong Dataform

Ta có thực thi việc tạo các view/tables trong dataform thông qua Start Execution. Ta có thể chọn lựa các tag hoặc file model nào cần để chạy.

3. Quản lý Git version control cho các môi trường khác nhau trong Dataform

Ta có thể connect Dataform với GitHub repository và chia nhiều branch khác nhau tương ứng với mỗi môi trường riêng biệt. Mỗi môi trường sẽ xử lý dữ liệu và đẩy vào BigQuery

VD: Ta có thể có 3 dataset khác nhau trong BigQuery cho mỗi môi trường khác nhau (dev, QA, production)

4. Lập lịch workflow và quản lý release pipeline

Dataform gồm 2 dạng configuration:

  • Release configuration dùng để cấu hình các configs cho release pipeline ( 🟢 production và 🟠 dev environment), release pipeline sẽ sync code trong Git repository vào workspace hiện tại, nó sẽ compile source code cho manually executing hoặc scheduled executing trong workflow pipeline
  • The workflow configuration dùng để lập execution pipeline trong prod hoặc dev environment.

5. Cách sử dụng vscode để làm IDE thay vì workspace trên GCP

Lý do dùng vscode thay vì workspace(GCP) : do workspace trên GCP là dạng near realtime update theo thời gian thực, update khoảng 2s 1 lần. Nên sẽ có những delay nhất định, việc chúng ta code trên đó sẽ rất lag.

Nên chúng ta có thể kéo code về để compile trong Vscode sẽ mang lại user experience mượt mà và thoải mái hơn, ta có thể chạy execution Dataform trong Vscode bằng GCP API.

Để làm được điều đó ta cần cài extension Dataform tools

Requirements

  1. Dataform cli# requires nodejs
    npm i -g @dataform/cli
    Chạy thử dataform compile từ thư mục root để đảm bảo bạn có thể sử dụng Dataform cli
  2. Install gcloud cli và run gcloud init gcloud auth application-default login gcloud config set project <project_id> #replace with your gcp project id
  3. Ta cũng cần cài extension Error Lens
  4. Chạy lệnh dataform init-creds để khởi tạo credentials giúp thực thi chạy models dưới Vscode

Link tham khảo

Avatar photo

Monolith vs Microservices: Đâu là lựa chọn tốt?

Trong phát triển phần mềm, cách bạn cấu trúc ứng dụng của mình có thể có tác động lớn đến cách thức hoạt động...
Avatar photo Dat Nguyen Tuan
3 min read

Leave a Reply

Your email address will not be published. Required fields are marked *