Lê Duy Khương (Daniel)

Năng suất & công cụ dev

Spec Layer 1: Raw Layer

Lakehouse layer spec: Layer 1: Raw Layer

2026-03-173 phút đọcVI

📥 Spec – Layer 1: Raw Layer


🧭 1. Mục đích

Raw Layer là lớp đầu tiên trong chuỗi pipeline Lakehouse, dùng để lưu trữ dữ liệu gốc, chưa qua xử lý, chưa chuẩn hóa, được ingest trực tiếp từ hệ thống nguồn thông qua batch hoặc streaming.

Lớp này phục vụ:

  • Lưu trữ trung thực dữ liệu để có thể truy vết, đối chiếu trong trường hợp sai sót ở tầng sau.
  • Hỗ trợ debug, kiểm toán (audit), hoặc build lại pipeline downstream mà không cần kết nối lại với hệ thống nguồn.
  • Duy trì tính immutable (bất biến) của dữ liệu gốc.

🏗️ 2. Cấu trúc lưu trữ

Thành phầnGiá trị cấu hình
Định dạng fileParquet hoặc JSON (tùy loại dữ liệu)
PartitioningTheo ingest_date hoặc store_id
Storage formatApache Iceberg (ưu tiên) hoặc Delta Lake
Vị trí lưuminio://lakehouse/raw/<domain>/<table>/<ingest_date>/...
Sơ đồ phân tầngraw.crm.customer_raw, raw.risk.blacklist_raw, v.v.

⚙️ 3. Cơ chế ingest

🔄 Batch

  • Dùng Airbyte với chế độ CDC hoặc Full Refresh
  • Lưu metadata ingest: source_name, ingest_time, record_hash

⚡ Streaming

  • Qua Kafka topic → ingest bởi Flink hoặc Spark structured streaming
  • Có thể ingest từ REST API, webhook hoặc log collector (Logstash, Filebeat)

📐 4. Chuẩn schema & lưu trữ

Tiêu chíYêu cầu
SchemaTự động phát hiện từ nguồn, không ép schema
VersioningGhi version theo batch run hoặc Kafka offset
Audit cột bắt buộc__ingest_time, __source_system, __batch_id, __is_deleted
Chính sách lưu trữ90 ngày với dữ liệu raw; có thể extend tùy domain
ImmutableKhông sửa đổi file sau khi đã ghi – chỉ append
CompressionSnappy (Parquet) hoặc gzip (JSON)
Logging ingestGhi log theo batch với trạng thái: Success, Partial, Error

🧪 5. Kiểm thử & xác nhận dữ liệu

Loại kiểm thửMục tiêu kiểm thử
Schema drift checkKiểm tra schema có thay đổi so với lần ingest trước
Row count checkSo sánh số dòng với dữ liệu gốc
Hash checkĐảm bảo không ghi trùng hoặc thiếu record
Sample inspectRandom 10–20 dòng để so sánh trực quan với hệ thống nguồn

🔐 6. Bảo mật & quyền truy cập

Quy địnhMô tả
Quyền ghiChỉ Airbyte, Kafka/Flink pipeline được phép ghi
Quyền đọcChỉ nhóm Data Engineering & Audit, không dùng cho phân tích trực tiếp
PII maskingKhông áp dụng ở Raw, nhưng gắn nhãn phân loại dữ liệu nhạy cảm
Audit logGhi log người truy cập, thời gian và hành động

🧩 7. Ví dụ cấu trúc thư mục dữ liệu

minio://lakehouse/raw/
├── crm/
│   ├── customer_raw/
│   │   ├── ingest_date=2025-06-24/
│   │   │   ├── part-0001.parquet
│   │   │   └── ...
│   └── contact_raw/
│       └── ingest_date=2025-06-24/
│           └── ...
├── lending/
│   └── contract_raw/
│       └── ingest_date=2025-06-24/
│           └── ...

📎 8. Tài liệu & quản lý metadata

  • Tự động sinh mô tả bảng qua dbt source freshness
  • Gắn tag: raw, domain: crm, sensitivity: high
  • Tự động đồng bộ schema với DataHub hoặc Amundsen
LDK

Le Duy Khuong

AI Transformation & Digital Strategy. Writing about agentic systems, engineering leadership, and building in public.