16 điểm bởi xguru 2025-01-27 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Lĩnh vực quản lý dữ liệu đang thay đổi nhanh chóng, và khái niệm Data Lakehouse đang nổi lên do nhu cầu ngày càng tăng đối với lưu trữ đám mây và phân tích thời gian thực
  • Các dự án như Apache Iceberg, Apache Hudi và Delta Lake đã cung cấp những tính năng cốt lõi cho kiến trúc Lakehouse như tiến hóa lược đồ, giao dịch ACID và cập nhật hiệu quả
  • Hệ thống nội bộ Napa của Google đưa ra một cách tiếp cận tiến xa hơn một bậc so với các giải pháp Lakehouse hiện nay
  • Tiến thêm một bước, bài viết đề xuất LakeDB như hình thái thế hệ tiếp theo của Lakehouse bằng cách kết hợp thêm ý tưởng từ các hệ thống khác như Apache Pinot

Bối cảnh Lakehouse hiện tại: Iceberg, Hudi, Delta Lake

  • Apache Iceberg
    • Hỗ trợ tiến hóa lược đồ, time travel và lập kế hoạch truy vấn hiệu quả nhờ quản lý metadata tinh vi
    • Cung cấp đảm bảo tính nhất quán cho các tập dữ liệu phân tích quy mô lớn
  • Apache Hudi
    • Xử lý hiệu quả upsert, delete và CDC (change data capture) bằng cách tận dụng lưu trữ dựa trên cấu trúc log và indexing
    • Nhấn mạnh vào biến đổi dữ liệu và xử lý gia tăng
  • Delta Lake
    • Cung cấp giao dịch ACID cho Spark và các workload dữ liệu lớn
    • Hỗ trợ kiểm tra lược đồ, time travel và xử lý hợp nhất giữa batch và streaming
    • Cung cấp một phần pipeline khai báo và materialized view thông qua Delta Live Tables

Napa của Google: cách tiếp cận ở tầm vĩ mô

  • Là một hệ thống quản lý dữ liệu phân tích hoàn chỉnh, hỗ trợ truy vấn độ trễ thấp và nạp dữ liệu liên tục trên dữ liệu quy mô lớn
  • Nạp dữ liệu dựa trên LSM(Log-Structured Merge)-Tree
    • Áp dụng phương pháp LSM-tree để đạt thông lượng ghi cao, với cấu trúc hợp nhất vào dữ liệu hiện có thông qua compaction
  • Khai thác materialized view
    • Tự động duy trì và cập nhật materialized view để tăng tốc truy vấn
  • Queryable Timestamp(QT)
    • Cung cấp cơ chế quản lý thời điểm nhất quán trên toàn hệ thống
    • Có thể tinh chỉnh sự cân bằng giữa độ mới của dữ liệu và hiệu năng truy vấn
  • Tích hợp F1 Query
    • Tận dụng engine F1 Query của Google để xử lý hiệu quả các truy vấn phân tích phức tạp
  • Khả năng cấu hình cao
    • Có thể điều chỉnh độ mới dữ liệu, hiệu năng, chi phí... theo nhu cầu người dùng

So sánh Napa, Iceberg, Hudi và Delta Lake

  • Napa là một hệ thống quản lý dữ liệu phân tích toàn diện, hỗ trợ truy vấn nhanh thông qua materialized view dựa trên LSM và tinh chỉnh độ mới của dữ liệu bằng kỹ thuật Queryable Timestamp (QT). Nó hữu ích trong những tình huống cần phân tích và báo cáo nhanh trên dữ liệu quy mô lớn, đồng thời cho phép cân bằng hợp lý giữa chi phí, hiệu năng và độ mới nhờ tính linh hoạt cấu hình cao.
  • Iceberg là một dự án tập trung vào table format, quản lý các file dữ liệu quy mô lớn thông qua metadata và cung cấp các tính năng như atomic update. Nó chủ yếu được sử dụng trong môi trường data lake cần các chức năng như data warehousing, tiến hóa lược đồ và time travel, còn các tùy chọn cấu hình chủ yếu tập trung vào bố cục bảng hoặc metadata.
  • Hudi là một nền tảng đưa các khả năng giống database vào data lake, xử lý hiệu quả các thao tác biến đổi dữ liệu như upsert hay delete thông qua lưu trữ dựa trên cấu trúc log và kỹ thuật indexing. Nó được thiết kế để đáp ứng tốt cho nạp dữ liệu thời gian thực, CDC (change data capture) và các yêu cầu tuân thủ quy định như GDPR, nhưng không cung cấp materialized view theo mặc định.
  • Delta Lake là một tầng lưu trữ hỗ trợ giao dịch ACID, xử lý hợp nhất các tác vụ batch và streaming đồng thời cung cấp schema enforcement và time travel. Để cải thiện hiệu năng truy vấn, nó tận dụng data skipping hoặc caching thông qua tích hợp với Spark, và cũng hỗ trợ các khái niệm như materialized view thông qua Delta Live Tables riêng biệt. Nó thường được dùng khi muốn bổ sung độ tin cậy và khả năng giao dịch cho nhiều môi trường data lake khác nhau.

Lập luận về LakeDB: lấy cảm hứng từ Napa, học hỏi từ nơi khác

  • Bằng cách kết hợp các ý tưởng đổi mới từ Napa và Apache Pinot, bài viết đề xuất khái niệm LakeDB tích hợp và linh hoạt hơn
  • LakeDB hướng tới một giải pháp quản lý dữ liệu mà ở đó người dùng chỉ cần khai báo yêu cầu của mình (độ mới, chi phí, tính nhất quán, sử dụng chỉ mục...), còn hệ thống sẽ tự tối ưu

1. Tích hợp lưu trữ, nạp dữ liệu, metadata và xử lý truy vấn

  • Lưu trữ, nạp dữ liệu, metadata và xử lý truy vấn đều được gói trong một hệ thống
  • Người dùng chỉ cần chỉ định độ mới và tính nhất quán của dữ liệu, còn các tác vụ cần thiết sẽ được tự động điều chỉnh
  • Iceberg, Hudi và Delta Lake làm tăng độ phức tạp ở phần này vì cần tích hợp thêm công cụ riêng

2. Tối ưu thông minh materialized view và bố cục dữ liệu

  • Tự động chuyển đổi giữa CoW(Copy-on-Write) và MoR(Merge-on-Read) tùy theo workload
  • Tạo và quản lý snapshot cùng materialized view phù hợp theo yêu cầu hiệu năng và chi phí do người dùng định nghĩa
  • Với Hudi, Delta Lake và Iceberg, quá trình này phần lớn vẫn phải cấu hình thủ công

3. Kiểm soát chi tiết độ mới của dữ liệu

  • Giống QT của Napa, nếu người dùng chỉ định mức độ mới mong muốn, hệ thống sẽ tìm điểm cân bằng giữa hiệu năng và chi phí
  • Trong các hệ thống hiện có, việc đảm bảo tính thời gian thực gặp khó khăn vì phải phụ thuộc vào snapshot định kỳ và giám sát

4. Indexing và partitioning nâng cao lấy cảm hứng từ Apache Pinot

  • Hỗ trợ các phương pháp indexing tiên tiến như Star-Tree để có thể xử lý cả phân tích cardinality cao
  • Theo đuổi cải thiện hiệu năng vượt ra ngoài partitioning đơn giản và data skipping của Iceberg và Delta Lake

5. Cấu hình linh hoạt

  • Cùng một bảng có thể được nhiều bên tiêu thụ cấu hình theo các yêu cầu khác nhau về hiệu năng, chi phí và độ tươi của dữ liệu
  • Các hệ thống hiện có bị giới hạn về phạm vi cấu hình, nên cần nhiều tinh chỉnh thủ công để đáp ứng workload đa dạng

6. Hỗ trợ ACID và tiến hóa lược đồ

  • Kế thừa và mở rộng nền tảng ACID cùng tiến hóa lược đồ của Iceberg và Delta Lake
  • Hướng tới tự động hóa việc thay đổi lược đồ đồng thời và đảm bảo tính nhất quán dữ liệu trong môi trường phân tán

7. Tính mở và khả năng mở rộng

  • Hỗ trợ open standard và tích hợp với nhiều query engine, đồng thời có thể mở rộng khi cần
  • Không bị phụ thuộc vào một vendor hay platform cụ thể, và có thể áp dụng linh hoạt các tính năng theo nhu cầu người dùng

Vì sao LakeDB là bước tiến hóa tiếp theo

  • Hiệu năng: Tiệm cận tốc độ ở cấp độ OLAP thông qua chỉ mục nâng cao, materialized view và tối ưu động bố cục dữ liệu
  • Đơn giản: Cung cấp các chức năng quản lý trong một hệ thống duy nhất, người dùng chỉ cần đặt yêu cầu như độ mới dữ liệu hay hiệu năng là hệ thống tự điều chỉnh
  • Hiệu quả: Giảm mức sử dụng tài nguyên và gánh nặng vận hành, từ đó có thể mang lại lợi thế về chi phí
  • Linh hoạt: Có thể đáp ứng nhiều workload khác nhau nhờ khả năng kiểm soát chi tiết độ mới dữ liệu và các tùy chọn cấu hình phong phú
  • Phân tích thời gian thực: Áp dụng kỹ thuật indexing của Apache Pinot để theo đuổi đồng thời độ trễ thấp và thông lượng cao

Kết luận

  • Apache Iceberg, Apache Hudi và Delta Lake đã đóng vai trò lớn trong việc phát triển khái niệm Lakehouse
  • Bằng cách kết hợp cách tiếp cận của Napa từ Google với các ý tưởng đến từ Apache Pinot và những hệ thống khác, có thể hình dung ra một tầm nhìn LakeDB tích hợp và mạnh mẽ hơn
  • LakeDB có tiềm năng trở thành kiến trúc quản lý dữ liệu thế hệ tiếp theo, như một hệ thống tích hợp hoàn chỉnh bao trùm lưu trữ, nạp dữ liệu, metadata và xử lý truy vấn

Chưa có bình luận nào.

Chưa có bình luận nào.