Cộng đồng Apache Iceberg đã chính thức phê chuẩn đặc tả V3, đánh dấu một cột mốc quan trọng cho công nghệ data lakehouse. Tuy nhiên, các cuộc thảo luận trong cộng đồng nhà phát triển cho thấy rằng mặc dù đặc tả này hứa hẹn những cải tiến lớn, con đường đến việc áp dụng rộng rãi vẫn phải đối mặt với một số rào cản trong quá trình triển khai.
Các tính năng chính của Apache Iceberg V3:
- Deletion Vectors: Bitmap nhị phân sử dụng nén Roaring bitmap để xóa hiệu quả ở cấp độ hàng
- Default Column Values: Phát triển schema tức thì mà không cần viết lại tệp dữ liệu
- Row-Level Lineage: Hỗ trợ nâng cao cho kiểm toán và pipeline CDC
- Rich Data Types: Kiểu VARIANT cho JSON, kiểu GEOMETRY/GEOGRAPHY, timestamp với độ chính xác nanosecond
Lộ trình phát hành tạo ra sự nhầm lẫn trong người dùng
Các thành viên cộng đồng đang tích cực tìm hiểu về thời điểm các tính năng V3 thực sự sẽ có sẵn. Đặc tả đã được phê chuẩn, nhưng lộ trình triển khai vẫn chưa rõ ràng đối với nhiều người dùng. Phiên bản Apache Iceberg 1.10 dự kiến sẽ là bản phát hành đầu tiên hỗ trợ các tính năng V3, mặc dù không phải tất cả khả năng sẽ ngay lập tức có sẵn trên các query engine khác nhau như Spark hoặc Flink. Một số tính năng V3, bao gồm variant types và column lineages, đã xuất hiện trong phiên bản 1.9.0, nhưng không có sự hỗ trợ rộng rãi từ các engine để sử dụng thực tế.
Lộ trình triển khai:
- Đặc tả V3: Đã được phê chuẩn (hiện tại)
- Apache Iceberg 1.9.0: Một số tính năng V3 đã có sẵn (các kiểu variant, lineage cột)
- Apache Iceberg 1.10: Dự kiến là phiên bản hỗ trợ đầy đủ V3 đầu tiên
- Hỗ trợ Query Engine: Triển khai dần trên Spark , Flink và các engine khác
Mối quan ngại về độ trưởng thành của hệ sinh thái ngoài Java
Hệ sinh thái Iceberg rộng lớn hơn phải đối mặt với những thách thức đáng kể về độ trưởng thành bên ngoài môi trường Java. Việc triển khai iceberg-rust thiếu hỗ trợ cho HDFS, làm nổi bật những khoảng trống trong các thư viện không phải Java. Mô hình này phản ánh sự phát triển lịch sử của các thư viện Apache Arrow và Parquet, nơi mà phải mất thời gian đáng kể để các triển khai trên các ngôn ngữ lập trình khác nhau đạt được sự tương đồng về tính năng.
Các API lưu trữ cấp thư viện rất phức tạp và thường khá dễ bị rò rỉ. Có vẻ như khá có thể sẽ có khoảng ba thư viện có thể ghi vào Iceberg ( Java , Python , Rust , có thể là Golang ), trong khi phần còn lại tốt nhất chỉ có thể cung cấp quyền truy cập đọc.
Sự phức tạp của các API lưu trữ cho thấy rằng chỉ có một số lượng hạn chế các ngôn ngữ lập trình có thể đạt được khả năng ghi đầy đủ, có thể hạn chế việc áp dụng công nghệ này trong các môi trường phát triển đa dạng.
Tình trạng hỗ trợ ngôn ngữ:
- Dự kiến hỗ trợ đầy đủ khả năng ghi: Java , Python , Rust , có khả năng cả Go
- Hỗ trợ hạn chế: Hầu hết các ngôn ngữ khác có thể chỉ có quyền truy cập đọc
- Hạn chế đã biết: iceberg-rust thiếu hỗ trợ HDFS
- Tài liệu: Chủ yếu có sẵn tài liệu API Java
Vấn đề về tài liệu và độ rõ ràng của đặc tả
Phản hồi từ cộng đồng cho thấy tài liệu đặc tả V3 cần được cải thiện để có thể tiếp cận rộng rãi hơn. Trong khi một số nhà phát triển thấy đặc tả Iceberg rõ ràng hơn so với các lựa chọn thay thế như tài liệu giao thức của Delta Lake, những người khác chỉ ra nhu cầu về các đặc tả dễ đọc hơn ngoài tài liệu Java API hiện tại. Khoảng trống tài liệu này có thể làm chậm các nỗ lực triển khai trên các nền tảng và ngôn ngữ lập trình khác nhau.
Câu hỏi về sự sẵn sàng cho sản xuất vẫn chưa được giải đáp
Bất chấp lời hứa kỹ thuật của các tính năng V3 như deletion vectors và default column values, cộng đồng vẫn thiếu các báo cáo kinh nghiệm sản xuất cụ thể. Người dùng mong muốn hiểu được những tác động hiệu suất trong thế giới thực, nhưng dữ liệu thử nghiệm sản xuất toàn diện vẫn còn hạn chế vì các triển khai vẫn đang được triển khai.
Việc phê chuẩn Apache Iceberg V3 đại diện cho tiến bộ quan trọng đối với công nghệ data lakehouse, nhưng các cuộc thảo luận cộng đồng nhấn mạnh rằng việc phê duyệt đặc tả chỉ là khởi đầu của một hành trình triển khai và áp dụng dài hơn.
Tham khảo: A Deeper Dive into Apache Iceberg V3: How New Designs Are Solving Core Data Lake Challenges
![]() |
---|
Hình ảnh này làm nổi bật bài viết blog thảo luận về các thiết kế mới trong Apache Iceberg V3 , giới thiệu các giải pháp cho những thách thức cốt lõi của data lake |