của Leonardo Gomez, Michael Chess, và Derek Liu | ngày 09 tháng 5 năm 2024 | in Analytics, AWS Glue, AWS Lake Formation, Technical How-to | Permalink | Bình luận | Chia sẻ.
Trong bài viết này, chúng tôi sẽ hướng dẫn bạn sử dụng tính năng mới là AWS Glue Data Catalog. Chế độ xem SQL là một công cụ mạnh mẽ được sử dụng trên các cơ sở dữ liệu quan hệ. Bạn có thể sử dụng chế độ xem để giảm thời gian tìm hiểu thông tin chi tiết về dữ liệu bằng cách điều chỉnh dữ liệu được truy vấn. Thêm vào đó, bạn có dùng sức mạnh của SQL trong chế độ xem để thể hiện các ranh giới phức tạp trong dữ liệu trên nhiều bảng mà không thể biểu thị với các quyền đơn giản. Các hồ dữ liệu cung cấp cho khách hàng khả năng linh hoạt cần thiết để rút ra những hiểu biết hữu ích từ dữ liệu trên nhiều nguồn và nhiều trường hợp sử dụng. Người sử dụng dữ liệu có thể sử dụng dữ liệu ở nơi họ cần trong các ngành nghề kinh doanh, tăng tốc độ tạo thông tin chi tiết.
Khách hàng sử dụng nhiều công cụ xử lý khác nhau trong hồ dữ liệu của họ, mỗi công cụ có những phiên bản chế độ xem riêng với những khả năng khác nhau. AWS Glue Data Catalog và AWS Lake Formation cung cấp một vị trí trung tâm để quản lý dữ liệu của bạn trên các công cụ hồ dữ liệu.
AWS Glue đã phát hành một tính năng mới, chế độ xem SQL, cho phép bạn quản lý một đối tượng ở chế độ xem duy nhất trong Data Catalog mà có thể truy vấn được từ các công cụ SQL. Bạn có thể tạo ra một đối tượng ở một chế độ xem duy nhất với phiên bản SQL khác nhau cho từng công cụ bạn muốn truy vấn, chẳng hạn như Amazon Athena, Amazon Redshift và Spark SQL trên Amazon EMR. Sau đó, bạn có thể quản lý quyền truy cập vào những tài nguyên này bằng cách sử dụng cùng các quyền của Lake Formation được dùng để kiểm soát các bảng trong hồ dữ liệu.
Tổng quan về giải pháp
Đối với bài đăng này, chúng tôi sử dụng Women’s E-Commerce Clothing Review. Mục tiêu là tạo ra chế độ xem trong Data Catalog để bạn có thể tạo một lược đồ chế độ xem chung và các đối tượng siêu dữ liệu để sử dụng trên các công cụ ( trong trường hợp này là Athena). Làm như vậy cho phép bạn sử dụng cùng một chế độ xem trên các hồ dữ liệu để phù hợp với trường hợp sử dụng của bạn. Chúng tôi tạo ra một chế độ xem để che cột customer_id trong tập hợp dữ liệu này, sau đó chúng tôi sẽ chia sẻ chế độ xem này với người khác để họ có thể truy trong chế độ xem bị che này.
Chuẩn bị
Trước khi bạn có thể tạo một chế độ xem trong AWS Glue Data Catalog, chắc chắn răng bạn có một AWS Identity and Access Management (IAM) role với cấu hình như bên dưới:
- Trust policy như sau:
- Pass role policy như sau:
- Cuối cùng, bạn cũng sẽ cần các quyền sau:
- “Glue:GetDatabase”,
- “Glue:GetDatabases”,
- “Glue:CreateTable”,
- “Glue:GetTable”,
- “Glue:UpdateTable”,
- “Glue:DeleteTable”,
- “Glue:GetTables”,
- “Glue:SearchTables”,
- “Glue:BatchGetPartition”,
- “Glue:GetPartitions”,
- “Glue:GetPartition”,
- “Glue:GetTableVersion”,
- “Glue:GetTableVersions”
Chạy AWS CloudFormation template
Bạn có thể triển khai AWS CloudFormation template glueviewsblog.yaml để tạo Lake Formation database và table. Tập dữ liệu sẽ được tải vào trong Amazon Simple Storage Service (Amazon S3) bucket.
Để biết hướng dẫn từng bước, hay truy cập Creating a stack on the AWS CloudFormation console.
Khi stack hoàn thành, bạn có thể thấy một table được gọi là clothing_parquet trong bảng điều khiển Lake Formation như hình bên dưới.
Tạo một chế độ xem trong bảng điều khiển Athena
Bây giờ bạn đã có table được quản lý bởi Lake Formation, bạn có thể mở bảng điều khiển Athena và tạo một chế độ xem Data Catalog. Hoàn thành những bước bên dưới:
- Trong Athena query editor, hãy chạy truy vấn sau trên tập dữ liệu Parquet:
SELECT * FROM “clothing_reviews”.”clothing_parquet” limit 10;
Trong kết quả truy vấn, cột customer_id vẫn đang hiển thị.
Tiếp theo, bạn tạo một chế độ xem gọi là hidden_customerID và ẩn đi cột customer_id.
- Tạo chế độ xem gọi là hidden_customerID.
CREATE PROTECTED MULTI DIALECT VIEW clothing_reviews.hidden_customerid SECURITY DEFINER AS
SELECT * FROM clothing_reviews.clothing_parquet
Trong ảnh chụp màn hình sau, bạn có thể thấy chế độ xem có tên là hidden_customerID đã được tạo thành công.
- Chạy truy vấn sau để che bốn ký tự đầu tiên của cột customer_id cho dạng xem mới được tạo:
ALTER VIEW clothing_reviews.hidden_customerid UPDATE DIALECT AS
SELECT ‘****’ || substring(customer_id, 4) as customer_id,clothing_id,age,title,review_text,rating,recommend_ind,positive_feedback,division_name,department_name,class_name
FROM clothing_reviews.clothing_parquet
Bạn có thể thấy trong ảnh chụp màn hình sau đây rằng chế độ xem hidden_customerID có bốn ký tự đầu tiên của cột customer_id bị che.
Bàn ban đầu clothing_parquet vẫn được giữ nguyên như cũ.
Cấp quyền truy cập chế độ xem cho người dùng khác để truy vấn
Những chế độ xem Data Catalog cho phép bạn sử dụng Lake Formation để điều khiển truy cập. Trong bước này, bạn cấp chế độ xem này cho một người dùng khác có tên amazon_business_analyst rồi truy vấn từ người dùng đó.
- Đăng nhập vào bảng điều khiển Lake Formation dưới quyền admin.
- Trong thanh điều hướng, chọn Views.
Như được hiển thị trong ảnh chụp màn hình sau, bạn có thể thấy chế độ xem hidden_customerid.
- Đăng nhập với tư cách là amazon_business_analyst và điều hướng đến trang Views.
Người dùng này không có khả năng hiển thị chế độ xem.
- Cấp quyền cho người dùng amazon_business_analyst là quản trị viên hồ dữ liệu.
- Đăng nhập lại với tên amazon_business_analyst và điều hướng đến trang Views.
- Trên bảng điều khiển Athena, truy vấn chế độ xem hidden_customerid
Bạn đã chia sẻ thành công chế độ xem cho người dùng và truy vấn nó từ bảng điều khiển Athena.
Dọn dẹp tài nguyên
Để tránh phát sinh phí trong tương lai, hãy xóa ngăn xếp CloudFormation. Để biết hướng dẫn, hãy tham khảo Deleting a stack on the AWS CloudFormation console.
Kết luận
Trong bài đăng này, chúng tôi đã trình bày cách sử dụng AWS Glue Data Catalog để tạo ra chế độ xem. Sau đó, chúng tôi đã chỉ ra cách thay đổi chế độ xem và che dấu dữ liệu. Bạn có thể chia sẻ chế độ xem với những người dùng khác nhau để truy vấn bằng Athena. Để biết thêm thông tin về tính năng mới này, hãy tham khảo Using AWS Glue Data Catalog views.
Giới thiệu tác giả
Leonardo Gomez là Kiến trúc sư giải pháp chuyên gia phân tích chính tại AWS. Ông có hơn một thập kỷ kinh nghiệm trong lĩnh vực quản lý dữ liệu, giúp khách hàng trên toàn cầu giải quyết các nhu cầu kinh doanh và kỹ thuật của họ. Kết nối với anh ấy trên LinkedIn
Michael Chess – là Giám đốc sản phẩm của nhóm AWS Lake Formation có trụ sở tại Palo Alto, CA. Anh ấy chuyên về các quyền và tính năng danh mục dữ liệu trong hồ dữ liệu.
Derek Liu – là Kiến trúc sư Giải pháp Cấp cao có trụ sở tại Vancouver, BC. Anh ấy thích giúp đỡ khách hàng giải quyết những thách thức về dữ liệu lớn thông qua các dịch vụ phân tích của AWS.