Chuyển tới nội dung chính

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 role portal_admin, data_engineer và data_analyst có 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 SELECT tù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​

  1. Mở tab Time Machine của bảng.
  2. Chọn snapshot cũ hơn trong Snapshot A.
  3. 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.
  4. Chọn Data Diff.
  5. Kiểm tra khóa được gợi ý trong Comparison key, hoặc nhập các cột khóa.
  6. 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.
  7. Chọn Prepare. Time Machine kiểm tra yêu cầu và hiển thị ước tính.
  8. 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.
  9. Chọn Execute trước khi xác nhận hết hạn.

Ước tính của một lần so sánh dữ liệu với dung lượng dữ liệu, số dòng và thời điểm 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ả​

Kết quả so sánh dữ liệu với số lượng và danh sách các dòng đã thay đổi

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ĩaGiá trị hiển thị
ADDEDKhóa có trong B nhưng không có trong A.Sau
REMOVEDKhóa có trong A nhưng không có trong B.Trước
CHANGEDKhóa có trong cả hai, nhưng một số giá trị khác nhau.Trước và sau
UNCHANGEDKhó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ĩaCách xử lý
Cần có khóa so sánhBạ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ạnLầ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ệtHơ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ạyBạ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ốiRole 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.

Bước tiếp theo​