Logo Zephyrnet

Nâng cao hiệu suất truy vấn bằng cách sử dụng số liệu thống kê cấp cột Danh mục dữ liệu AWS Glue | Dịch vụ web của Amazon

Ngày:

Hôm nay, chúng tôi đang cung cấp một khả năng mới về Keo AWS Danh mục dữ liệu cho phép tạo số liệu thống kê cấp cột cho các bảng AWS Glue. Những số liệu thống kê này hiện được tích hợp với công cụ tối ưu hóa dựa trên chi phí (CBO) của amazon Athena và Amazon Quang phổ dịch chuyển đỏ, dẫn đến hiệu suất truy vấn được cải thiện và tiết kiệm chi phí tiềm năng.

Hồ dữ liệu được thiết kế để lưu trữ lượng lớn dữ liệu thô, không có cấu trúc hoặc bán cấu trúc với chi phí thấp và các tổ chức chia sẻ những bộ dữ liệu đó cho nhiều bộ phận và nhóm. Các truy vấn trên các tập dữ liệu lớn này đọc lượng dữ liệu khổng lồ và có thể thực hiện các thao tác nối phức tạp trên nhiều tập dữ liệu. Khi trò chuyện với khách hàng, chúng tôi biết được rằng một khía cạnh thách thức của hiệu suất hồ dữ liệu là cách tối ưu hóa các truy vấn phân tích này để thực thi nhanh hơn.

Việc tối ưu hóa hiệu suất của hồ dữ liệu đặc biệt quan trọng đối với các truy vấn có nhiều kết nối và đó là lúc trình tối ưu hóa dựa trên chi phí giúp ích nhiều nhất. Để CBO hoạt động, số liệu thống kê theo cột cần được thu thập và cập nhật dựa trên những thay đổi trong dữ liệu. Chúng tôi đang triển khai khả năng tạo số liệu thống kê cấp cột như số lượng riêng biệt, số lượng null, tối đa và tối thiểu trên các tệp như Parquet, ORC, JSON, Amazon ION, CSV, XML trên bảng AWS Glue. Với lần ra mắt này, khách hàng hiện đã có được trải nghiệm toàn diện, trong đó số liệu thống kê trên bảng Glue được thu thập và lưu trữ trong Danh mục AWS Glue, đồng thời cung cấp cho các dịch vụ phân tích để cải thiện việc lập kế hoạch và thực hiện truy vấn.

Bằng cách sử dụng những số liệu thống kê này, trình tối ưu hóa dựa trên chi phí sẽ cải thiện kế hoạch chạy truy vấn và tăng hiệu suất của các truy vấn chạy trong Amazon Athena và Amazon Redshift Spectrum. Ví dụ: CBO có thể sử dụng số liệu thống kê cột như số lượng giá trị riêng biệt và số lượng null để cải thiện dự đoán hàng. Dự đoán hàng là số lượng hàng trong bảng sẽ được trả về sau một bước nhất định trong giai đoạn lập kế hoạch truy vấn. Dự đoán hàng càng chính xác thì các bước thực hiện truy vấn càng hiệu quả. Điều này dẫn đến việc thực hiện truy vấn nhanh hơn và có khả năng giảm chi phí. Một số tối ưu hóa cụ thể mà CBO có thể sử dụng bao gồm sắp xếp lại thứ tự nối và đẩy xuống các tập hợp dựa trên số liệu thống kê có sẵn cho từng bảng và cột.

Đối với khách hàng sử dụng lưới dữ liệu với Sự hình thành hồ AWS quyền, bảng từ các nhà sản xuất dữ liệu khác nhau được liệt kê trong các tài khoản quản trị tập trung. Khi họ tạo số liệu thống kê trên các bảng trên danh mục tập trung và chia sẻ các bảng đó với người tiêu dùng, các truy vấn trên các bảng đó trong tài khoản người tiêu dùng sẽ tự động thấy cải thiện hiệu suất truy vấn. Trong bài đăng này, chúng tôi sẽ chứng minh khả năng của Danh mục dữ liệu AWS Glue trong việc tạo số liệu thống kê cột cho các bảng mẫu của chúng tôi.

Tổng quan về giải pháp

Để chứng minh tính hiệu quả của khả năng này, chúng tôi sử dụng bộ dữ liệu TPC-DS 3 TB tiêu chuẩn ngành được lưu trữ trong Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) thùng công cộng. Chúng tôi sẽ so sánh hiệu suất truy vấn trước và sau khi tạo số liệu thống kê cột cho các bảng bằng cách chạy truy vấn trong Amazon Athena và Amazon Redshift Spectrum. Chúng tôi đang cung cấp các truy vấn mà chúng tôi đã sử dụng trong bài đăng này và chúng tôi khuyến khích bạn thử các truy vấn của riêng bạn theo quy trình làm việc như được minh họa trong các chi tiết sau.

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

  1. Lập danh mục Nhóm Amazon S3: Sử dụng AWS Glue Crawler để thu thập dữ liệu bộ chứa Amazon S3 được chỉ định, trích xuất siêu dữ liệu và lưu trữ liền mạch trong danh mục dữ liệu AWS Glue. Chúng tôi sẽ truy vấn các bảng này bằng Amazon Athena và Amazon Redshift Spectrum.
  2. Tạo số liệu thống kê cột: Sử dụng các khả năng nâng cao của Danh mục dữ liệu AWS Glue để tạo số liệu thống kê cột toàn diện cho dữ liệu được thu thập thông tin, từ đó cung cấp thông tin chuyên sâu có giá trị về tập dữ liệu.
  3. Truy vấn bằng Amazon Athena và Amazon Redshift Spectrum: Đánh giá tác động của số liệu thống kê cột đến hiệu suất truy vấn bằng cách sử dụng Amazon Athena và Amazon Redshift Spectrum để thực hiện các truy vấn trên tập dữ liệu.

Sơ đồ sau minh họa kiến ​​trúc giải pháp.

Hương

Để triển khai giải pháp, chúng tôi hoàn thành các bước sau:

  1. Thiết lập tài nguyên với Hình thành đám mây AWS.
  2. Chạy AWS Glue Crawler trên bộ chứa Amazon S3 công cộng để liệt kê tập dữ liệu TPC-DS 3TB.
  3. Chạy truy vấn trên Amazon Athena và Amazon Redshift và ghi lại thời lượng truy vấn
  4. Tạo số liệu thống kê cho các bảng Danh mục dữ liệu AWS Glue
  5. Chạy truy vấn trên Amazon Athena và Amazon Redshift và so sánh thời lượng truy vấn với lần chạy trước
  6. Tùy chọn: Lên lịch công việc thống kê cột AWS Glue bằng AWS Lambda và Bộ lập lịch Amazon EventBridge

Thiết lập tài nguyên với AWS CloudFormation

Bài đăng này bao gồm một Hình thành đám mây AWS mẫu để thiết lập nhanh chóng. Bạn có thể xem xét và tùy chỉnh nó cho phù hợp với nhu cầu của bạn. Mẫu tạo ra các tài nguyên sau:

  • Đám mây riêng ảo của Amazon (Amazon VPC), mạng con công cộng, mạng con riêng và bảng định tuyến.
  • Nhóm làm việc và không gian tên của Amazon Redshift Serverless.
  • Trình thu thập thông tin AWS Glue để thu thập dữ liệu bộ chứa Amazon S3 công khai và tạo bảng cho Danh mục dữ liệu Glue cho tập dữ liệu TPC-DS
  • Cơ sở dữ liệu và bảng danh mục AWS Glue
  • Bộ chứa Amazon S3 để lưu trữ kết quả Athena.
  • Quản lý truy cập và nhận dạng AWS (AWS IAM) người dùng và chính sách.
  • Bộ lập lịch AWS Lambda và Amazon Event Bridge để lên lịch thống kê Cột AWS Glue

Để khởi chạy ngăn xếp AWS CloudFormation, hãy hoàn thành các bước sau:

Chú thích: Các bảng danh mục dữ liệu AWS Glue được tạo bằng cách sử dụng nhóm công khai s3://blogpost-sparkoneks-us-east-1/blog/BLOG_TPCDS-TEST-3T-partitioned/, được lưu trữ trong us-east-1 vùng đất. Nếu bạn có ý định triển khai mẫu AWS CloudFormation này ở một khu vực khác, bạn cần phải sao chép dữ liệu sang khu vực tương ứng hoặc chia sẻ dữ liệu trong khu vực đã triển khai của mình để có thể truy cập được từ Amazon Redshift.

  1. Đăng nhập vào Bảng điều khiển quản lý AWS dưới dạng Quản lý quyền truy cập và nhận dạng AWS (AWS IAM) người quản lý.
  2. Chọn Khởi chạy ngăn xếp để triển khai mẫu AWS CloudFormation.
  3. Chọn Sau.
  4. Trên trang tiếp theo, giữ tất cả tùy chọn làm mặc định hoặc thực hiện các thay đổi phù hợp dựa trên yêu cầu của bạn. Sau.
  5. Xem lại chi tiết trên trang cuối cùng và chọn Tôi xác nhận rằng AWS CloudFormation có thể tạo tài nguyên IAM.
  6. Chọn Tạo.

Có thể mất khoảng 10 phút để hoàn thành ngăn xếp này, sau đó bạn có thể xem ngăn xếp đã triển khai trên bảng điều khiển AWS CloudFormation.

Chạy Trình thu thập keo AWS được tạo bởi ngăn xếp AWS CloudFormation

Để chạy trình thu thập thông tin của bạn, hãy hoàn tất các bước sau:

  1. Trên bảng điều khiển AWS Glue để Bảng điều khiển keo AWS, hãy chọn Trình thu thập thông tin trong Danh mục dữ liệu trong ngăn điều hướng.
  2. Xác định vị trí và chạy hai trình thu thập thông tin tpcdsdb-without-statstpcdsdb-with-stats. Có thể mất vài phút để hoàn thành.

Khi trình thu thập thông tin hoàn tất thành công, nó sẽ tạo hai cơ sở dữ liệu giống hệt nhau tpcdsdbnostatstpcdsdbwithstats. Các bảng trong tpcdsdbnostats sẽ không có Số liệu thống kê và chúng tôi sẽ sử dụng chúng làm tài liệu tham khảo. Chúng tôi tạo số liệu thống kê trên các bảng trong tpcdsdbwithstats. Vui lòng xác minh rằng bạn có hai cơ sở dữ liệu và bảng cơ bản đó từ Bảng điều khiển AWS Glue. Cơ sở dữ liệu tpcdsdbnostats sẽ trông như dưới đây. Tại thời điểm này không có số liệu thống kê được tạo ra trên các bảng này.

Chạy truy vấn được cung cấp bằng Amazon Athena trên các bảng không có số liệu thống kê

Để chạy truy vấn của bạn trong Amazon Athena trên các bảng không có số liệu thống kê, hãy hoàn thành các bước sau:

  1. Tải xuống các truy vấn athena từ tại đây.
  2. Trên Amazon Bảng điều khiển Athena, chọn từng truy vấn được cung cấp cho các bảng trong cơ sở dữ liệu tpcdsdbnostats.
  3. Chạy truy vấn và ghi lại Thời gian chạy cho mỗi truy vấn.

Chạy truy vấn được cung cấp bằng Amazon Redshift Spectrum trên các bảng không có số liệu thống kê

Để chạy truy vấn của bạn trong Amazon Redshift, hãy hoàn thành các bước sau:

  1. Tải xuống truy vấn Amazon Redshift từ tại đây.
  2. trên Trình chỉnh sửa truy vấn dịch chuyển đỏ v2, thực hiện Truy vấn Redshift cho các bảng không có số liệu thống kê phần từ truy vấn đã tải xuống.
  3. Chạy truy vấn và ghi lại việc thực hiện truy vấn của từng truy vấn.

Tạo số liệu thống kê trên các bảng Danh mục keo AWS

Để tạo số liệu thống kê trên các bảng Danh mục keo AWS, hãy hoàn thành các bước sau:

  1. Điều hướng đến Bảng điều khiển keo AWS và chọn cơ sở dữ liệu trong Danh mục dữ liệu.
  2. Nhấp vào tpcdsdbwithstats cơ sở dữ liệu và nó sẽ liệt kê tất cả các bảng có sẵn.
  3. Chọn bất kỳ bảng nào trong số này (ví dụ: call_center).
  4. Truy cập Thống kê cột – mới tab và chọn Tạo số liệu thống kê.
  5. Giữ tùy chọn mặc định. Dưới Chọn cột giữ Bảng (Tất cả các cột) và dưới Tùy chọn lấy mẫu hàng Giữ Tất cả các hàng, Dưới IAM chọn vai AWSGluestats-blog và chọn Tạo số liệu thống kê.

Bạn sẽ có thể xem trạng thái của quá trình tạo số liệu thống kê như trong hình minh họa sau:

Sau khi tạo số liệu thống kê trên các bảng Danh mục keo AWS, bạn sẽ có thể xem số liệu thống kê cột chi tiết cho bảng đó:

Lặp lại các bước 2–5 để tạo số liệu thống kê cho tất cả các bảng cần thiết, chẳng hạn như catalog_sales, catalog_returns, warehouse, item, date_dim, store_sales, customer, customer_address, web_sales, time_dim, ship_mode, web_site, web_returns. Ngoài ra, bạn có thể làm theo “Lên lịch chạy thống kê AWS Glue” ở gần cuối blog này để tạo số liệu thống kê cho tất cả các bảng. Sau khi thực hiện xong, hãy đánh giá hiệu suất truy vấn cho từng truy vấn.

Chạy truy vấn được cung cấp bằng Bảng điều khiển Athena trên bảng thống kê

  1. Trên Amazon Bảng điều khiển Athena, thực hiện Truy vấn Athena cho các bảng có số liệu thống kê phần từ truy vấn đã tải xuống.
  2. Chạy và ghi lại việc thực hiện truy vấn của từng truy vấn.

Trong lần chạy truy vấn mẫu trên các bảng, chúng tôi đã quan sát thời gian thực hiện truy vấn theo bảng bên dưới. Chúng tôi nhận thấy sự cải thiện rõ ràng về hiệu suất truy vấn, dao động từ 13 đến 55%.

Cải thiện thời gian truy vấn Athena

Truy vấn TPC-DS 3T không có chỉ số keo (giây) với số liệu thống kê keo (giây) cải thiện hiệu suất (%)
Truy vấn 2 33.62 15.17 55%
Truy vấn 4 132.11 72.94 45%
Truy vấn 14 134.77 91.48 32%
Truy vấn 28 55.99 39.36 30%
Truy vấn 38 29.32 25.58 13%

Chạy truy vấn được cung cấp bằng Amazon Redshift Spectrum trên bảng thống kê

  1. Trên Amazon Trình chỉnh sửa truy vấn dịch chuyển đỏ v2, thực hiện Truy vấn Redshift cho các bảng có số liệu thống kê phần từ truy vấn đã tải xuống.
  2. Chạy truy vấn và ghi lại việc thực hiện truy vấn của từng truy vấn.

Trong lần chạy truy vấn mẫu trên các bảng, chúng tôi đã quan sát thời gian thực hiện truy vấn theo bảng bên dưới. Chúng tôi nhận thấy sự cải thiện rõ ràng về hiệu suất truy vấn, dao động từ 13 đến 89%.

Cải thiện thời gian truy vấn Amazon Redshift Spectrum

Truy vấn TPC-DS 3T không có chỉ số keo (giây) với số liệu thống kê keo (giây) cải thiện hiệu suất (%)
Truy vấn 40 124.156 13.12 89%
Truy vấn 60 29.52 16.97 42%
Truy vấn 66 18.914 16.39 13%
Truy vấn 95 308.806 200 35%
Truy vấn 99 20.064 16 20%

Lên lịch chạy thống kê AWS Glue

Trong phần này của bài đăng, chúng tôi sẽ hướng dẫn bạn các bước lên lịch chạy thống kê cột AWS Glue bằng cách sử dụng AWS LambdaSự kiện Amazon Người lập kế hoạch. Để hợp lý hóa quy trình này, hàm AWS Lambda và bộ lập lịch Amazon EventBridge đã được tạo như một phần của quá trình triển khai ngăn xếp CloudFormation.

  1. Thiết lập chức năng AWS Lambda:

Để bắt đầu, chúng tôi sử dụng hàm AWS Lambda để kích hoạt thực thi công việc thống kê cột AWS Glue. Hàm AWS Lambda gọi start_column_statistics_task_run API thông qua thư viện boto3 (AWS SDK cho Python). Điều này đặt nền tảng cho việc tự động cập nhật số liệu thống kê cột.

Hãy cùng khám phá hàm AWS Lambda:

    • Tới Bảng điều khiển Lambda keo AWS.
    • Chọn Chức năng và xác định vị trí GlueTableStatisticsFunctionv1.
    • Để hiểu rõ hơn về hàm AWS Lambda, chúng tôi khuyên bạn nên xem lại mã trong phần và kiểm tra các biến môi trường trong Cấu hình.
  1. Cấu hình bộ lập lịch Amazon EventBridge

Bước tiếp theo liên quan đến việc lên lịch gọi hàm AWS Lambda bằng cách sử dụng Amazon Bộ lập lịch EventBridge. Bộ lập lịch được cấu hình để kích hoạt chức năng AWS Lambda hàng ngày vào một thời điểm cụ thể – trong trường hợp này là 08:00 tối. Điều này đảm bảo rằng công việc thống kê cột AWS Glue chạy thường xuyên và có thể dự đoán được.

Bây giờ, hãy khám phá cách bạn có thể cập nhật lịch trình:

Dọn dẹp

Để tránh các khoản phí không mong muốn đối với tài khoản AWS của bạn, hãy xóa tài nguyên AWS:

  1. Đăng nhập vào bảng điều khiển AWS CloudFormation với tư cách quản trị viên AWS IAM được sử dụng để tạo ngăn xếp AWS CloudFormation.
  2. Xóa ngăn xếp AWS CloudFormation mà bạn đã tạo.

Kết luận

Trong bài đăng này, chúng tôi đã chỉ cho bạn cách bạn có thể sử dụng Danh mục dữ liệu keo AWS để tạo số liệu thống kê cấp cột cho Keo AWS những cái bàn. Những số liệu thống kê này hiện được tích hợp với trình tối ưu hóa dựa trên chi phí từ amazon Athena và Amazon Quang phổ dịch chuyển đỏ, dẫn đến hiệu suất truy vấn được cải thiện và tiết kiệm chi phí tiềm năng. tham khảo Tài liệu để được hỗ trợ Thống kê danh mục Keo trên nhiều dịch vụ phân tích AWS khác nhau.

Nếu bạn có câu hỏi hoặc đề xuất, hãy gửi chúng trong phần bình luận.


Về các tác giả

Sandeep Adwankar là Giám đốc Sản phẩm Kỹ thuật Cấp cao tại AWS. Có trụ sở tại Khu vực Vịnh California, ông làm việc với khách hàng trên toàn cầu để chuyển các yêu cầu kinh doanh và kỹ thuật thành các sản phẩm cho phép khách hàng cải thiện cách họ quản lý, bảo mật và truy cập dữ liệu.

Navinit Shukla đóng vai trò là Kiến trúc sư giải pháp chuyên gia AWS, tập trung vào Phân tích. Anh ấy có niềm đam mê mãnh liệt trong việc hỗ trợ khách hàng khám phá những hiểu biết sâu sắc có giá trị từ dữ liệu của họ. Thông qua chuyên môn của mình, anh xây dựng các giải pháp đổi mới giúp doanh nghiệp đưa ra những lựa chọn sáng suốt và dựa trên dữ liệu. Đáng chú ý, Navnit Shukla là tác giả xuất sắc của cuốn sách có tựa đề Data Wrangling on AWS. Anh ấy có thể liên lạc được qua LinkedIn.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img