Logo Zephyrnet

Sử dụng Apache Iceberg trong hồ dữ liệu của bạn với Amazon S3, AWS Glue và Snowflake | Dịch vụ web của Amazon

Ngày:

Bài đăng này được đồng viết với Andries Engelbrecht và Scott Teal từ Snowflake.

Các doanh nghiệp không ngừng phát triển và các nhà lãnh đạo dữ liệu được thử thách hàng ngày để đáp ứng các yêu cầu mới. Đối với nhiều doanh nghiệp và tổ chức lớn, việc có một công cụ hoặc công cụ xử lý để giải quyết các yêu cầu kinh doanh khác nhau là không khả thi. Họ hiểu rằng cách tiếp cận một kích thước phù hợp cho tất cả không còn hiệu quả nữa và nhận ra giá trị của việc áp dụng các công cụ linh hoạt, có thể mở rộng và định dạng dữ liệu mở để hỗ trợ khả năng tương tác trong kiến ​​trúc dữ liệu hiện đại nhằm tăng tốc việc cung cấp các giải pháp mới.

Khách hàng đang sử dụng AWS và Snowflake để phát triển kiến ​​trúc dữ liệu chuyên dụng nhằm cung cấp hiệu suất cần thiết cho các trường hợp sử dụng phân tích hiện đại và trí tuệ nhân tạo (AI). Việc triển khai các giải pháp này yêu cầu chia sẻ dữ liệu giữa các kho dữ liệu được xây dựng có mục đích. Đây là lý do tại sao Snowflake và AWS đang cung cấp hỗ trợ nâng cao cho Apache Iceberg để kích hoạt và hỗ trợ khả năng tương tác dữ liệu giữa các dịch vụ dữ liệu.

Apache Iceberg là một định dạng bảng nguồn mở cung cấp độ tin cậy, đơn giản và hiệu suất cao cho các bộ dữ liệu lớn với tính toàn vẹn giao dịch giữa các công cụ xử lý khác nhau. Trong bài đăng này, chúng tôi thảo luận về những điều sau:

  • Ưu điểm của bảng Iceberg cho hồ dữ liệu
  • Hai mẫu kiến ​​trúc để chia sẻ bảng Iceberg giữa AWS và Snowflake:
    • Quản lý các bảng Iceberg của bạn với Keo AWS Danh mục dữ liệu
    • Quản lý các bảng Iceberg của bạn với Snowflake
  • Quá trình chuyển đổi các bảng hồ dữ liệu hiện có sang bảng Iceberg mà không cần sao chép dữ liệu

Bây giờ bạn đã hiểu rõ về các chủ đề, hãy đi sâu vào chi tiết từng chủ đề.

Ưu điểm của tảng băng trôi Apache

Apache Iceberg là định dạng bảng dữ liệu nguồn mở 2.0%, được cấp phép bởi cộng đồng, được phân phối, hướng tới cộng đồng, giúp đơn giản hóa việc xử lý dữ liệu trên các tập dữ liệu lớn được lưu trữ trong hồ dữ liệu. Các kỹ sư dữ liệu sử dụng Apache Iceberg vì nó nhanh, hiệu quả và đáng tin cậy ở mọi quy mô và lưu giữ hồ sơ về cách các tập dữ liệu thay đổi theo thời gian. Apache Iceberg cung cấp tích hợp với các khung xử lý dữ liệu phổ biến như Apache Spark, Apache Flink, Apache Hive, Presto, v.v.

Bảng Iceberg duy trì siêu dữ liệu cho các bộ sưu tập tệp lớn trừu tượng, cung cấp các tính năng quản lý dữ liệu bao gồm di chuyển thời gian, khôi phục, nén dữ liệu và phát triển lược đồ đầy đủ, giảm chi phí quản lý. Ban đầu được phát triển tại Netflix trước khi được cung cấp nguồn mở cho Quỹ phần mềm Apache, Apache Iceberg là một thiết kế trống để giải quyết các thách thức phổ biến về hồ dữ liệu như kinh nghiệm người dùng, độ tin cậy và hiệu suấtvà hiện được hỗ trợ bởi một cộng đồng các nhà phát triển mạnh mẽ, tập trung vào việc liên tục cải tiến và bổ sung các tính năng mới cho dự án, phục vụ nhu cầu thực sự của người dùng và cung cấp cho họ các tùy chọn.

Hồ dữ liệu giao dịch được xây dựng trên AWS và Snowflake

Snowflake cung cấp nhiều tích hợp khác nhau cho bảng Iceberg với nhiều tùy chọn lưu trữ, bao gồm Amazon S3và nhiều tùy chọn danh mục, bao gồm Danh mục dữ liệu keo AWSSnowflake. AWS cung cấp tích hợp cho nhiều dịch vụ AWS khác nhau với các bảng Iceberg, bao gồm cả Danh mục dữ liệu AWS Glue để theo dõi siêu dữ liệu của bảng. Việc kết hợp Snowflake và AWS mang lại cho bạn nhiều tùy chọn để xây dựng hồ dữ liệu giao dịch cho các trường hợp phân tích và sử dụng khác như chia sẻ và cộng tác dữ liệu. Bằng cách thêm lớp siêu dữ liệu vào hồ dữ liệu, bạn sẽ có được trải nghiệm người dùng tốt hơn, quản lý đơn giản hóa, đồng thời cải thiện hiệu suất và độ tin cậy trên các tập dữ liệu rất lớn.

Quản lý bảng Iceberg của bạn bằng AWS Glue

Bạn có thể sử dụng AWS Glue để nhập, lập danh mục, chuyển đổi và quản lý dữ liệu trên Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3). AWS Glue là dịch vụ tích hợp dữ liệu phi máy chủ cho phép bạn tạo, chạy và giám sát các đường dẫn trích xuất, chuyển đổi và tải (ETL) một cách trực quan để tải dữ liệu vào hồ dữ liệu của bạn ở định dạng Iceberg. Với AWS Glue, bạn có thể khám phá và kết nối với hơn 70 nguồn dữ liệu đa dạng và quản lý dữ liệu của mình trong danh mục dữ liệu tập trung. Bông tuyết tích hợp với Danh mục dữ liệu keo AWS để truy cập danh mục bảng Iceberg và các tệp trên Amazon S3 để thực hiện các truy vấn phân tích. Điều này cải thiện đáng kể hiệu suất và chi phí tính toán so với bảng bên ngoài trên Snowflake, vì siêu dữ liệu bổ sung cải thiện việc cắt bớt trong kế hoạch truy vấn.

Bạn có thể sử dụng tính năng tích hợp tương tự này để tận dụng khả năng cộng tác và chia sẻ dữ liệu trong Snowflake. Điều này có thể rất hữu ích nếu bạn có dữ liệu trong Amazon S3 và cần bật chia sẻ dữ liệu Snowflake với các đơn vị kinh doanh, đối tác, nhà cung cấp hoặc khách hàng khác.

Sơ đồ kiến ​​trúc sau đây cung cấp cái nhìn tổng quan ở mức độ cao về mẫu này.

Quy trình làm việc bao gồm các bước sau:

  1. AWS Glue trích xuất dữ liệu từ ứng dụng, cơ sở dữ liệu và nguồn phát trực tuyến. Sau đó, AWS Glue biến đổi và tải dữ liệu đó vào hồ dữ liệu trong Amazon S3 ở định dạng bảng Iceberg, đồng thời chèn và cập nhật siêu dữ liệu về bảng Iceberg trong Danh mục dữ liệu AWS Glue.
  2. Trình thu thập thông tin của AWS Glue tạo và cập nhật siêu dữ liệu của bảng Iceberg cũng như lưu trữ siêu dữ liệu đó trong Danh mục dữ liệu AWS Glue cho các bảng Iceberg hiện có trên hồ dữ liệu S3.
  3. Snowflake tích hợp với Danh mục dữ liệu AWS Glue để truy xuất vị trí ảnh chụp nhanh.
  4. Trong trường hợp có truy vấn, Snowflake sử dụng vị trí kết xuất nhanh từ Danh mục dữ liệu AWS Glue để đọc dữ liệu bảng Iceberg trong Amazon S3.
  5. Snowflake có thể truy vấn trên các định dạng bảng Iceberg và Snowflake. Bạn có thể chia sẻ dữ liệu để cộng tác với một hoặc nhiều tài khoản trong cùng khu vực Bông tuyết. Bạn cũng có thể sử dụng dữ liệu trong Snowflake cho hình dung sử dụng Amazon QuickSight, hoặc sử dụng nó cho mục đích học máy (ML) và trí tuệ nhân tạo (AI) với Amazon SageMaker.

Quản lý bảng Iceberg của bạn với Snowflake

Mẫu thứ hai cũng cung cấp khả năng tương tác trên AWS và Snowflake, nhưng triển khai các quy trình kỹ thuật dữ liệu để nhập và chuyển đổi sang Snowflake. Trong mẫu này, dữ liệu được Snowflake tải vào bảng Iceberg thông qua tích hợp với các dịch vụ AWS như AWS Glue hoặc thông qua các nguồn khác như Snowpipe. Sau đó, Snowflake ghi dữ liệu trực tiếp vào Amazon S3 ở định dạng Iceberg để Snowflake và các dịch vụ AWS khác nhau truy cập tiếp theo, đồng thời Snowflake quản lý danh mục Iceberg để theo dõi các vị trí ảnh chụp nhanh trên các bảng để dịch vụ AWS truy cập.

Giống như mẫu trước, bạn có thể sử dụng các bảng Iceberg do Snowflake quản lý với tính năng chia sẻ dữ liệu Snowflake, nhưng bạn cũng có thể sử dụng S3 để chia sẻ tập dữ liệu trong trường hợp một bên không có quyền truy cập vào Snowflake.

Sơ đồ kiến ​​trúc sau đây cung cấp cái nhìn tổng quan về mẫu này với các bảng Iceberg do Snowflake quản lý.

Quy trình công việc này bao gồm các bước sau:

  1. Ngoài việc tải dữ liệu qua Lệnh COPY, ống tuyếttrình kết nối Bông tuyết gốc dành cho AWS Glue, bạn có thể tích hợp dữ liệu qua Snowflake Chia sẻ dữ liệu.
  2. Snowflake ghi các bảng Iceberg vào Amazon S3 và tự động cập nhật siêu dữ liệu với mọi giao dịch.
  3. Các bảng Iceberg trong Amazon S3 được Snowflake truy vấn về khối lượng công việc phân tích và ML bằng cách sử dụng các dịch vụ như QuickSight và SageMaker.
  4. Các dịch vụ Apache Spark trên AWS có thể truy cập các vị trí chụp nhanh từ Snowflake thông qua SDK danh mục Snowflake Iceberg và quét trực tiếp các tệp bảng Iceberg trong Amazon S3.

So sánh các giải pháp

Hai mẫu này nêu bật các tùy chọn có sẵn cho các cá nhân dữ liệu ngày nay để tối đa hóa khả năng tương tác dữ liệu giữa Snowflake và AWS bằng cách sử dụng Apache Iceberg. Nhưng mẫu nào là lý tưởng cho trường hợp sử dụng của bạn? Nếu bạn đang sử dụng Danh mục dữ liệu AWS Glue và chỉ yêu cầu Snowflake cho các truy vấn đọc thì mẫu đầu tiên có thể tích hợp Snowflake với AWS Glue và Amazon S3 để truy vấn các bảng Iceberg. Nếu bạn chưa sử dụng Danh mục dữ liệu AWS Glue và yêu cầu Snowflake thực hiện đọc và ghi thì mẫu thứ hai có thể là giải pháp tốt cho phép lưu trữ và truy cập dữ liệu từ AWS.

Xem xét rằng việc đọc và ghi có thể sẽ hoạt động trên cơ sở từng bảng thay vì toàn bộ kiến ​​trúc dữ liệu, nên sử dụng kết hợp cả hai mẫu.

Di chuyển các hồ dữ liệu hiện có sang hồ dữ liệu giao dịch bằng Apache Iceberg

Bạn có thể chuyển đổi các bảng hồ dữ liệu dựa trên Parquet, ORC và Avro hiện có trên Amazon S3 sang định dạng Iceberg để tận dụng lợi ích của tính toàn vẹn giao dịch đồng thời cải thiện hiệu suất và trải nghiệm người dùng. Có một số tùy chọn di chuyển bảng Iceberg (TÓM TẮT, DI CƯTHÊM CÁC TẬP TIN) để di chuyển tại chỗ các bảng hồ dữ liệu hiện có sang định dạng Iceberg, tốt hơn là viết lại tất cả các tệp dữ liệu cơ bản—một nỗ lực tốn kém và tốn thời gian với các tập dữ liệu lớn. Trong phần này, chúng tôi tập trung vào ADD_FILES vì nó hữu ích cho việc di chuyển tùy chỉnh.

Đối với tùy chọn ADD_FILES, bạn có thể sử dụng AWS Glue để tạo siêu dữ liệu và số liệu thống kê Iceberg cho bảng hồ dữ liệu hiện có, đồng thời tạo bảng Iceberg mới trong Danh mục dữ liệu AWS Glue để sử dụng trong tương lai mà không cần ghi lại dữ liệu cơ bản. Để biết hướng dẫn về cách tạo siêu dữ liệu và số liệu thống kê của Iceberg bằng AWS Glue, hãy tham khảo Di chuyển hồ dữ liệu hiện có sang hồ dữ liệu giao dịch bằng Apache Iceberg or Chuyển đổi các bảng hồ dữ liệu Amazon S3 hiện có thành bảng Snowflake Unmanaged Iceberg bằng AWS Glue.

Tùy chọn này yêu cầu bạn tạm dừng đường dẫn dữ liệu trong khi chuyển đổi tệp sang bảng Iceberg. Đây là một quy trình đơn giản trong AWS Glue vì chỉ cần thay đổi đích thành bảng Iceberg.

Kết luận

Trong bài đăng này, bạn đã biết hai mẫu kiến ​​trúc để triển khai Apache Iceberg trong hồ dữ liệu để có khả năng tương tác tốt hơn trên AWS và Snowflake. Chúng tôi cũng cung cấp hướng dẫn về cách di chuyển các bảng hồ dữ liệu hiện có sang định dạng Iceberg.

Đăng ký Ngày phát triển AWS vào ngày 10 tháng XNUMX để thực hành không chỉ với Apache Iceberg mà còn với các đường dẫn dữ liệu truyền trực tuyến với Firehose dữ liệu của AmazonTruyền trực tuyến Snowpipevà các ứng dụng AI tổng hợp với Streamlit trong bông tuyếtnền tảng Amazon.


Về các tác giả

Andries Engelbrecht là Kiến trúc sư Giải pháp Đối tác Chính tại Snowflake và làm việc với các đối tác chiến lược. Ông tích cực tham gia với các đối tác chiến lược như AWS hỗ trợ tích hợp sản phẩm và dịch vụ cũng như phát triển các giải pháp chung với các đối tác. Andries có hơn 20 năm kinh nghiệm trong lĩnh vực dữ liệu và phân tích.

Deenbandhu Prasad là Chuyên gia phân tích cấp cao tại AWS, chuyên về các dịch vụ dữ liệu lớn. Anh ấy rất nhiệt tình giúp đỡ khách hàng xây dựng kiến ​​trúc dữ liệu hiện đại trên Đám mây AWS. Ông đã giúp khách hàng thuộc mọi quy mô triển khai các giải pháp quản lý dữ liệu, kho dữ liệu và hồ dữ liệu.

Brian Dolan gia nhập Amazon với tư cách là Giám đốc Quan hệ Quân sự vào năm 2012 sau sự nghiệp đầu tiên của ông với tư cách là Phi công Hải quân. Năm 2014, Brian gia nhập Amazon Web Services, nơi anh giúp các khách hàng Canada từ công ty khởi nghiệp đến doanh nghiệp khám phá Đám mây AWS. Gần đây nhất, Brian là thành viên của Nhóm Phát triển kinh doanh phi quan hệ với tư cách là Chuyên gia tiếp cận thị trường cho Amazon DynamoDB và Amazon Keyspaces trước khi gia nhập Tổ chức chuyên gia phân tích toàn cầu vào năm 2022 với tư cách là Chuyên gia tiếp cận thị trường cho AWS Glue.

Nidhi Gupta là Kiến trúc sư giải pháp đối tác cấp cao tại AWS. Cô dành cả ngày để làm việc với khách hàng và đối tác, giải quyết những thách thức về kiến ​​trúc. Cô ấy đam mê tích hợp và điều phối dữ liệu, xử lý dữ liệu lớn và không có máy chủ cũng như học máy. Nidhi có nhiều kinh nghiệm chỉ đạo thiết kế kiến ​​trúc, phát hành và triển khai sản xuất cho khối lượng công việc dữ liệu.

Scott Teal là Trưởng nhóm tiếp thị sản phẩm tại Snowflake và tập trung vào hồ dữ liệu, lưu trữ và quản trị.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img