Snowflake MigrationClickHouse Workshops
Các worksheet lập kế hoạch

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 EVERY của một MV có thể refresh, hoặc một đường dẫn JSONExtract* thay cho việc đọc VARIANT
  • 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 (QUALIFY bọ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í đặt FINAL ở 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: completed

Trên trang này

Track your progress?

Optional. We email a link to confirm your address; progress records once you open it.

Please use your work email address, not a personal one.

Progress tracking also requires accepting the current Terms of Service in Privacy settings.

VI