Bỏ qua để đến nội dung

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.

TableBase Dataset
Bản chấtLưu trữ (materialize) trên columnar store — như bảng warehouseMô tả cách đọc nguồn (file/report)
SchemaSchema-on-write: khai trước, load sai type → loại cả dòng vào error fileSchema-on-read: đọc không khớp → field đó thành NULL, dòng vẫn giữ
NguồnNhận mọi loại nguồn, bất kỳ lúc nào qua data change taskChỉ đúng loại nguồn lúc tạo (SFTP mãi là SFTP)
Xóa dữ liệuTruncate hoặc xóa chọn lọc theo keyChỉ truncate toàn bộ
Đếm dòngBiết chính xácKhông biết
Ra Prism data sourceEnable for AnalysisPublish

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.

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:

  1. Ưu tiên Numeric thay Double — Double dễ mất precision.
  2. 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).
  3. 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.
  • 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êm OR [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.

Chia sẻ: