So sánh dữ liệu của hai snapshot
So sánh dữ liệu liệt kê chính xác các dòng đã được thêm, xóa hoặc thay đổi giữa hai snapshot. Dùng thao tác này để lập báo cáo sự cố sau một lần ghi sai, hoặc để kiểm tra lần nạp lại đã thay đổi gì.
So sánh dữ liệu có thể đọc rất nhiều dữ liệu. Time Machine chạy thao tác này qua hai bước. Đầu tiên, Time Machine kiểm tra yêu cầu và ước tính lượng dữ liệu sẽ đọc. Bạn chỉ chạy so sánh sau khi xem ước tính.
Điều kiện cần
- Role của bạn có quyền
time_machine:data_diff. Các roleportal_admin,data_engineervàdata_analystcó quyền này. - Bạn đọc được bảng trong Data Security.
- Bảng có ít nhất 2 snapshot.
Chọn khóa so sánh
Khóa so sánh là một hoặc nhiều cột xác định một dòng, ví dụ order_id. Time Machine ghép các dòng của hai snapshot theo khóa này.
Khóa phải:
- Duy nhất: không có hai dòng nào trong cùng một snapshot trùng khóa.
- Không bao giờ rỗng: không dòng nào có
NULLở cột khóa. - Có trong kết quả đầu ra: nếu bạn viết
SELECTtùy chỉnh, câu lệnh phải gồm các cột khóa.
Sau khi so sánh thành công, Time Machine lưu khóa cho bạn trên bảng đó. Lần sau, Time Machine gợi ý lại khóa này. Khóa đã lưu là của riêng bạn. Người dùng khác không thấy khóa của bạn.
So sánh dữ liệu
- Mở tab Time Machine của bảng.
- Chọn snapshot cũ hơn trong Snapshot A.
- Chọn snapshot mới hơn trong Snapshot B. A là "trước" và B là "sau", giống như trong So sánh cấu trúc của hai snapshot.
- Chọn Data Diff.
- Kiểm tra khóa được gợi ý trong Comparison key, hoặc nhập các cột khóa.
- Tùy chọn: nhập
SELECTđể chỉ so sánh một số cột hoặc dòng. Quy tắc giống như khi xem trước. Xem Viết SELECT tùy chỉnh. - Chọn Prepare. Time Machine kiểm tra yêu cầu và hiển thị ước tính.
- Kiểm tra dung lượng dữ liệu và số dòng ước tính, cùng thời điểm xác nhận hết hạn.
- Chọn Execute trước khi xác nhận hết hạn.

Prepare không so sánh dòng nào và không lưu khóa. Nếu ước tính vượt giới hạn, mặc định là 10 GB dữ liệu, bạn không thể tiếp tục. Thêm bộ lọc WHERE trong SELECT để đọc ít hơn, rồi chọn Prepare lại.
Xác nhận hết hạn sau 5 phút theo mặc định. Sau đó, chọn Prepare lại. Bạn không thể đổi snapshot, khóa hoặc SELECT sau khi Prepare. Để đổi, hãy quay lại và chọn Prepare lại.
Đọc kết quả

Phần tóm tắt đếm số dòng theo bốn nhóm. Danh sách chỉ hiển thị các dòng khác nhau.
| Loại thay đổi | Ý nghĩa | Giá trị hiển thị |
|---|---|---|
ADDED | Khóa có trong B nhưng không có trong A. | Sau |
REMOVED | Khóa có trong A nhưng không có trong B. | Trước |
CHANGED | Khóa có trong cả hai, nhưng một số giá trị khác nhau. | Trước và sau |
UNCHANGED | Khóa có trong cả hai, giá trị giống nhau. Chỉ đếm, không liệt kê. | — |
Nếu hai snapshot có các cột khác nhau, ví dụ một cột được thêm giữa hai snapshot, các dòng có khóa ở cả hai snapshot sẽ hiển thị là CHANGED.
Mặc định, lần so sánh trả về tối đa 10.000 điểm khác biệt. Nếu nhiều hơn, thao tác sẽ thất bại thay vì hiển thị một phần danh sách, nên bạn không bao giờ nhận báo cáo thiếu.
Khi gặp sự cố
| Tình huống | Ý nghĩa | Cách xử lý |
|---|---|---|
| Cần có khóa so sánh | Bạn chưa nhập khóa và chưa có khóa đã lưu cho bảng này. | Nhập các cột khóa. |
| Khóa so sánh không hợp lệ | Một cột khóa không có trong kết quả đầu ra, hoặc bị liệt kê hai lần. Hoặc một số dòng có khóa rỗng hoặc trùng. | Chọn các cột duy nhất và không bao giờ rỗng, rồi đưa chúng vào SELECT. |
| Ước tính vượt giới hạn | Lần so sánh sẽ đọc nhiều hơn mức cho phép. | Thêm bộ lọc WHERE, rồi chọn Prepare lại. |
| Xác nhận đã hết hạn | Đã quá 5 phút, hoặc bảng hay giới hạn đã thay đổi sau Prepare. | Chọn Prepare lại. |
| Quá nhiều điểm khác biệt | Hơn 10.000 dòng khác nhau. | Thêm bộ lọc WHERE để so sánh phần nhỏ hơn, ví dụ một ngày. |
| Quá nhiều lần so sánh đang chạy | Bạn đã có một lần so sánh dữ liệu đang chạy, hoặc Lakehouse đang bận. | Chờ lần so sánh kết thúc rồi thử lại. |
| Yêu cầu hết thời gian chờ | Lần so sánh chạy quá giới hạn thời gian, mặc định 5 phút. | Thêm bộ lọc WHERE hoặc chọn ít cột hơn. |
| Truy cập bị từ chối | Role hoặc quyền truy cập dữ liệu của bạn không cho phép. | Liên hệ Admin để được cấp time_machine:data_diff hoặc quyền truy cập bảng. |