Skip to main content

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.
Kiến trúc Lakehouse của tương lai (Phần 3): Managed Platforms và AI sẽ thay đổi cách doanh nghiệp khai thác dữ liệu
Kiến trúc Lakehouse của tương lai (Phần 1): Khi Data Mesh, HTAP và Zero ETL hội tụ
Lakehouse Architecture: Kiến trúc dữ liệu hợp nhất cho BI, AI và Big Data

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)

UniForm -  "Bộ thông dịch" tự động của Delta Lake

Đ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"

Apache XTable - Bộ thông dịch đa ngôn ngữ"

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.

Tóm lại: Bạn không cần phải thay đổi mọi thứ ngay lập tức, nhưng hãy luôn "để mắt" tới những định dạng này khi thiết kế hệ thống. Việc hiểu biết về chúng sẽ giúp bạn xây dựng một Lakehouse sẵn sàng cho tương lai, linh hoạt và không bị giới hạn bởi bất kỳ rào cản kỹ thuật nào.

Kết luận

Tương lai của Lakehouse không nằm ở việc một định dạng bảng chiến thắng các định dạng khác, mà ở khả năng để tất cả cùng tồn tại và tương tác với nhau. Khi dữ liệu chỉ cần được lưu một lần nhưng có thể được khai thác bởi nhiều công cụ khác nhau, doanh nghiệp sẽ có nhiều tự do hơn trong việc lựa chọn nền tảng, tối ưu chi phí và thích ứng với sự phát triển của công nghệ. Đây chính là bước tiến quan trọng hướng tới một hệ sinh thái Lakehouse mở, linh hoạt và bền vững.

Comments

Popular posts from this blog

Cloud Native là gì? Tư duy thiết kế hệ thống hiện đại cho thời đại đám mây

Cloud Native đang trở thành nền tảng của hầu hết các hệ thống hiện đại từ Netflix, Amazon đến Google. Nhưng Cloud Native thực sự là gì? Liệu việc đưa ứng dụng lên AWS hay Google Cloud đã đủ để gọi là Cloud Native chưa? Trong bài viết này, chúng ta sẽ tìm hiểu nguồn gốc của khái niệm Cloud Native, bài học từ sự cố AWS năm 2015, và những đặc tính quan trọng giúp các hệ thống hiện đại đạt được khả năng mở rộng, chống chịu và triển khai liên tục. 1. Bài học từ sự cố AWS: Lỗi là “Luật”, không phải “Ngoại lệ” Vào năm 2015, Amazon Web Services (AWS) gặp sự cố sập mạng chấn động. Trong khi các “ông lớn” như Airbnb hay Nest đều bị tê liệt, thì Netflix chỉ bị ảnh hưởng rất nhỏ và phục hồi gần như ngay lập tức. AWS phân vùng các dịch vụ mà nó cung cấp thành các vùng (region) và vùng khả dụng (Availability Zone - AZ). Các vùng ánh xạ đến các khu vực địa lý (như Virginia, California, Oregon) và AZ cung cấp thêm dự phòng và cô lập trong một vùng duy nhất. Hình bên dưới hoàn toàn là giả định (nhưng v...

Kiến trúc cho xử lý dữ liệu luồng (Streaming Architecture) - Phần 3: Continuous Intelligence và AI thời gian thực

Khi hệ thống đã có khả năng thu thập dữ liệu liên tục và phân tích sự kiện theo thời gian thực, câu hỏi tiếp theo là: liệu máy tính có thể tự đưa ra quyết định thay con người hay không? Kiếntrúc cho xử lý dữ liệu luồng (Streaming Architecture) - Phần 1: Giá trị củaStreaming và Kiến trúc Streaming Ingest Kiếntrúc cho xử lý dữ liệu luồng (Streaming Architecture) - Phần 2: Real-timeDashboards và Stream Analytics Đó chính là mục tiêu của Continuous Intelligence – giai đoạn cao nhất trong kiến trúc xử lý dữ liệu luồng. Thay vì chỉ hiển thị cảnh báo trên dashboard, hệ thống có thể liên tục huấn luyện mô hình AI, thực hiện suy luận (Inference) ngay khi dữ liệu phát sinh và tự động kích hoạt các hành động phù hợp. Trong bài viết cuối cùng của series Kiến trúc cho xử lý dữ liệu luồng , chúng ta sẽ cùng khám phá cách xây dựng một hệ thống dữ liệu thông minh có khả năng học hỏi, thích nghi và phản ứng gần như theo thời gian thực. 5. Continuous Intelligence (Trí tuệ liên tục) Đây là cấp...

Reinforcement Learning (Học tăng cường) là gì? Hiểu bản chất qua giải thích về cách AI tự học

Nếu học có giám sát giúp AI học từ những đáp án đã biết trước, còn học không giám sát giúp AI tự khám phá cấu trúc của dữ liệu, thì học tăng cường (Reinforcement Learning - RL) lại đi theo một hướng hoàn toàn khác: AI học bằng chính trải nghiệm của mình. Deep Reinforcement Learning là gì? Vì sao AI cần kết hợp Học sâu với Học tăng cường Reinforcement Learning (Học tăng cường) hoạt động như thế nào? Dynamic Programming, Monte Carlo và các ứng dụng thực tế Thay vì được hướng dẫn từng bước, tác nhân (agent) liên tục tương tác với môi trường, thử nhiều hành động khác nhau và nhận phần thưởng hoặc hình phạt. Sau hàng nghìn, thậm chí hàng triệu lần thử nghiệm, AI dần học được chiến lược tối ưu để đạt mục tiêu. Trong bài viết này, chúng ta sẽ cùng tìm hiểu bản chất của học tăng cường, các thành phần quan trọng như Agent, Environment, Reward, Action và Observation, đồng thời minh họa bằng ví dụ trực quan để thấy AI thực sự "học" như thế nào. 1. Học có giám sát (Supervised learni...