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
- Vào Google Cloud console, vào Dataform.
- Đặt tên repository tuỳ chọn:
quickstart-repository
, đặt region tương ứng. - Chọn Create development workspace.
- Trong Create development workspace cửa sổ, thực hiện:
- Trong Workspace ID field, nhập vào tên workspace tuỳ chọn
quickstart-workspace
. Chọn Create. - 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
- Dataform cli
# requires nodejs
Chạy thử
npm i -g @dataform/clidataform compile
từ thư mục root để đảm bảo bạn có thể sử dụng Dataform cli - Install gcloud cli và run
gcloud init gcloud auth application-default login gcloud config set project <project_id> #replace with your gcp project id
- Ta cũng cần cài extension
Error Lens
- Chạy lệnh
dataform init-creds
để khởi tạo credentials giúp thực thi chạy models dưới Vscode