Apache Iceberg Format phiên bản 3 đánh dấu bước tiến quan trọng trong cách các định dạng bảng xử lý thao tác ở cấp độ dòng dữ liệu, truy vết dữ liệu và xử lý kiểu dữ liệu phức tạp. AIStor Tables là nền tảng lưu trữ dữ liệu đầu tiên trong ngành hỗ trợ Iceberg V3, tích hợp trực tiếp Iceberg Catalog REST API vào hệ thống lưu trữ đối tượng MinIO AIStor. Bài viết này phân tích những thay đổi kỹ thuật của V3 và lý do vì sao chúng quan trọng đối với các đội ngũ xây dựng nền tảng dữ liệu.
Cách cơ chế phiên bản của Iceberg hoạt động
Các phiên bản định dạng Iceberg xác định những tính năng mà một bảng dữ liệu có thể sử dụng. Phiên bản V1 đặt nền tảng với các file dữ liệu bất biến như Parquet, Avro và ORC, cơ chế theo dõi file dựa trên manifest, snapshot isolation và khả năng thay đổi schema thông qua ID cột thay vì tên cột.
Phiên bản V2 bổ sung khả năng xóa dữ liệu ở cấp độ dòng thông qua hai cơ chế: position delete files (tham chiếu đường dẫn file và vị trí dòng) và equality delete files (xóa dữ liệu dựa trên giá trị cột khớp điều kiện).
Phiên bản V3 mở rộng thêm nhiều khả năng mới, ảnh hưởng trực tiếp đến cả quá trình ghi và đọc dữ liệu.
Tăng tốc độ đọc bằng cách chuyển chi phí xử lý xóa sang giai đoạn ghi
Cơ chế xóa dữ liệu ở V2 gây ra nhiều vấn đề vận hành. Các position delete files tham chiếu đến số dòng cụ thể trong file dữ liệu, còn equality delete files yêu cầu đánh giá điều kiện trên từng dòng dữ liệu. Vì hệ thống không yêu cầu hợp nhất dữ liệu xóa trong quá trình ghi, bảng dữ liệu thường tích tụ nhiều file xóa nhỏ, khiến truy vấn phải xử lý và hợp nhất chúng mỗi lần đọc.
V3 giới thiệu deletion vectors, là các bitmap nhị phân nhỏ gọn đánh dấu các dòng đã bị xóa trong file dữ liệu. Định dạng này sử dụng Roaring Bitmaps được mã hóa trong file Puffin, giúp tối ưu khả năng nén cho cả dữ liệu xóa thưa và dày.
Thay đổi quan trọng nằm ở hành vi xử lý. V3 yêu cầu mỗi file dữ liệu chỉ được duy trì một deletion vector duy nhất. Khi dữ liệu bị xóa thêm, hệ thống phải hợp nhất vector mới với vector hiện có và tạo ra một phiên bản cập nhật. Điều này chuyển chi phí xử lý từ giai đoạn đọc sang giai đoạn ghi.
Đối với các hệ thống cập nhật thường xuyên như pipeline change data capture hoặc workflow hiệu chỉnh sự kiện, cơ chế này giúp loại bỏ tình trạng tích tụ file xóa, từ đó cải thiện hiệu suất đọc theo thời gian.
Truy vết dòng dữ liệu hỗ trợ xử lý gia tăng
Trước đây, việc xác định dòng dữ liệu nào thay đổi giữa các snapshot đòi hỏi phải quét và so sánh toàn bộ dữ liệu. Phiên bản V3 bổ sung metadata ở cấp độ dòng, cho phép mỗi dòng mang theo row ID duy nhất và số thứ tự chỉnh sửa gần nhất.
Row ID được giữ nguyên trong quá trình nén dữ liệu hoặc ghi lại file. Khi một dòng dữ liệu được chuyển sang file khác, ID vẫn giữ nguyên. Sequence number chỉ thay đổi khi nội dung dữ liệu thực sự thay đổi.
Điều này đặc biệt quan trọng đối với xử lý gia tăng. Hệ thống có thể xác định chính xác dòng nào được thêm mới, cập nhật hoặc xóa giữa hai snapshot bằng cách so sánh row ID và sequence number. Trước đây, việc theo dõi ở cấp độ file không thể phân biệt dữ liệu bị thay đổi với dữ liệu chỉ được ghi lại sang file mới.
Kiểu dữ liệu Variant mới giúp phân tích dữ liệu bán cấu trúc nhanh hơn
Việc lưu trữ JSON dưới dạng chuỗi buộc hệ thống truy vấn phải phân tích văn bản mỗi lần đọc dữ liệu. Điều này khiến hệ thống không thể tối ưu truy vấn ở tầng lưu trữ vì cấu trúc dữ liệu chưa được xác định.
Kiểu dữ liệu Variant giải quyết vấn đề này bằng cách mã hóa schema và dữ liệu dưới dạng nhị phân, cho phép hệ thống truy vấn truy cập dữ liệu mà không cần phân tích toàn bộ JSON. Khi truy vấn lọc dữ liệu ở một trường lồng nhau, hệ thống có thể bỏ qua các dòng không liên quan mà không cần giải mã toàn bộ dữ liệu.
Ngoài ra, Variant lưu metadata cấu trúc riêng biệt với giá trị dữ liệu, giúp hệ thống chỉ đọc những phần cần thiết. Điều này đặc biệt hiệu quả với các tài liệu JSON lớn nhưng truy vấn chỉ sử dụng một số trường nhất định.
Variant cũng hỗ trợ dữ liệu có schema không đồng nhất. Không giống kiểu struct yêu cầu schema cố định, Variant cho phép các dòng chứa dữ liệu có cấu trúc khác nhau. Điều này phù hợp với dữ liệu log sự kiện, phản hồi API hoặc dữ liệu IoT.
Giảm quét toàn bộ dữ liệu trong truy vấn không gian địa lý
Trước phiên bản V3, dữ liệu tọa độ thường được lưu dưới dạng WKB hoặc GeoJSON. Iceberg xem đây là dữ liệu nhị phân không có ngữ nghĩa, khiến truy vấn không gian phải quét toàn bộ bảng dữ liệu rồi mới lọc kết quả.
Điều này gây ra hai hạn chế lớn. Hiệu suất truy vấn phụ thuộc vào kích thước bảng thay vì số lượng kết quả cần tìm. Ngoài ra, việc phân vùng dữ liệu theo khu vực cũng không tối ưu do ranh giới truy vấn thường không trùng khớp với phân vùng dữ liệu.
Phiên bản V3 bổ sung kiểu dữ liệu geometry và geography dưới dạng gốc. Nhờ đó, Iceberg có thể lưu metadata bounding box trong file manifest. Khi truy vấn khu vực địa lý, hệ thống có thể bỏ qua toàn bộ file dữ liệu không giao với vùng truy vấn, tương tự cơ chế partition pruning áp dụng cho dữ liệu không gian.
Các kiểu dữ liệu này hỗ trợ định dạng chuẩn như WKB và GeoJSON, đồng thời tích hợp với thư viện không gian địa lý trong các công cụ truy vấn. Điều này giúp các ứng dụng logistics, định tuyến hoặc xử lý dữ liệu vị trí có thể lọc dữ liệu ngay tại tầng lưu trữ.
Ý nghĩa đối với kiến trúc dữ liệu

Những thay đổi của Iceberg V3 giải quyết các vấn đề phổ biến như tích tụ file xóa làm giảm hiệu suất đọc, khó theo dõi thay đổi dữ liệu ở cấp độ dòng và xử lý không hiệu quả dữ liệu bán cấu trúc hoặc dữ liệu không gian.
AIStor Tables là hệ thống lưu trữ đầu tiên hỗ trợ Iceberg V3 bằng cách tích hợp Iceberg Catalog REST API trực tiếp vào MinIO AIStor object storage. Điều này loại bỏ nhu cầu triển khai dịch vụ catalog bên ngoài.
Đối với các tổ chức triển khai hệ thống on-premises hoặc hybrid, giải pháp này giúp tận dụng đầy đủ khả năng của Iceberg V3 với ít thành phần hệ thống cần quản lý hơn, đồng thời vẫn đảm bảo tương thích hoàn toàn với hệ sinh thái Iceberg. Các công cụ như Spark, Trino, Dremio, Starburst và Flink đều có thể sử dụng mà không cần điều chỉnh.
Unitas cam kết đồng hành cùng doanh nghiệp, cung cấp các giải pháp và phân tích an ninh mạng tiên tiến nhất. Để nhận được tư vấn chuyên sâu hoặc hỗ trợ nhanh chóng, vui lòng liên hệ với chúng tôi qua email: info@unitas.vn hoặc Hotline: (+84) 939 586 168.