Tạo và biên tập: nạp dữ liệu, parse, 9 loại stage
Bài thao tác chính của series: đưa dữ liệu vào bằng đường nào, đọc file thế nào cho đúng, và bộ đồ nghề transform gồm những gì.
Các con đường tạo table / dataset
Phần tiêu đề “Các con đường tạo table / dataset”| Cách | Kết quả | Ghi chú |
|---|---|---|
| Table từ file upload | Có dữ liệu ngay | ≤100 file cùng schema, chuẩn RFC 4180; file đầu định nghĩa field |
| Table từ Workday report / từ table-dataset có sẵn / thủ công | Table RỖNG | Phải tạo data change task để nạp — điểm bất ngờ số một với người mới |
| Base dataset từ SFTP | Chưa có dữ liệu đến lần integration đầu | Pattern file case-sensitive; lịch integration riêng |
| Base dataset từ file (≤500 MB) / từ custom report | Có dữ liệu | Report cần prompt Specify Value hoặc Determine at Runtime |
| Derived dataset | Pipeline bắt đầu bằng Import stage | Nơi duy nhất có Join/Union |
Quy tắc chung: API name không bao giờ đổi được sau khi lưu (table, dataset,
field) — đặt tên như đặt tên cột database. Tên field dataset case-sensitive,
không bắt đầu bằng WPA_ (prefix của 5 field hệ thống Workday tự thêm:
LoadID, LoadTimestamp, RowID…, tiện cho Group By đếm dòng theo lần nạp).
Replace vs Append — và luật schema khi append
Phần tiêu đề “Replace vs Append — và luật schema khi append”Replace thay sạch; Append cộng dồn (mỗi lần nạp toàn bộ file — không phải incremental; dùng cho snapshot lịch sử). Luật sống còn khi append dài hạn: chỉ thêm field ở CUỐI file, đừng xóa field (dùng NULL thay) — xóa rồi thêm field mới là append fail. File có header thì Workday khớp theo tên, dễ thở hơn file không header (chỉ nhận thay đổi ở cuối).
Parse — đọc CSV cho đúng
Phần tiêu đề “Parse — đọc CSV cho đúng”Đủ bộ tùy chọn: row/field delimiter, quote + escape (quote trong dữ liệu phải
nhân đôi), comment character, bỏ N dòng đầu, jagged rows (schema lệch nhẹ),
trim whitespace. Hai điểm hay vấp: giá trị chứa newline phải bật riêng
“Field values contain new lines” (chậm với file lớn); và bảng số định dạng
quốc tế (chấm nghìn, phẩy thập phân, dấu trừ ở cuối — kiểu 9.000,1222-)
phải nhập dạng Text rồi xử lý chuỗi REGEX_REPLACE + CASE trước khi convert
— pattern chuẩn cho dữ liệu kiểu châu Âu/Việt Nam.
Bộ stage — đồ nghề transform
Phần tiêu đề “Bộ stage — đồ nghề transform”| Stage | Công dụng | Lưu ý đắt giá |
|---|---|---|
| Join | Nối 2 pipeline (Inner, Left/Right Outer, Full, Left/Right Anti) | Chỉ trong Primary Pipeline; match nhiều → nhân bản dòng; NULL sinh từ outer join bị thay default khi publish |
| Union | Gộp dòng = UNION ALL, không khử trùng | Field không map → NULL; schema lệch thì chuẩn hóa bằng calculated field ở dataset nguồn (tái dùng được) |
| Group By | Aggregate (Sum/Avg/Count/Min/Max) — đưa dữ liệu về đúng level trước khi join | Avg bỏ NULL khỏi mẫu số, Count đếm cả NULL; nhóm nhiều mã tiền → NULL |
| Filter | Lọc dòng (Basic prompt / Advanced boolean) | Basic→Advanced một chiều; nhớ bẫy != loại luôn NULL |
| Unpivot | Cột → hàng | ≤150 input field/stage; nhiều nhóm trong 1 stage tốt hơn nhiều stage |
| Explode | Multi-instance → mỗi instance một dòng | Field gốc bị drop ở stage sau |
| Manage Fields | Ẩn/đổi tên/đổi type | Chốt tên field TRƯỚC khi viết expression — đổi sau là gãy |
| Validation | Chốt chất lượng: dòng lỗi → Table for Exceptions | Phải đi kèm data change task làm “máy phân loại”; publish thẳng không qua DCT thì dòng lỗi bị vứt bỏ, bảng lỗi rỗng |
| Instance Mapping | Text → Instance field (analytic dimension) | Xem bài Dimension & biểu thức |
Kèm theo: Prism calculated field (chain được, comment /* */), đổi type
đặc biệt phải qua hàm (TO_DATE, EXTRACT_AMOUNT, BUILD_CURRENCY…), và
example data để xem trước — nhớ giới hạn: example chạy trên subset, dataset
có Join + calculated field sau Join có thể ra khác published data; số thật
là số sau publish. Debug lệch giữa hai lần publish bằng Pipeline Snapshot
Comparison (so 2 activity cạnh nhau).
Boolean expression — vài luật ngày tháng
Phần tiêu đề “Boolean expression — vài luật ngày tháng”Date trong filter viết trần không nháy kép, format yyyy-MM-dd; phần
thiếu tự điền 0 → BETWEEN 2019-06-01 AND 2019-07-31 KHÔNG gồm ngày 31/7
(= 00:00:00 ngày 31) — muốn trọn tháng dùng AND 2019-08-01. Đây là lỗi lệch
số cuối tháng kinh điển.
Chắt lọc từ Workday Prism Analytics User Guide (mục Creating Tables and Datasets, Editing Tables, Editing Datasets) — doc.workday.com.