Table vs Dataset: hai khối nền của Prism
Mọi thứ trong Prism xoay quanh hai loại object — hiểu sai chỗ này là thiết kế sai từ gốc: table là nơi lưu dữ liệu; dataset là logic xử lý dữ liệu.
Bảng so sánh quyết định
Phần tiêu đề “Bảng so sánh quyết định”| Table | Base Dataset | |
|---|---|---|
| Bản chất | Lưu trữ (materialize) trên columnar store — như bảng warehouse | Mô tả cách đọc nguồn (file/report) |
| Schema | Schema-on-write: khai trước, load sai type → loại cả dòng vào error file | Schema-on-read: đọc không khớp → field đó thành NULL, dòng vẫn giữ |
| Nguồn | Nhận mọi loại nguồn, bất kỳ lúc nào qua data change task | Chỉ đúng loại nguồn lúc tạo (SFTP mãi là SFTP) |
| Xóa dữ liệu | Truncate hoặc xóa chọn lọc theo key | Chỉ truncate toàn bộ |
| Đếm dòng | Biết chính xác | Không biết |
| Ra Prism data source | Enable for Analysis | Publish |
Khuyến nghị chính thức của Workday: dùng TABLE để nạp dữ liệu — tenant mới thậm chí không có quyền tạo base dataset. Derived dataset (loại thứ ba) mới là nơi transform: import từ ≥1 table/dataset, xếp stages thành pipeline.
Pipeline — dòng chảy transform
Phần tiêu đề “Pipeline — dòng chảy transform”Dataset có một Primary Pipeline + các pipeline phụ (cho Join/Union). Mỗi stage nhận output của stage trước; output của stage cuối Primary Pipeline = output của cả dataset — chính là thứ được materialize khi publish.
flowchart LR
subgraph PP["Primary Pipeline"]
I["Import"] --> MF1["Manage Fields<br/>(giám sát schema nguồn)"] --> J["Join"] --> CF["Calculated<br/>fields"] --> MF2["Manage Fields<br/>(chốt schema publish)"]
end
subgraph SP["Pipeline phụ"]
I2["Import nguồn 2"] --> G["Group By<br/>(đưa về đúng level)"]
end
G --> J
MF2 --> P(["Publish →<br/>Prism Data Source"])
style P fill:#e7f5ea,stroke:#2e7d32
Best practice từ chính tài liệu: đặt Manage Fields ở đầu Primary Pipeline (phát hiện nguồn đổi schema) và ở cuối pipeline sẽ publish (phát hiện thay đổi phá report downstream) — tối đa 2 stage này mỗi pipeline. Và gotcha nguy hiểm: đổi schema mà không mở dataset bấm Save lại → lần publish sau ra dữ liệu không nhất quán.
Field types — các quy tắc chuyển đổi phải thuộc
Phần tiêu đề “Field types — các quy tắc chuyển đổi phải thuộc”10 loại: Boolean, Currency (≤20 số trước + 6 sau dấu thập phân, kèm mã tiền), Date (lưu nội bộ UTC), Double, Integer, Long, Numeric (tổng 38 chữ số), Text (≤2,1 tỷ ký tự), Instance, Multi-Instance. Ba luật hay vấp:
- Ưu tiên Numeric thay Double — Double dễ mất precision.
- Khi thành Prism data source: Date bị BỎ phần giờ; Numeric quá 20/6 chữ số bị làm tròn xuống; Rich Text/Time/DateTimeZone của report không được hỗ trợ (field bị loại).
- Table chỉ đổi được field type khi rỗng 0 dòng; xóa field là mất dữ liệu field đó vĩnh viễn.
NULL — nguồn bug thầm lặng số một
Phần tiêu đề “NULL — nguồn bug thầm lặng số một”- Prism data source không có khái niệm NULL: khi publish, NULL bị thay bằng mặc định — số → 0, Boolean → False, Text/Instance → Blank. Số 0 “giả” này đi thẳng vào báo cáo.
- Trong biểu thức, NULL lây lan kiểu SQL:
5 + NULL = NULL; Currency khác mã tiền cộng nhau = NULL; Group By trên nhóm nhiều mã tiền = NULL. - Bẫy filter kinh điển:
[field] != "X"loại bỏ cả dòng có X lẫn dòng NULL — muốn giữ NULL phải thêmOR [field] IS NULL. - Table phân biệt NULL vs chuỗi rỗng trong file CSV (
,,vs,"",); base dataset thì không.
Quản trị: Data Catalog, Console, Lineage, Audit
Phần tiêu đề “Quản trị: Data Catalog, Console, Lineage, Audit”- Data Catalog — cửa ngõ: tạo mọi object, xem dependencies, tag (tag ai cũng thấy; filter “Last 7 days” tự áp lại mỗi phiên).
- Prism Management Console — sức khỏe hệ thống: job đang chạy/chờ (wait = vượt số job đồng thời của tenant), top chậm nhất, lịch sử 180 ngày.
- Lineage (table/dataset/field-level) — truy “field này từ đâu, biến đổi qua những stage nào, ai dùng downstream” xuyên nhiều dataset; công cụ impact analysis trước khi sửa.
- Prism Audit Report (domain System Auditing) — mọi thay đổi upstream của một object tại một chỗ: before/after, ai, lúc nào.
- Error file của table: dòng bị loại kèm Error Code (3001–3006 sai type, 4000 text quá 32.000 ký tự…) — tải từ tab Activities, tối đa 10.000 dòng.
Chắt lọc từ Workday Prism Analytics User Guide (mục Table and Dataset Concepts) — doc.workday.com.