Apache Iceberg là gì?
Apache Iceberg là một định dạng bảng dữ liệu nguồn mở 100%, phân tán, hướng tới cộng đồng, được cấp phép Apache 2.0 giúp đơn giản hóa quy trình 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ì tốc độ nhanh, tính hiệu quả và độ tin cậy ở mọi quy mô, cũng như khả năng lưu giữ hồ sơ về mức độ thay đổi của các tập dữ liệu theo thời gian. Apache Iceberg cho phép tích hợp dễ dàng với các khung xử lý dữ liệu phổ biến như Apache Spark, Apache Flink, Apache Hive, Presto, v.v.
Hồ dữ liệu giao dịch là gì?
Hồ dữ liệu là kho tập trung cho phép bạn lưu trữ toàn bộ dữ liệu có cấu trúc và không có cấu trúc ở bất kỳ quy mô nào. Giao dịch dữ liệu là một loạt các trao đổi dữ liệu được thực hiện trong một hoạt động duy nhất. Ví dụ, khi một khách hàng rút tiền từ tài khoản ngân hàng, ngân hàng tiến hành nhiều trao đổi dữ liệu cùng một lúc trong một giao dịch dữ liệu, bao gồm xác minh tài khoản có đủ số dư, xác minh danh tính và ghi nợ việc rút khỏi tài khoản. Hồ dữ liệu trong giao dịch là một loại hồ dữ liệu không chỉ lưu trữ dữ liệu quy mô lớn mà còn hỗ trợ các hoạt động giao dịch và đảm bảo rằng dữ liệu chính xác, nhất quán và cho phép bạn theo dõi cách thức dữ liệu và cấu trúc dữ liệu thay đổi theo thời gian. Các thuộc tính này được gọi chung là Tính nguyên tố, Tính nhất quán, Tách biệt và Bền vững (ACID):
- Tính nguyên tố đảm bảo rằng mỗi giao dịch là một sự kiện duy nhất hoặc thành công hoặc thất bại hoàn toàn; không có trạng thái nửa chiều.
- Tính nhất quán đảm bảo rằng tất cả dữ liệu được ghi đều hợp lệ theo các quy tắc được xác định của hồ dữ liệu, đảm bảo rằng dữ liệu chính xác và đáng tin cậy.
- Tách biệt đảm bảo nhiều giao dịch có thể xảy ra cùng một lúc mà không gây trở ngại cho nhau, đảm bảo rằng mỗi giao dịch thực thi độc lập.
- Bền vững có nghĩa là dữ liệu không bị mất hoặc bị hỏng khi giao dịch được gửi. Dữ liệu có thể được phục hồi trong trường hợp lỗi hệ thống, chẳng hạn như cúp điện.
Lợi ích của việc sử dụng Apache Iceberg là gì?
Một số lợi ích chính của việc sử dụng Apache Iceberg cho hồ dữ liệu giao dịch bao gồm:
- Hiểu biết về SQL: Ngôn ngữ truy vấn có cấu trúc (SQL) là một ngôn ngữ truy vấn phổ biến thường được sử dụng trong tất cả các loại ứng dụng. Các nhà phân tích dữ liệu và nhà phát triển học và sử dụng SQL vì nó tích hợp tốt với các ngôn ngữ lập trình khác nhau và cũng khá dễ học vì nó sử dụng các từ khóa tiếng Anh thông dụng trong các câu lệnh của nó. Apache Iceberg cho phép bất cứ ai quen thuộc với ngôn ngữ truy vấn có cấu trúc (SQL) có thể xây dựng hồ dữ liệu và thực hiện hầu hết các thao tác hồ dữ liệu mà không cần phải học một ngôn ngữ mới.
- Tính nhất quán của dữ liệu: Apache Iceberg cung cấp tính nhất quán của dữ liệu để đảm bảo rằng bất kỳ người dùng nào đọc và ghi vào dữ liệu đều nhìn thấy cùng một dữ liệu.
- Cấu trúc dữ liệu: Apache Iceberg cho phép dễ dàng thay đổi cấu trúc dữ liệu của bạn, còn được gọi là tiến hóa giản đồ, có nghĩa là người dùng có thể thêm, đổi tên hoặc loại bỏ cột khỏi bảng dữ liệu mà không làm gián đoạn dữ liệu cơ bản.
- Lập phiên bản dữ liệu: Apache Iceberg hỗ trợ lập phiên bản dữ liệu, cho phép người dùng theo dõi thay đổi dữ liệu theo thời gian. Điều này cho phép tính năng di chuyển thời gian, cho phép người dùng truy cập và truy vấn các phiên bản cũ của dữ liệu và phân tích các thay đổi dữ liệu giữa cập nhật dữ liệu và xóa dữ liệu.
- Hỗ trợ đa nền tảng: Apache Iceberg hỗ trợ nhiều hệ thống lưu trữ khác nhau và công cụ truy vấn, bao gồm Apache Spark, Apache Hive và Presto. Điều này giúp dễ dàng sử dụng Iceberg trong nhiều môi trường xử lý dữ liệu khác nhau.
- Xử lý gia tăng: Iceberg hỗ trợ xử lý gia tăng, cho phép người dùng chỉ xử lý dữ liệu đã thay đổi kể từ lần chạy cuối cùng, còn được gọi là CDC (Nắm bắt dữ liệu thay đổi). Điều này có thể giúp cải thiện hiệu quả xử lý dữ liệu và hiệu suất.
Các trường hợp sử dụng phổ biến cho Apache Iceberg là gì?
Apache Iceberg phù hợp với nhiều trường hợp sử dụng hồ dữ liệu, bao gồm:
- Bảng dữ liệu trong hồ dữ liệu yêu cầu xóa thường xuyên, chẳng hạn như khi thực thi luật về quyền riêng tư dữ liệu.
- Bảng dữ liệu trong hồ dữ liệu yêu cầu cập nhật mức bản ghi. Điều này rất hữu ích khi tập dữ liệu của bạn yêu cầu cập nhật thường xuyên sau khi dữ liệu ổn định, ví dụ: dữ liệu bán hàng có thể thay đổi do các sự kiện sau bán hàng, chẳng hạn như khách hàng trả lại sản phẩm. Iceberg cung cấp khả năng cập nhật hồ sơ cá nhân mà không cần phải xuất bản lại toàn bộ tập dữ liệu.
- Bảng dữ liệu trong hồ dữ liệu có thay đổi mà không thể đoán trước, chẳng hạn như bảng Loại chiều thay đổi chậm (SCD). Một ví dụ về SCD là một bảng hồ sơ khách hàng bao gồm tên, vị trí và thông tin liên hệ của khách hàng mà có thể thay đổi theo thời gian trong khoảng thời gian không xác định.
- Khi các giao dịch với hồ dữ liệu yêu cầu đảm bảo tính hợp lệ, độ lâu bền và độ tin cậy của dữ liệu, các định dạng bảng Apache Iceberg có thể được triển khai để đảm bảo các giao dịch ACID.
- Khi có nhu cầu quay trở lại để truy vấn các phiên bản cũ của dữ liệu để thực hiện phân tích xu hướng, phân tích các thay đổi đối với dữ liệu trong một khoảng thời gian hoặc khôi phục phiên bản trước đó để khắc phục sự cố.
Ai sử dụng Apache iceberg?
Các kỹ sư dữ liệu, quản trị viên dữ liệu, các nhà phân tích dữ liệu và các nhà khoa học dữ liệu nằm trong số những nhân vật sử dụng Apache Iceberg. Các kỹ sư và quản trị viên dữ liệu có thể sử dụng Apache Iceberg để thiết kế và xây dựng các hệ thống lưu trữ dữ liệu có thể điều chỉnh quy mô. Các nhà phân tích dữ liệu và các nhà khoa học dữ liệu có thể sử dụng Apache Iceberg để phân tích các tập dữ liệu lớn một cách hiệu quả.
Tại sao bạn nên chọn Apache Iceberg?
Apache Iceberg cung cấp cách thức nhanh chóng, hiệu quả để xử lý các tập dữ liệu lớn ở quy mô lớn. Điều này mang lại những lợi ích sau:
- Nguồn mở: Apache Iceberg là một dự án nguồn mở, có nghĩa là nó được sử dụng miễn phí và có thể được tùy chỉnh để đáp ứng nhu cầu cụ thể của bạn. Nó cũng có một cộng đồng tích cực bao gồm các nhà phát triển, những người đang liên tục cải thiện và bổ sung các tính năng mới cho dự án.
- Khả năng điều chỉnh quy mô: Apache Iceberg được thiết kế để xử lý các tập dữ liệu lớn một cách hiệu quả. Nó có thể phân vùng và tổ chức dữ liệu trên nhiều nút, giúp phân phối khối lượng công việc và tăng tốc độ xử lý dữ liệu.
- Hiệu suất: Apache Iceberg có nhiều tính năng để tối ưu hóa hiệu suất truy vấn, bao gồm các kỹ thuật lưu trữ cột và nén như đẩy vị từ xuống và tiến hóa giản đồ.
- Tính linh hoạt: Apache Iceberg cho phép bạn thay đổi cách thức tổ chức dữ liệu của bạn để có thể phát triển theo thời gian mà không yêu cầu bạn phải ghi lại truy vấn của bạn hoặc xây dựng lại cấu trúc dữ liệu. Nó cũng hỗ trợ nhiều định dạng dữ liệu và nguồn dữ liệu, giúp dễ dàng tích hợp với các hệ thống hiện có.
- Độ tin cậy: Apache Iceberg đảm bảo tính nhất quán của dữ liệu và độ tin cậy dữ liệu thông qua hỗ trợ giao dịch. Bạn có thể theo dõi cách thức dữ liệu thay đổi theo thời gian và quay trở lại các phiên bản cũ để giúp bạn khắc phục sự cố.
Những dịch vụ AWS nào hỗ trợ Iceberg?
Apache Iceberg hỗ trợ các khung xử lý dữ liệu phổ biến như Apache Spark, Apache Flink, Apache Hive và Presto. Các dịch vụ của AWS, như Amazon Redshift, Amazon Athena và AWS EMR và Amazon Glue, bao gồm cả dịch vụ hỗ trợ gốc cho các khung hồ dữ liệu giao dịch có Apache Iceberg. Apache Iceberg kết hợp với các dịch vụ AWS được hỗ trợ cho phép một hồ dữ liệu giao dịch, thường dựa trên lưu trữ trong S3.
- Amazon Redshift là một dịch vụ phân tích SQL và lưu trữ dữ liệu được quản lý toàn phần, hỗ trợ AI để thúc đẩy quá trình ra quyết định kinh doanh cho khách hàng một cách nhanh chóng và tiết kiệm chi phí. Amazon Redshift cung cấp kiến trúc xử lý song song hàng loạt (MPP), đa cụm và phi máy chủ với các khả năng không dùng ETL giúp thúc đẩy phân tích gần theo thời gian thực và các trường hợp sử dụng AI/ML với khả năng chia sẻ dữ liệu. Khách hàng có thể sử dụng Amazon Redshift để truy vấn các bảng Apache Iceberg trong hồ dữ liệu, được truy cập thông qua danh mục Dữ liệu AWS Glue và kết hợp với bảng của họ trong kho dữ liệu để phân tích toàn diện.
- Amazon Athena là dịch vụ phân tích tương tác phi máy chủ, được xây dựng trên các khung nguồn mở và hỗ trợ định dạng tệp cũng như bảng mở. Athena mang đến cách thức đơn giản, linh hoạt để phân tích hàng petabyte dữ liệu ở chính nơi lưu trữ dữ liệu đó. Athena cung cấp hỗ trợ gốc cho các truy vấn đọc, di chuyển thời gian, ghi và DDL cho các bảng Apache Iceberg sử dụng định dạng Apache Parquet cho dữ liệu và danh mục AWS Glue cho metastore của chúng.
- Amazon EMR là giải pháp dữ liệu lớn trong việc xử lý dữ liệu ở cấp độ petabyte, phân tích tương tác và công nghệ máy học bằng các khung nguồn mở như Apache Spark, Hadoop, Presto và Hive. Bắt đầu với Amazon EMR 6.5.0, bạn có thể sử dụng Apache Spark 3 trên các cụm Amazon EMR với định dạng bảng Iceberg. Các khung EMR bao gồm Spark, Trino, Flink và Hive hỗ trợ Apache Iceberg.
- AWS Glue là một dịch vụ tích hợp dữ liệu phi máy chủ, giúp người dùng dễ dàng khám phá, chuẩn bị, di chuyển và tích hợp dữ liệu từ nhiều nguồn cho hoạt động phân tích, máy học (ML) và phát triển ứng dụng. AWS Glue phiên bản 3.0 trở lên hỗ trợ khung Apache Iceberg cho các hồ dữ liệu. Bạn có thể sử dụng AWS Glue để thực hiện các thao tác đọc và ghi trên các bảng Iceberg trong Amazon S3 hoặc làm việc với các bảng Iceberg bằng cách sử dụng Danh mục dữ liệu AWS Glue. Các thao tác bổ sung bao gồm chèn, cập nhật và tất cả các truy vấn Spark, ghi Spark cũng được hỗ trợ.