Logo Zephyrnet

Đo lường hiệu suất của Chất lượng dữ liệu AWS Glue cho đường ống ETL | Dịch vụ web của Amazon

Ngày:

Trong những năm gần đây, hồ dữ liệu đã trở thành kiến ​​trúc chủ đạo và việc xác thực chất lượng dữ liệu là yếu tố quan trọng để cải thiện khả năng sử dụng lại và tính nhất quán của dữ liệu. Chất lượng dữ liệu keo AWS giảm nỗ lực cần thiết để xác thực dữ liệu từ hàng ngày xuống hàng giờ và cung cấp các đề xuất, số liệu thống kê và thông tin chi tiết về điện toán về các tài nguyên cần thiết để chạy xác thực dữ liệu.

Chất lượng dữ liệu AWS Glue được xây dựng dựa trên DeeQu, một công cụ nguồn mở được phát triển và sử dụng tại Amazon để tính toán số liệu chất lượng dữ liệu cũng như xác minh các hạn chế về chất lượng dữ liệu cũng như các thay đổi trong phân phối dữ liệu để bạn có thể tập trung vào việc mô tả dữ liệu sẽ trông như thế nào thay vì triển khai các thuật toán.

Trong bài đăng này, chúng tôi cung cấp kết quả điểm chuẩn của việc chạy các bộ quy tắc chất lượng dữ liệu ngày càng phức tạp trên một tập dữ liệu thử nghiệm được xác định trước. Là một phần của kết quả, chúng tôi trình bày cách Chất lượng dữ liệu AWS Glue cung cấp thông tin về thời gian chạy của các tác vụ trích xuất, chuyển đổi và tải (ETL), tài nguyên được đo theo đơn vị xử lý dữ liệu (DPU) và cách bạn có thể theo dõi chi phí chạy Chất lượng dữ liệu AWS Glue cho quy trình ETL bằng cách xác định báo cáo chi phí tùy chỉnh trong AWS Cost Explorer.

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

Chúng tôi bắt đầu bằng cách xác định tập dữ liệu thử nghiệm để khám phá cách Chất lượng dữ liệu AWS Glue tự động chia tỷ lệ tùy thuộc vào tập dữ liệu đầu vào.

Chi tiết tập dữ liệu

Tập dữ liệu thử nghiệm chứa 104 cột và 1 triệu hàng được lưu trữ ở định dạng Parquet. Bạn có thể tải xuống tập dữ liệu hoặc tạo lại nó cục bộ bằng cách sử dụng tập lệnh Python được cung cấp trong kho. Nếu bạn chọn chạy tập lệnh trình tạo, bạn cần cài đặt Gấu trúcmô phỏng các gói trong môi trường Python của bạn:

pip install pandas mimesis

Lược đồ tập dữ liệu là sự kết hợp của các biến số, phân loại và chuỗi để có đủ thuộc tính sử dụng kết hợp Chất lượng dữ liệu AWS Glue tích hợp sẵn các loại quy tắc. Lược đồ này sao chép một số thuộc tính phổ biến nhất được tìm thấy trong dữ liệu thị trường tài chính như mã cổ phiếu, khối lượng giao dịch và dự báo giá.

Bộ quy tắc chất lượng dữ liệu

Chúng tôi phân loại một số loại quy tắc Chất lượng dữ liệu AWS Glue tích hợp để xác định cấu trúc điểm chuẩn. Các danh mục xem xét liệu các quy tắc có thực hiện kiểm tra cột mà không yêu cầu kiểm tra cấp hàng (quy tắc đơn giản), phân tích từng hàng (quy tắc trung bình) hay kiểm tra loại dữ liệu hay không, cuối cùng so sánh giá trị hàng với các nguồn dữ liệu khác (quy tắc phức tạp). ). Bảng sau đây tóm tắt các quy tắc này.

Quy tắc đơn giản Quy tắc trung bình Quy tắc phức tạp
Số cột Giá trị riêng biệtĐếm Giá trị cột
CộtDataType Hoàn tất đầy đủ
CộtTồn tại Tổng Toàn vẹn tham chiếu
Tên cộtTrận đấuMẫu Độ lệch chuẩn CộtTương quan
Đếm số hàng Nghĩa là HàngĐếmTrận Đấu
Độ dài cột . .

Chúng tôi xác định tám công việc AWS Glue ETL khác nhau trong đó chúng tôi chạy bộ quy tắc chất lượng dữ liệu. Mỗi công việc có một số quy tắc chất lượng dữ liệu khác nhau liên quan đến nó. Mỗi công việc cũng có mối liên hệ thẻ phân bổ chi phí do người dùng xác định mà chúng tôi sử dụng để tạo báo cáo chi phí chất lượng dữ liệu trong AWS Cost Explorer sau này.

Chúng tôi cung cấp định nghĩa văn bản thuần túy cho từng bộ quy tắc trong bảng sau.

Tên công việc Quy tắc đơn giản Quy tắc trung bình Quy tắc phức tạp Số lượng quy tắc Nhãn Định nghĩa
bộ quy tắc-0 0 0 0 0 dqjob:rs0
bộ quy tắc-1 0 0 1 1 dqjob:rs1 liên kết
bộ quy tắc-5 3 1 1 5 dqjob:rs5 liên kết
bộ quy tắc-10 6 2 2 10 dqjob:rs10 liên kết
bộ quy tắc-50 30 10 10 50 dqjob:rs50 liên kết
bộ quy tắc-100 50 30 20 100 dqjob:rs100 liên kết
bộ quy tắc-200 100 60 40 200 dqjob:rs200 liên kết
bộ quy tắc-400 200 120 80 400 dqjob:rs400 liên kết

Tạo các công việc AWS Glue ETL chứa các bộ quy tắc chất lượng dữ liệu

Chúng tôi tải lên tập dữ liệu thử nghiệm đến Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) và hai tệp CSV bổ sung mà chúng tôi sẽ sử dụng để đánh giá các quy tắc toàn vẹn tham chiếu trong Chất lượng dữ liệu keo AWS (isocodes.csvtrao đổi.csv) sau khi chúng được thêm vào Danh mục dữ liệu AWS Glue. Hoàn thành các bước sau:

  1. Trên bảng điều khiển Amazon S3, hãy tạo bộ chứa S3 mới trong tài khoản của bạn và tải lên tập dữ liệu thử nghiệm.
  2. Tạo một thư mục trong nhóm S3 có tên isocodes và tải lên isocodes.csv tập tin.
  3. Tạo một thư mục khác trong nhóm S3 có tên là Exchange và tải lên trao đổi.csv tập tin.
  4. Trên bảng điều khiển AWS Glue, hãy chạy hai trình thu thập thông tin của AWS Glue, một trình cho mỗi thư mục để đăng ký nội dung CSV trong Danh mục dữ liệu AWS Glue (data_quality_catalog). Để biết hướng dẫn, hãy tham khảo Thêm trình thu thập keo AWS.

Trình thu thập thông tin của AWS Glue tạo ra hai bảng (exchangesisocodes) như một phần của Danh mục dữ liệu AWS Glue.

Danh mục dữ liệu keo AWS

Bây giờ chúng ta sẽ tạo Quản lý truy cập và nhận dạng AWS (TÔI LÀ) vai trò điều đó sẽ được đảm nhận bởi các công việc ETL khi chạy:

  1. Trên bảng điều khiển IAM, tạo vai trò IAM mới có tên AWSGlueDataQualityPerformanceRole
  2. Trong Loại thực thể đáng tin cậy, lựa chọn Dịch vụ AWS.
  3. Trong Trường hợp dịch vụ hoặc sử dụng, chọn Keo dán.
  4. Chọn Sau.

Lựa chọn thực thể tin cậy AWS IAM

  1. Trong Chính sách cấp phép, đi vào AWSGlueServiceRole
  2. Chọn Sau.
    AWS IAM thêm chính sách quyền
  3. Tạo và đính kèm chính sách nội tuyến mới (AWSGlueDataQualityBucketPolicy) có nội dung sau. Thay thế phần giữ chỗ bằng tên nhóm S3 mà bạn đã tạo trước đó:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "s3:GetObject",
          "Resource": [
            "arn:aws:s3:::<your_Amazon_S3_bucket_name>/*"
          ]
        }
      ]
    }

Tiếp theo, chúng tôi tạo một trong các công việc AWS Glue ETL, ruleset-5.

  1. Trên bảng điều khiển AWS Keo, bên dưới công việc ETL trong ngăn điều hướng, chọn ETL trực quan.
  2. Trong tạp chí Tạo việc làm phần, chọn ETL trực quan.x
    Tổng quan về các công việc hiện có trong AWS Glue Studio
  3. Trong Visual Editor, thêm một Nguồn dữ liệu - Nhóm S3 nút nguồn:
    1. Trong URL S3, hãy nhập thư mục S3 chứa tập dữ liệu thử nghiệm.
    2. Trong Định dạng dữ liệu, chọn Sàn gỗ.

    Tổng quan về nguồn dữ liệu Amazon S3 trong AWS Glue Studio

  4. Tạo một nút hành động mới, Chuyển đổi: Đánh giá-Dữ liệu-Catalog:
  5. Trong Node cha mẹ, chọn nút bạn đã tạo.
  6. Thêm định nghĩa quy tắc-5 Dưới Trình chỉnh sửa quy tắc.
    Quy tắc chất lượng dữ liệu cho Ruleset-5
  7. Cuộn đến cuối và xuống dưới Cấu hình hiệu suất, cho phép Dữ liệu bộ đệm.

Bật tùy chọn dữ liệu bộ đệm

  1. Theo Chi tiết công việc, Cho Vai trò IAM, chọn AWSGlueDataQualityPerformanceRole.
    Chọn vai trò AWS IAM đã tạo trước đó
  2. Trong tạp chí Tag phần, xác định dqjob gắn thẻ là rs5.

Thẻ này sẽ khác nhau đối với từng công việc ETL chất lượng dữ liệu; chúng tôi sử dụng chúng trong AWS Cost Explorer để xem xét chi phí công việc ETL.

Xác định thẻ dqjob cho công việc Ruleset-5

  1. Chọn Lưu.
  2. Lặp lại các bước này với các bộ quy tắc còn lại để xác định tất cả các công việc ETL.

Tổng quan về các công việc được xác định trong AWS Glue Studio

Chạy các tác vụ AWS Glue ETL

Hoàn thành các bước sau để chạy các công việc ETL:

  1. Trên bảng điều khiển AWS Glue, hãy chọn ETL trực quan Dưới công việc ETL trong khung điều hướng.
  2. Chọn công việc ETL và chọn Chạy công việc.
  3. Lặp lại cho tất cả các công việc ETL.

Chọn một công việc AWS Glue và chọn Chạy công việc ở trên cùng bên phải

Khi các công việc ETL hoàn tất, giám sát chạy công việc trang sẽ hiển thị chi tiết công việc. Như được hiển thị trong ảnh chụp màn hình sau đây, một Giờ DPU cột được cung cấp cho mỗi công việc ETL.

Tổng quan về giám sát công việc của AWS Glue

Đánh giá hiệu suất

Bảng sau đây tóm tắt thời lượng, số giờ DPU và chi phí ước tính khi chạy 104 bộ quy tắc chất lượng dữ liệu khác nhau trên cùng một tập dữ liệu thử nghiệm. Lưu ý rằng tất cả các bộ quy tắc đã được chạy với toàn bộ tập dữ liệu thử nghiệm được mô tả trước đó (1 cột, XNUMX triệu hàng).

Tên công việc ETL Số lượng quy tắc Nhãn Thời lượng (giây) Số giờ DPU Số lượng DPU Chi phí ($)
bộ quy tắc-400 400 dqjob:rs400 445.7 1.24 10 $0.54
bộ quy tắc-200 200 dqjob:rs200 235.7 0.65 10 $0.29
bộ quy tắc-100 100 dqjob:rs100 186.5 0.52 10 $0.23
bộ quy tắc-50 50 dqjob:rs50 155.2 0.43 10 $0.19
bộ quy tắc-10 10 dqjob:rs10 152.2 0.42 10 $0.18
bộ quy tắc-5 5 dqjob:rs5 150.3 0.42 10 $0.18
bộ quy tắc-1 1 dqjob:rs1 150.1 0.42 10 $0.18
bộ quy tắc-0 0 dqjob:rs0 53.2 0.15 10 $0.06

Chi phí đánh giá một bộ quy tắc trống gần bằng 3, nhưng nó đã được đưa vào vì nó có thể được sử dụng như một thử nghiệm nhanh để xác thực các vai trò IAM liên quan đến công việc Chất lượng dữ liệu AWS Glue và quyền đọc đối với tập dữ liệu thử nghiệm trong Amazon S100. Chi phí của công việc chất lượng dữ liệu chỉ bắt đầu tăng sau khi đánh giá các bộ quy tắc có hơn XNUMX quy tắc, không đổi dưới con số đó.

Chúng ta có thể nhận thấy rằng chi phí chạy chất lượng dữ liệu cho bộ quy tắc lớn nhất trong điểm chuẩn (400 quy tắc) vẫn cao hơn 0.50 USD một chút.

Phân tích chi phí chất lượng dữ liệu trong AWS Cost Explorer

Để xem thẻ công việc ETL chất lượng dữ liệu trong AWS Cost Explorer, bạn cần phải kích hoạt thẻ phân bổ chi phí do người dùng xác định đầu tiên.

Sau khi bạn tạo và áp dụng thẻ do người dùng xác định cho tài nguyên của mình, có thể mất tối đa 24 giờ để khóa thẻ xuất hiện trên trang thẻ phân bổ chi phí để kích hoạt. Sau đó, có thể mất tới 24 giờ để khóa thẻ kích hoạt.

  1. Trên AWS Trình khám phá chi phí bảng điều khiển, chọn Báo cáo đã lưu của Cost Explorer trong khung điều hướng.
  2. Chọn Tạo báo cáo mới.
    Tạo báo cáo AWS Cost Explorer mới
  3. Chọn Chi phí và cách sử dụng làm loại báo cáo.
  4. Chọn Tạo báo cáo.
    Xác nhận tạo báo cáo AWS Cost Explorer mới
  5. Trong Phạm vi Ngày, nhập một phạm vi ngày.
  6. Trong Độ chi tiếtchọn Hàng ngày.
  7. Trong kích thước, chọn Nhãn, sau đó chọn dqjob tag.
    Báo cáo lựa chọn tham số trong AWS Cost Explorer
  8. Theo Bộ lọc được áp dụng, chọn dqjob thẻ và tám thẻ được sử dụng trong bộ quy tắc chất lượng dữ liệu (rs0, rs1, rs5, rs10, rs50, rs100, rs200 và rs400).
    Chọn tám thẻ dùng để gắn thẻ các tác vụ AWS Glue chất lượng dữ liệu
  9. Chọn Đăng Nhập.

Báo cáo Chi phí và Mức sử dụng sẽ được cập nhật. Trục X hiển thị các thẻ bộ quy tắc chất lượng dữ liệu dưới dạng danh mục. Các Chi phí và cách sử dụng biểu đồ trong AWS Cost Explorer sẽ làm mới và hiển thị tổng chi phí hàng tháng của các công việc ETL chất lượng dữ liệu mới nhất được thực hiện, được tổng hợp theo công việc ETL.

Báo cáo AWS Cost Explorer cho biết chi phí liên quan đến việc thực hiện các công việc tại AWS Glue Studio về chất lượng dữ liệu

Làm sạch

Để dọn dẹp cơ sở hạ tầng và tránh phải trả thêm phí, hãy hoàn thành các bước sau:

  1. Làm trống vùng lưu trữ S3 được tạo ban đầu để lưu trữ tập dữ liệu thử nghiệm.
  2. Xóa các công việc ETL bạn đã tạo trong AWS Glue.
  3. Xóa AWSGlueDataQualityPerformanceRole Vai trò IAM.
  4. Xóa báo cáo tùy chỉnh được tạo trong AWS Cost Explorer.

Kết luận

Chất lượng dữ liệu AWS Glue cung cấp một cách hiệu quả để kết hợp xác thực chất lượng dữ liệu như một phần của quy trình ETL và tự động điều chỉnh quy mô để đáp ứng khối lượng dữ liệu ngày càng tăng. Các loại quy tắc chất lượng dữ liệu tích hợp sẵn cung cấp nhiều tùy chọn để tùy chỉnh việc kiểm tra chất lượng dữ liệu và tập trung vào cách dữ liệu của bạn trông như thế nào thay vì triển khai logic không phân biệt.

Trong phân tích điểm chuẩn này, chúng tôi đã chỉ ra các quy tắc Chất lượng dữ liệu AWS Glue có quy mô phổ biến có ít hoặc không có chi phí hoạt động, trong khi đó trong các trường hợp phức tạp, chi phí sẽ tăng tuyến tính. Chúng tôi cũng đã xem xét cách bạn có thể gắn thẻ các công việc Chất lượng dữ liệu AWS Glue để cung cấp thông tin chi phí trong AWS Cost Explorer nhằm báo cáo nhanh.

Chất lượng dữ liệu keo AWS là Có sẵn ở tất cả các Khu vực AWS có sẵn AWS Glue. Tìm hiểu thêm về Chất lượng dữ liệu AWS Glue và Danh mục dữ liệu AWS Glue trong Bắt đầu với Chất lượng dữ liệu AWS Glue từ Danh mục dữ liệu AWS Glue.


Về các tác giả


Ruben Afonso Francos
Reuben Afonso là Kiến trúc sư giải pháp dịch vụ tài chính toàn cầu của AWS. Anh ấy thích làm việc về các thách thức phân tích và AI/ML, với niềm đam mê tự động hóa và tối ưu hóa. Khi không làm việc, anh ấy thích tìm những địa điểm khuất trên con đường vắng người quanh Barcelona.


Kalyan Kumar Neelampudi (KK)
Kalyan Kumar Neelampudi (KK)
là Kiến trúc sư giải pháp đối tác chuyên nghiệp (Phân tích dữ liệu & AI sáng tạo) tại AWS. Anh đóng vai trò cố vấn kỹ thuật và cộng tác với nhiều đối tác AWS khác nhau để thiết kế, triển khai và xây dựng các biện pháp thực hành liên quan đến phân tích dữ liệu và khối lượng công việc AI/ML. Ngoài công việc, anh ấy là một người đam mê cầu lông và thích phiêu lưu ẩm thực, khám phá ẩm thực địa phương và đi du lịch cùng người yêu để khám phá những hương vị và trải nghiệm mới.

Gonzalo Herreros
Gonzalo Herreros
là một Kiến trúc sư Dữ liệu lớn Cấp cao trong nhóm AWS Glue.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img