Worksheet 4: Kế hoạch các đợt di chuyển
Sắp xếp mười đối tượng NYC Taxi vào các đợt di chuyển và xếp hạng độ phức tạp của từng đối tượng, với phản hồi ngay lập tức cho mọi câu trả lời.
Thời lượng dự kiến: 15–20 phút Tài liệu tham chiếu: Module 03 — Cấp phát và di chuyển → Module 04 — Dựng lại pipeline dbt → Module 05 — Benchmark và cutover để biết thứ tự thực thi
Khái niệm
Các đối tượng cơ sở dữ liệu có quan hệ phụ thuộc. Một view truy vấn fact_trips không thể được tạo
trước khi fact_trips tồn tại. Một materialized view đọc từ trips_raw không thể được
nạp dữ liệu trước khi trips_raw có dữ liệu. Di chuyển theo thứ tự sai gây lỗi tạo bảng,
kết quả rỗng, hoặc dữ liệu không đầy đủ mà rất khó chẩn đoán.
Giải pháp: lập kế hoạch theo đợt. Sắp xếp mọi đối tượng vào một đợt được đánh số, trong đó mỗi đợt chỉ chứa những đối tượng có quan hệ phụ thuộc đã được các đợt trước thỏa mãn.
Xếp hạng độ phức tạp giúp ưu tiên công sức di chuyển. Ranh giới giữa B và C là liệu một câu lệnh có phải được cấu trúc lại hay chỉ cần đổi kiểu:
- Hạng A — tầm thường: bảng chuẩn hoặc view chuyển tiếp, không có logic đặc biệt, ánh xạ kiểu thẳng thắn
- Hạng B — trung bình: một cấu trúc đặc thù ClickHouse cần học và kiểm thử, nhưng bản thân
việc dịch chỉ là một sự thay thế — một engine ClickHouse cộng config incremental, một
CREATE DICTIONARY,REFRESH EVERYcủa một MV có thể refresh, hoặc một đường dẫnJSONExtract*thay cho việc đọcVARIANT - Hạng C — phức tạp: một câu lệnh phải được dựng lại, không chỉ đổi kiểu (
QUALIFYbọc trong một subquery,MERGE INTOđược thay bằng một chiến lược incremental), và việc viết lại đó phải nhất quán với lựa chọn engine và với vị trí đặtFINALở mọi thứ phía sau; hãy kiểm thử cẩn thận - Hạng D — cần thiết kế lại: tính năng đặc thù Snowflake không có tương đương trực tiếp (Streams → cutover producer sang ClickHouse, Tasks → MV có thể refresh hoặc các lượt chạy dbt theo lịch)
Bài tập 3 bên dưới yêu cầu bạn xếp hạng theo thang ba mức gọn hơn thay cho bốn chữ cái ở trên — Thấp (Hạng A), Trung bình (Hạng B), Cao (Hạng C hoặc D) — vì điều quan trọng nhất cho việc sắp xếp công sức là tầm thường / cần kiểm thử / cần thiết kế lại, không phải cách chia bốn mức. Phần giải thích của mỗi câu trả lời có nêu chữ nào trong A–D được áp dụng, nên bạn vẫn có thể quy về hạng chữ cái.
Bài tập 1: DAG phụ thuộc
Với từng đối tượng bên dưới, hãy chọn thứ mà nó phụ thuộc vào. Ba trong mười là dữ liệu tham chiếu tĩnh, không phụ thuộc vào gì cả — đó là một câu trả lời thật, không phải một chỗ trống để điền sau.
Bài tập 2: Phân đối tượng vào các đợt di chuyển
Đợt 0 và 1 đã được điền làm ngữ cảnh. Với các đợt 2 đến 4, hãy chọn những đối tượng thuộc đợt đó, rồi trả lời điều gì thực sự diễn ra trong đợt ấy.
Bài tập 3: Xếp hạng độ phức tạp
Xếp hạng từng đối tượng, rồi trả lời câu hỏi về thách thức chính của nó bên dưới bảng.
Câu hỏi suy ngẫm
Hai câu hỏi cuối bao trùm ba mục trong sổ đăng ký rủi ro của đáp án —
kiểm chứng fact_trips (Hạng C) và agg_hourly_zone_trips sau khi chúng hạ cánh, và
kiểm chứng cuộc cutover producer thay thế TRIPS_CDC_STREAM và CDC_CONSUME_TASK
(Hạng D). Sổ đăng ký này không chỉ đơn giản là tập Hạng C/D: agg_hourly_zone_trips xếp hạng
Trung bình, nhưng cửa sổ tính lại luân phiên của nó là thứ dễ sai một cách tinh vi nhất
trong pipeline này.
Loading worksheet...
Chuyển sang migration-plan.md
Sao kế hoạch các đợt và các hạng độ phức tạp của bạn vào Phần 6 của migration-plan.md và tick
ô:
- [ ] Migration wave plan: completedWorksheet 3: Dịch schema
Ánh xạ mọi cột của TRIPS_RAW và FACT_TRIPS sang kiểu ClickHouse và dịch bảy biểu thức Snowflake, với phản hồi ngay lập tức cho mọi câu trả lời.
Worksheet 5: Thiết kế model dbt
Cấu hình materialization, engine và chiến lược incremental cho từng model dbt, với phản hồi ngay lập tức cho mọi câu trả lời.