Kiến trúc Lakehouse của tương lai (Phần 2): Universal Format, Apache XTable và kỷ nguyên không còn Vendor Lock-in
Một trong những rào cản lớn nhất của hệ sinh thái dữ liệu hiện nay là sự khác biệt giữa các định dạng bảng và các nền tảng xử lý dữ liệu. Việc lựa chọn Delta Lake, Apache Iceberg hay Apache Hudi đôi khi đồng nghĩa với việc chấp nhận bị giới hạn bởi hệ sinh thái của từng công nghệ.
May mắn là xu hướng mới của Lakehouse đang hướng tới khả năng tương tác giữa các định dạng mở. Các công nghệ như Universal Format (UniForm), Apache XTable cùng những định dạng mới như Puffin và Apache Paimon đang từng bước xóa bỏ rào cản này, giúp doanh nghiệp tự do lựa chọn công cụ phù hợp mà không phải sao chép dữ liệu hoặc phụ thuộc vào một nhà cung cấp duy nhất.1. Universal Format (UniForm)
Đây là giải pháp trả lời cho câu hỏi hóc búa nhất của người làm dữ liệu: "Tôi nên chọn
Delta Lake hay Iceberg?".
Vấn đề: "Rào cản ngôn ngữ" giữa các định dạng
Mỗi định dạng bảng (Delta
Lake, Iceberg, Hudi) đều có một "ngôn ngữ" riêng (được gọi là lớp
siêu dữ liệu - metadata) để quản lý dữ liệu. Điều này dẫn đến một khó khăn: nếu
bạn lưu dữ liệu bằng Delta Lake, nhưng engine phân tích của bạn chỉ hiểu được
Iceberg, bạn sẽ không thể đọc được dữ liệu đó trừ khi phải sao chép và chuyển đổi
định dạng.
UniForm là gì? "Bộ thông dịch" tự động của Delta Lake
UniForm
là một tính năng của Delta Lake (bắt đầu từ phiên bản 3.0) giúp xóa bỏ
rào cản này.
Thay vì bắt bạn phải chọn
một bên, UniForm cho phép các engine tính toán đọc các bảng Delta như thể
chúng là bảng Iceberg. Một cách dễ hiểu UniForm giống như một bộ thông dịch
viên: dữ liệu của bạn vẫn viết bằng "tiếng Delta", nhưng UniForm sẽ tự
soạn thêm một bản tóm tắt bằng "tiếng Iceberg" để các công cụ khác có
thể hiểu được ngay lập tức.
Cách thức hoạt động: Phép màu ở lớp Siêu dữ liệu (Metadata)
Điểm hay nhất là: UniForm
không sao chép dữ liệu.
- Bình thường, Delta Lake và Iceberg đều lưu dữ liệu thực tế trong các tệp Parquet giống nhau.
- UniForm chỉ đơn giản là tạo thêm một lớp siêu dữ liệu tương thích với Iceberg một cách tự động.
- Kết quả là: bạn chỉ có một bản sao dữ liệu duy nhất trên đĩa cứng nhưng có thể được nhìn thấy và sử dụng bởi cả hai "thế giới" công nghệ.
Lợi ích thực tế: Tự do lựa chọn
UniForm mang lại sự tự do
cực lớn:
- Tránh bị bó buộc (No Lock-in):
Bạn không còn bị "nhốt" vào một định dạng duy nhất.
- Tiết kiệm chi phí:
Không tốn tiền lưu trữ cho việc sao chép dữ liệu sang nhiều định dạng khác
nhau.
- Linh hoạt công cụ:
Bạn có thể dùng Databricks (mạnh về Delta) để nạp dữ liệu, nhưng dùng
Snowflake hay Athena (mạnh về Iceberg) để truy vấn mà không gặp trở ngại
nào.
Tại thời điểm này UniForm
có tính chất một chiều: nó giúp bảng Delta có thể được đọc như Iceberg,
chứ không hỗ trợ ngược lại. Tuy nhiên, đây là bước đi đầu tiên hướng tới một hệ
sinh thái Lakehouse "mở" hoàn toàn, nơi định dạng bảng không còn là
rào cản cho sự sáng tạo.
Nhìn chung:
Tương lai của Lakehouse là sự hội tụ. Những công nghệ như UniForm giúp bạn
không phải đau đầu đưa ra những quyết định khó khăn ngay từ đầu, mà cho phép hệ
thống của bạn tự thích nghi và "nói chuyện" được với mọi công cụ
trong tương lai.
2. Apache XTable
Apache XTable là gì? "Bộ thông dịch đa ngôn ngữ"
Trong khi UniForm của
Delta Lake chủ yếu giúp các công cụ đọc dữ liệu Delta dưới dạng Iceberg (một
chiều), thì Apache XTable cung cấp khả năng tương tác đa chiều
(Omnidirectional).
Có thể hình dung rằng XTable
như một thông dịch viên siêu cấp, có thể dịch qua lại giữa cả ba "ngôn ngữ"
lớn nhất hiện nay: Apache Iceberg, Apache Hudi và Delta Lake. Bạn có thể
bắt đầu với bất kỳ định dạng nào và XTable sẽ giúp các công cụ của hai định dạng
còn lại hiểu được dữ liệu đó.
Cách thức hoạt động: "Một thân xác, nhiều tên
gọi"
XTable không sao chép
dữ liệu.
- Dữ liệu thực tế của bạn vẫn nằm yên một chỗ trong các tệp Parquet.
- XTable sẽ xác định một định dạng là "chính" (Primary) và sau đó tự động tạo ra các lớp siêu dữ liệu (metadata) cho các định dạng "phụ" (Secondary).
- Kết quả:
Bạn chỉ tốn tiền lưu trữ cho một bản sao duy nhất, nhưng toàn bộ hệ
sinh thái công nghệ (dù dùng Hudi, Iceberg hay Delta) đều có thể truy cập
được.
Tầm nhìn: Một Lakehouse "Mở" thực sự
XTable hiện đang nằm
trong "vườn ươm" (incubating) của Quỹ Phần mềm Apache (ASF). Đây là một
không gian trung lập để các nhà phát triển cùng nhau hợp tác.
Tinh thần:
- Không còn phải chọn phe:
Bạn không còn bị "nhốt" vào một định dạng duy nhất ngay từ đầu dự
án.
- Tự do công cụ:
Bạn có thể dùng Databricks (mạnh về Delta) để xử lý dữ liệu, nhưng lại
dùng các công cụ chuyên về Hudi hoặc Iceberg để phân tích mà không gặp bất
kỳ trở ngại nào.
Tóm lại:
Apache XTable chính là chìa khóa để xây dựng một kiến trúc Lakehouse thực sự
mở. Nó giúp bạn tận dụng được những tính năng tốt nhất của từng định dạng
mà không phải lo lắng về việc chuyển đổi dữ liệu tốn kém hay bị ràng buộc bởi bất
kỳ nhà cung cấp nào.
3. Định dạng tệp và bảng mới sắp ra mắt
Puffin: "Kho lưu trữ bí mật" cho hiệu suất truy vấn
Để hiểu về Puffin, hãy nhớ
lại một chút: thông thường, các tệp dữ liệu (như Parquet) thường lưu trữ các số
liệu thống kê nhỏ ở phần cuối tệp để giúp máy tính tìm dữ liệu nhanh hơn.
Iceberg cũng có các tệp "manifest" (manifest files) để quản lý thông
tin này.
- Vấn đề:
Có những thông tin thống kê và chỉ mục (indexes) rất phức tạp mà các tệp
hiện tại không chứa hết được.
- Giải pháp (Puffin):
Đây là một định dạng tệp mới do cộng đồng Iceberg tạo ra. Nó giống như một
"ngăn kéo chuyên dụng" để lưu trữ những số liệu thống kê chuyên
sâu và các bộ chỉ mục mà các định dạng cũ bỏ sót.
- Lợi ích:
Puffin giúp hệ thống thực hiện các phép tính ước tính cực nhanh (ví dụ: đếm
xem có bao nhiêu khách hàng duy nhất) mà không cần đọc hết dữ liệu, từ đó
giúp các câu lệnh truy vấn của bạn chạy "nhanh như chớp".
Apache Paimon: Nền tảng cho một "Streamhouse"
Việc phân tích dữ liệu
ngay khi nó vừa phát sinh (streaming) đang trở nên cực kỳ quan trọng. Apache
Paimon ra đời để giải quyết bài toán này và hiện thực hóa khái niệm Streamhouse
(phân tích dữ liệu luồng ngay trong Lakehouse).
- Apache Paimon là gì?
Đây là một định dạng bảng mở (đang được phát triển bởi Apache) tập trung
vào tốc độ.
- Điểm mạnh vượt trội:
- Nó hỗ trợ nạp dữ liệu với tốc độ chóng mặt và theo dõi mọi sự thay đổi của dữ liệu theo thời gian thực.
- Nó có "tình bạn thân thiết" với Apache Flink, giúp việc xử lý dữ liệu dòng trở nên dễ dàng hơn bao giờ hết.
- Paimon cho phép bạn dùng chung một đoạn mã để xử lý cả dữ liệu chạy định kỳ (batch) lẫn dữ liệu chảy liên tục (stream).
Thế giới dữ liệu không
bao giờ đứng yên. Mặc dù các định dạng hiện tại như Hudi đã hỗ trợ dữ liệu luồng
rất tốt, nhưng các công nghệ mới như Paimon hay Puffin là minh chứng cho việc cộng
đồng công nghệ luôn tìm cách tối ưu hóa hơn nữa.


Comments
Post a Comment