Logo Zephyrnet

Hướng dẫn di chuyển từ Databricks Delta Lake sang Apache Iceberg

Ngày:

Giới thiệu

Trong thế giới thay đổi nhanh chóng của lớn xử lý dữ liệu và phân tích, khả năng quản lý tiềm năng của các bộ dữ liệu mở rộng đóng vai trò là trụ cột nền tảng để các công ty đưa ra quyết định sáng suốt. Nó giúp họ rút ra những hiểu biết hữu ích từ dữ liệu của họ. Một loạt các giải pháp đã xuất hiện trong vài năm qua, chẳng hạn như Databricks Delta Lake và Apache Iceberg. Các nền tảng này được phát triển để quản lý hồ dữ liệu và cả hai đều cung cấp các tính năng và chức năng mạnh mẽ. Nhưng đối với các tổ chức, cần phải nắm bắt các sắc thái về mặt kiến ​​trúc, kỹ thuật và chức năng để di chuyển nền tảng hiện có. Bài viết này sẽ khám phá quá trình chuyển đổi phức tạp từ Databricks Delta Lake sang Apache Iceberg.

Mục tiêu học tập

  • Hiểu các tính năng của Databricks và Apache Iceberg.
  • Tìm hiểu cách so sánh các thành phần kiến ​​trúc giữa Databricks và Apache Iceberg.
  • Hiểu các phương pháp hay nhất để di chuyển kiến ​​trúc delta lake sang nền tảng nguồn mở như Iceberg.
  • Để sử dụng các công cụ khác của bên thứ ba thay thế cho nền tảng delta lake.

Bài báo này đã được xuất bản như một phần của Blogathon Khoa học Dữ liệu.

Mục lục

Tìm hiểu về Databricks Delta Lake

Databricks Delta Lake về cơ bản là một lớp lưu trữ phức tạp được xây dựng trên Apache Spark khuôn khổ. Nó cung cấp một số chức năng dữ liệu hiện đại được phát triển để quản lý dữ liệu liền mạch. Hồ Delta có nhiều tính năng cốt lõi khác nhau:

  • Giao dịch ACID: Delta Lake đảm bảo các nguyên tắc nền tảng về Tính nguyên tử, Tính nhất quán, Sự cô lập và Độ bền cho tất cả các sửa đổi trong dữ liệu người dùng, do đó đảm bảo hoạt động dữ liệu mạnh mẽ và hợp lệ.
  • Lược đồ tiến hóa: Tính linh hoạt chủ yếu đến với Hồ Delta, bởi vì nó hỗ trợ liền mạch quá trình phát triển lược đồ, do đó cho phép các ngành thực hiện thay đổi lược đồ mà không làm ảnh hưởng đến quy trình dữ liệu hiện có trong quá trình sản xuất.
  • Thời gian du lịch: Giống như du hành thời gian trong các bộ phim khoa học viễn tưởng, hồ delta cung cấp khả năng truy vấn ảnh chụp nhanh dữ liệu tại các thời điểm cụ thể. Do đó, nó cung cấp cho người dùng khả năng đi sâu vào phân tích lịch sử toàn diện về dữ liệu và khả năng lập phiên bản.
  • Quản lý tập tin được tối ưu hóa: Delta Lake hỗ trợ các kỹ thuật mạnh mẽ để tổ chức và quản lý các tệp dữ liệu và siêu dữ liệu. Nó mang lại hiệu suất truy vấn được tối ưu hóa và giảm chi phí lưu trữ.

Đặc điểm của tảng băng trôi Apache

Apache Iceberg cung cấp giải pháp thay thế cạnh tranh cho các công ty đang tìm kiếm giải pháp quản lý hồ dữ liệu nâng cao. Icebergs đánh bại một số định dạng truyền thống như Parquet hoặc ORC. Có rất nhiều ưu điểm nổi bật:

  • Lược đồ tiến hóa: Người dùng có thể tận dụng tính năng tiến hóa lược đồ trong khi thực hiện các thay đổi lược đồ mà không cần phải viết lại bảng tốn kém.
  • Cách ly ảnh chụp nhanh: Iceberg cung cấp hỗ trợ cho việc cách ly ảnh chụp nhanh, do đó đảm bảo việc đọc và ghi nhất quán. Nó tạo điều kiện thuận lợi cho việc sửa đổi đồng thời trong các bảng mà không ảnh hưởng đến tính toàn vẹn của dữ liệu.
  • Quản lý siêu dữ liệu: Về cơ bản, tính năng này tách siêu dữ liệu khỏi các tệp dữ liệu. Và lưu trữ nó trong một kho lưu trữ chuyên dụng khác với chính các tệp dữ liệu. Nó làm như vậy để tăng hiệu suất và hỗ trợ các hoạt động siêu dữ liệu hiệu quả.
  • Cắt tỉa phân vùng: Tận dụng các kỹ thuật cắt tỉa nâng cao, nó tối ưu hóa hiệu suất truy vấn bằng cách giảm dữ liệu được quét trong quá trình thực hiện truy vấn.

Phân tích so sánh các kiến ​​trúc

Chúng ta hãy đi sâu hơn vào phân tích so sánh các kiến ​​trúc:

Kiến trúc hồ Deltabricks

  • Lớp lưu trữ: Delta Lake tận dụng lưu trữ đám mây chẳng hạn như Amazon S3, Azure Blob làm lớp lưu trữ cơ bản, bao gồm cả tệp dữ liệu và nhật ký giao dịch.
  • Quản lý siêu dữ liệu: Siêu dữ liệu nằm trong nhật ký giao dịch. Do đó, nó dẫn đến hoạt động siêu dữ liệu hiệu quả và đảm bảo tính nhất quán của dữ liệu.
  • Kỹ thuật tối ưu hóa: Hồ Delta sử dụng hàng tấn kỹ thuật tối ưu hóa. Nó bao gồm bỏ qua dữ liệu và sắp xếp theo Z để cải thiện triệt để hiệu suất truy vấn và giảm chi phí trong khi quét dữ liệu.
Kiến trúc hồ Deltabricks

Kiến trúc tảng băng trôi Apache

  • Tách siêu dữ liệu: Có sự khác biệt so với Bảng dữ liệu về mặt tách siêu dữ liệu khỏi các tệp dữ liệu. Tảng băng trôi lưu trữ siêu dữ liệu trong một kho lưu trữ riêng biệt với các tệp dữ liệu.
  • Hỗ trợ giao dịch: Để đảm bảo tính toàn vẹn và độ tin cậy của dữ liệu, Iceberg tự hào có một giao thức giao dịch mạnh mẽ. Giao thức này đảm bảo các hoạt động bảng nguyên tử và nhất quán.
  • Khả năng tương thích: Các động cơ như Apache Spark, Flink và Presto đều tương thích dễ dàng với Iceberg. Các nhà phát triển có thể linh hoạt sử dụng Iceberg với các khung xử lý hàng loạt và thời gian thực này.
Kiến trúc tảng băng trôi Apache

Điều hướng bối cảnh di cư: Những cân nhắc và phương pháp hay nhất

Cần rất nhiều kế hoạch và thực hiện để thực hiện quá trình di chuyển từ Databricks Delta Lake sang Apache Iceberg. Một số cân nhắc cần được thực hiện đó là:

  • Lược đồ tiến hóa: Đảm bảo tính tương thích hoàn hảo giữa tính năng tiến hóa lược đồ của Delta Lake và Iceberg để duy trì tính nhất quán trong quá trình thay đổi lược đồ.
  • Di chuyển dữ liệu: Các chiến lược cần được phát triển và áp dụng phù hợp với các yếu tố như khối lượng dữ liệu, yêu cầu về thời gian ngừng hoạt động và tính nhất quán của dữ liệu.
  • Khả năng tương thích truy vấn: Người ta nên kiểm tra khả năng tương thích truy vấn giữa Delta Lake và Iceberg. Nó sẽ dẫn đến quá trình chuyển đổi suôn sẻ và chức năng truy vấn hiện tại cũng sẽ được giữ nguyên sau quá trình di chuyển.
  • HIỆU QUẢ Kiểm tra: Bắt đầu các thử nghiệm hồi quy và hiệu suất mở rộng để kiểm tra hiệu suất truy vấn. Việc sử dụng tài nguyên cũng cần được kiểm tra giữa Iceberg và Delta Lake. Bằng cách đó, các khu vực tiềm năng có thể được nhận ra để tối ưu hóa.

Đối với việc di chuyển, các nhà phát triển có thể sử dụng một số khung mã được xác định trước từ tài liệu Iceberg và databricks và triển khai tương tự. Các bước được đề cập bên dưới và ngôn ngữ được sử dụng ở đây là Scala:

Bước 1: Tạo bảng Delta Lake

Ở bước đầu tiên, hãy đảm bảo rằng nhóm S3 trống và được xác minh trước khi tiếp tục tạo dữ liệu trong đó. Khi quá trình tạo dữ liệu hoàn tất, hãy thực hiện kiểm tra sau:

Bước 1: Tạo bảng Delta Lake
val data=spark.range(0,5)
data.write.format("delta").save("s3://testing_bucket/delta-table")

spark.read.format("delta").load("s3://testing_bucket/delta-table")
Tạo bảng hồ Delta
Tạo bảng hồ Delta

Thêm mã vắc xin tùy chọn

#adding optional code for vaccum later
val data=spark.range(5,10)
data.write.format("delta").mode("overwrite").save("s3://testing_bucket/delta-table")

Bước 2: CTAS và đọc bảng Delta Lake

#reading delta lake table
spark.read.format("delta").load("s3://testing_bucket/delta-table")

Bước 3: Đọc hồ Delta và ghi vào bảng Iceberg

val df_delta=spark.read.format("delta").load("s3://testing_bucket/delta-table")
df_delta.writeTo("test.db.iceberg_ctas").create()
spark.read.format("iceberg").load("test.db.iceberg.ctas)

Xác minh dữ liệu được đổ vào bảng tảng băng trôi trong S3

Đọc hồ Delta và ghi vào bảng Iceberg
Đọc hồ Delta và ghi vào bảng Iceberg

So sánh các công cụ của bên thứ ba về tính đơn giản, hiệu suất, khả năng tương thích và hỗ trợ. Hai công cụ tức là. AWS Glue DataBrew và Snowflake có bộ chức năng riêng.

AWS Keo DataBrew

Quá trình di chuyển:

  • Dễ sử dụng: AWS Glue DataBrew là sản phẩm trên nền tảng đám mây AWS và cung cấp trải nghiệm thân thiện với người dùng cho các tác vụ chuyển đổi và làm sạch dữ liệu.
  • Tích hợp: Glue DataBrew có thể được tích hợp liền mạch với các dịch vụ đám mây khác của Amazon . Đối với các tổ chức làm việc với AWS có thể sử dụng dịch vụ này.

Bộ tính năng:

  • Chuyển đổi dữ liệu: Nó đi kèm với nhiều tính năng để chuyển đổi dữ liệu (EDA). Nó có thể có ích trong quá trình di chuyển dữ liệu.
  • Hồ sơ tự động: Giống như các công cụ nguồn mở khác, DataBrew tự động lập cấu hình dữ liệu. để phát hiện bất kỳ sự không nhất quán nào và cũng đề xuất các nhiệm vụ chuyển đổi.

Hiệu suất và khả năng tương thích:

  • khả năng mở rộng: Để xử lý các tập dữ liệu lớn hơn có thể gặp phải trong quá trình di chuyển, Glue DataBrew cũng cung cấp khả năng mở rộng để xử lý việc đó.
  • Khả năng tương thích: Nó cung cấp khả năng tương thích với tập hợp định dạng và nguồn dữ liệu rộng hơn, do đó tạo điều kiện tích hợp với các giải pháp lưu trữ khác nhau.

Snowflake

Quá trình di chuyển:

  • Dễ dàng di chuyển: Để đơn giản, Snowflake có các dịch vụ di chuyển giúp người dùng cuối chuyển từ kho dữ liệu hiện có sang nền tảng Snowflake.
  • Tài liệu Toàn diện: Snowflake cung cấp nhiều tài liệu và nguồn tài nguyên dồi dào để bắt đầu quá trình di chuyển.

Bộ tính năng:

  • Khả năng lưu trữ dữ liệu: Nó cung cấp bộ tính năng lưu trữ rộng hơn và hỗ trợ dữ liệu bán cấu trúc, chia sẻ dữ liệu và quản trị dữ liệu.
  • Truy cập đồng thời: Kiến trúc cho phép tính đồng thời cao, phù hợp với các tổ chức có yêu cầu xử lý dữ liệu khắt khe.

Hiệu suất và khả năng tương thích:

  • HIỆU QUẢ: Snowflake cũng có hiệu quả về mặt khả năng mở rộng, cho phép người dùng cuối xử lý khối lượng dữ liệu khổng lồ một cách dễ dàng.
  • Khả năng tương thích: Snowflake cũng cung cấp nhiều trình kết nối khác nhau cho các nguồn dữ liệu khác nhau, do đó đảm bảo khả năng tương thích chéo với các hệ sinh thái dữ liệu khác nhau.
"

Kết luận

Để tối ưu hóa quy trình quản lý kho dữ liệu và kho dữ liệu cũng như thu được kết quả kinh doanh, quá trình chuyển đổi là rất quan trọng đối với các tổ chức. Các ngành có thể tận dụng cả hai nền tảng về khả năng cũng như sự khác biệt về kiến ​​trúc và kỹ thuật, đồng thời quyết định nên chọn nền tảng nào để tận dụng tối đa tiềm năng của bộ dữ liệu của họ. Nó cũng giúp ích cho các tổ chức về lâu dài. Với bối cảnh dữ liệu thay đổi nhanh chóng và linh hoạt, các giải pháp đổi mới có thể giúp các tổ chức luôn cập nhật.

Chìa khóa chính

  • Apache Iceberg cung cấp các tính năng tuyệt vời như cách ly ảnh chụp nhanh, quản lý siêu dữ liệu hiệu quả, cắt bớt phân vùng, do đó giúp cải thiện khả năng quản lý hồ dữ liệu.
  • Di chuyển sang Apache Iceberg liên quan đến việc lập kế hoạch và thực hiện thận trọng. Các tổ chức nên xem xét các yếu tố như tiến hóa lược đồ, chiến lược di chuyển dữ liệu và khả năng tương thích truy vấn.
  • Databricks Delta Lake tận dụng lưu trữ đám mây làm lớp lưu trữ cơ bản, lưu trữ tệp dữ liệu và nhật ký giao dịch, trong khi Iceberg tách siêu dữ liệu khỏi tệp dữ liệu, nâng cao hiệu suất và khả năng mở rộng.
  • Các tổ chức cũng nên xem xét các tác động tài chính như chi phí lưu trữ, phí điện toán, phí cấp phép và bất kỳ nguồn lực đặc biệt nào cần thiết cho việc di chuyển.

Những câu hỏi thường gặp

Q1. Quá trình di chuyển từ Databricks Delta Lake sang Apache Iceberg được thực hiện như thế nào?

A. Nó liên quan đến việc xuất dữ liệu từ Databricks Delta Lake, làm sạch dữ liệu nếu cần và sau đó nhập dữ liệu vào các bảng Apache Iceberg.

Q2. Có sẵn công cụ tự động nào để hỗ trợ việc di chuyển mà không cần can thiệp thủ công không?

Đáp. Các tổ chức thường tận dụng các tập lệnh python/Scala tùy chỉnh và các công cụ ETL để xây dựng quy trình công việc này.

Q3. Những thách thức chung mà các tổ chức gặp phải trong quá trình di chuyển là gì?

Đáp. Một số thách thức rất có thể xảy ra là – tính nhất quán của dữ liệu, xử lý các khác biệt trong quá trình phát triển lược đồ và tối ưu hóa hiệu suất sau di chuyển.

Q4. Sự khác biệt giữa Apache Iceberg và các định dạng bảng khác như Parquet hoặc ORC là gì?

A. Apache Iceberg cung cấp các tính năng như phát triển lược đồ, cách ly ảnh chụp nhanh và quản lý siêu dữ liệu hiệu quả, khác với Parquet và ORC.

Q5. Chúng ta có thể sử dụng Apache Iceberg với các giải pháp lưu trữ dựa trên đám mây không?

A. Chắc chắn rằng, Apache Iceberg tương thích với các giải pháp lưu trữ dựa trên đám mây thường được sử dụng như AWS S3, Azure Blob Storage và Google Cloud Storage.

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định riêng của Tác giả.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img