Logo Zephyrnet

Sử dụng nhiều khóa đánh dấu trong các công việc JDBC của AWS Glue | Dịch vụ web của Amazon

Ngày:

Keo AWS là dịch vụ tích hợp dữ liệu phi máy chủ mà bạn có thể sử dụng để lập danh mục dữ liệu và chuẩn bị cho việc phân tích. Với AWS Glue, bạn có thể khám phá dữ liệu của mình, phát triển tập lệnh để chuyển đổi nguồn thành mục tiêu, đồng thời lên lịch và chạy các công việc trích xuất, chuyển đổi và tải (ETL) trong môi trường không có máy chủ. Công việc AWS Glue chịu trách nhiệm chạy logic xử lý dữ liệu.

Một tính năng quan trọng của công việc AWS Glue là khả năng sử dụng phím đánh dấu để xử lý dữ liệu dần dần. Khi tác vụ AWS Glue được chạy, tác vụ này sẽ đọc dữ liệu từ nguồn dữ liệu và xử lý dữ liệu đó. Một hoặc nhiều cột từ bảng nguồn có thể được chỉ định làm khóa đánh dấu. Cột phải có các giá trị tăng hoặc giảm tuần tự mà không có khoảng trống. Các giá trị này được sử dụng để đánh dấu bản ghi được xử lý cuối cùng trong một đợt. Lần chạy tiếp theo của công việc sẽ tiếp tục từ thời điểm đó. Điều này cho phép bạn xử lý lượng lớn dữ liệu theo từng bước. Nếu không có khóa đánh dấu tác vụ, tác vụ AWS Glue sẽ phải xử lý lại tất cả dữ liệu trong mỗi lần chạy. Điều này có thể tốn thời gian và tốn kém. Bằng cách sử dụng khóa đánh dấu, các tác vụ AWS Glue có thể tiếp tục xử lý từ nơi chúng đã dừng lại, tiết kiệm thời gian và giảm chi phí.

Bài đăng này giải thích cách sử dụng nhiều cột làm khóa đánh dấu công việc trong công việc AWS Glue với kết nối JDBC tới kho dữ liệu nguồn. Nó cũng trình bày cách tham số hóa các cột khóa đánh dấu và tên bảng trong các tùy chọn kết nối tác vụ AWS Glue.

Bài đăng này tập trung vào các kiến ​​trúc sư và kỹ sư dữ liệu, những người thiết kế và xây dựng quy trình ETL trên AWS. Bạn cần có sự hiểu biết cơ bản về Bảng điều khiển quản lý AWS, Keo AWS, Dịch vụ cơ sở dữ liệu quan hệ của Amazon (Amazon RDS)amazoncloudwatch nhật ký.

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

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

  1. tạo một Amazon RDS cho PostgreSQL ví dụ.
  2. Tạo hai bảng và chèn dữ liệu mẫu.
  3. Tạo và chạy tác vụ AWS Glue để trích xuất dữ liệu từ phiên bản RDS cho PostgreSQL DB bằng cách sử dụng nhiều khóa đánh dấu tác vụ.
  4. Tạo và chạy tác vụ AWS Glue được tham số hóa để trích xuất dữ liệu từ các bảng khác nhau bằng các khóa đánh dấu riêng biệt

Sơ đồ sau minh họa các thành phần của giải pháp này.

Triển khai giải pháp

Đối với giải pháp này, chúng tôi cung cấp một Hình thành đám mây AWS mẫu thiết lập các dịch vụ có trong kiến ​​trúc để cho phép triển khai lặp lại. Mẫu này tạo ra các tài nguyên sau:

Để triển khai giải pháp, hãy hoàn thành các bước sau:

  1. Chọn  để khởi chạy ngăn xếp CloudFormation:
  2. Nhập tên ngăn xếp.
  3. Chọn Tôi xác nhận rằng AWS CloudFormation có thể tạo tài nguyên IAM với tên tùy chỉnh.
  4. Chọn Tạo ngăn xếp.
  5. Chờ cho đến khi quá trình tạo ngăn xếp hoàn tất, như được hiển thị trên bảng điều khiển AWS CloudFormation.
  6. Khi ngăn xếp hoàn tất, hãy sao chép tập lệnh AWS Glue vào bộ chứa S3 job-bookmark-keys-demo-<accountid>.
  7. Mở Đám mây AWS.
  8. Chạy các lệnh sau và thay thế <accountid> với ID tài khoản AWS của bạn:
aws s3 cp s3://aws-blogs-artifacts-public/artifacts/BDB-2907/glue/scenario_1_job.py s3://job-bookmark-keys-demo-<accountid>/scenario_1_job.py
aws s3 cp s3://aws-blogs-artifacts-public/artifacts/BDB-2907/glue/scenario_2_job.py s3://job-bookmark-keys-demo-<accountid>/scenario_2_job.py

Thêm dữ liệu mẫu và chạy tác vụ AWS Glue

Trong phần này, chúng tôi kết nối với phiên bản RDS cho PostgreSQL thông qua AWS Lambda và tạo hai bảng. Chúng tôi cũng chèn dữ liệu mẫu vào cả hai bảng.

  1. Trên bảng điều khiển Lambda, chọn Chức năng trong khung điều hướng.
  2. Chọn chức năng LambdaRDSDDLExecute.
  3. Chọn Thử nghiệm Và chọn cầu nguyện để hàm Lambda chèn dữ liệu.


Hai bảng sản phẩm và địa chỉ sẽ được tạo bằng dữ liệu mẫu, như minh họa trong ảnh chụp màn hình sau.

Chạy tác vụ multiple_job_bookmark_keys AWS Glue

Chúng tôi điều hành multiple_job_bookmark_keys Công việc AWS Glue hai lần là trích xuất dữ liệu từ bảng sản phẩm của RDS cho phiên bản PostgreSQL. Trong lần chạy đầu tiên, tất cả các bản ghi hiện có sẽ được trích xuất. Sau đó, chúng tôi chèn bản ghi mới và chạy lại công việc. Công việc chỉ nên trích xuất các bản ghi mới được chèn trong lần chạy thứ hai.

  1. Trên bảng điều khiển AWS Glue, hãy chọn việc làm trong khung điều hướng.
  2. Chọn công việc multiple_job_bookmark_keys.
  3. Chọn chạy để thực hiện công việc và lựa chọn Chạy tab để theo dõi tiến độ công việc.
  4. Chọn Nhật ký đầu ra siêu liên kết bên dưới Nhật ký CloudWatch sau khi công việc hoàn tất.
  5. Chọn luồng nhật ký trong cửa sổ tiếp theo để xem nhật ký đầu ra được in.

    Tác vụ AWS Glue đã trích xuất tất cả bản ghi từ sản phẩm bảng nguồn. Nó theo dõi sự kết hợp cuối cùng của các giá trị trong các cột product_idversion.Tiếp theo, chúng ta chạy một hàm Lambda khác để chèn bản ghi mới. Các product_id 45 đã tồn tại nhưng bản ghi được chèn sẽ có phiên bản mới là 2, làm cho sự kết hợp tăng dần theo thứ tự.
  6. Chạy LambdaRDSDDLExecute_incremental Hàm Lambda để chèn bản ghi mới vào product bảng.
  7. Chạy công việc AWS Glue multiple_job_bookmark_keys một lần nữa sau khi bạn chèn bản ghi và đợi nó thành công.
  8. Chọn siêu liên kết Nhật ký đầu ra trong nhật ký CloudWatch.
  9. Chọn luồng nhật ký trong cửa sổ tiếp theo để chỉ xem bản ghi mới được chèn được in.

Công việc chỉ trích xuất những bản ghi có sự kết hợp lớn hơn các bản ghi được trích xuất trước đó.

Chạy tác vụ AWS Glue tham số_job_bookmark_keys

Bây giờ chúng tôi chạy tác vụ AWS Glue được tham số hóa lấy tên bảng và cột khóa dấu trang làm tham số. Chúng tôi thực hiện công việc này để trích xuất dữ liệu từ các bảng khác nhau và duy trì các dấu trang riêng biệt.

Lần chạy đầu tiên sẽ dành cho bảng địa chỉ với bookmarkkey as address_id. Chúng đã được điền sẵn các thông số công việc.

  1. Trên bảng điều khiển AWS Glue, hãy chọn việc làm trong khung điều hướng.
  2. Chọn công việc parameterised_job_bookmark_keys.
  3. Chọn chạy để thực hiện công việc và lựa chọn Chạy tab để theo dõi tiến độ công việc.
  4. Chọn Nhật ký đầu ra siêu liên kết bên dưới Nhật ký CloudWatch sau khi công việc hoàn tất.
  5. Chọn luồng nhật ký trong cửa sổ tiếp theo để xem tất cả các bản ghi từ bảng địa chỉ được in.
  6. trên Menu hành động, chọn Chạy với tham số.
  7. Mở rộng Thông số công việc phần.
  8. Thay đổi các giá trị tham số công việc như sau:
    • Key --bookmarkkey có giá trị product_id
    • Key --table_name có giá trị product
    • Tên nhóm S3 không thay đổi (job-bookmark-keys-demo-<accountnumber>)
  9. Chọn Chạy công việc để thực hiện công việc và lựa chọn Chạy tab để theo dõi tiến độ công việc.
  10. Chọn Nhật ký đầu ra siêu liên kết bên dưới Nhật ký CloudWatch sau khi công việc hoàn tất.
  11. Chọn luồng nhật ký để xem tất cả các bản ghi từ bảng sản phẩm được in.

Công việc duy trì các dấu trang riêng biệt cho từng bảng khi trích xuất dữ liệu từ kho dữ liệu nguồn. Điều này đạt được bằng cách thêm tên bảng vào tên công việc và bối cảnh chuyển đổi trong tập lệnh công việc AWS Glue.

Làm sạch

Để tránh phát sinh các khoản phí trong tương lai, hãy hoàn thành các bước sau:

  1. Trên bảng điều khiển Amazon S3, chọn trong khung điều hướng.
  2. Chọn nhóm có khóa đánh dấu công việc trong tên của nó.
  3. Chọn Trống để xóa tất cả các tập tin và thư mục trong đó.
  4. Trên bảng điều khiển CloudFormation, hãy chọn Stacks trong khung điều hướng.
  5. Chọn ngăn xếp bạn đã tạo để triển khai giải pháp và chọn Xóa bỏ.

Kết luận

Bài đăng này đã chứng minh việc truyền nhiều hơn một cột của bảng như jobBookmarkKeys trong kết nối JDBC tới tác vụ AWS Glue. Nó cũng giải thích cách bạn có thể thực hiện tác vụ AWS Glue được tham số hóa để trích xuất dữ liệu từ nhiều bảng trong khi vẫn giữ các dấu trang tương ứng của chúng. Bước tiếp theo, bạn có thể kiểm tra việc trích xuất dữ liệu gia tăng bằng cách thay đổi dữ liệu trong bảng nguồn.


Về các tác giả

Durga Prasad là Chuyên gia tư vấn trưởng cấp cao hỗ trợ khách hàng xây dựng các giải pháp Phân tích dữ liệu của họ trên AWS. Anh ấy là người yêu cà phê và thích chơi cầu lông.

Bức tranh tường Reddy là Chuyên gia tư vấn chính tại Amazon Web Services (AWS), giúp khách hàng xây dựng và triển khai giải pháp phân tích dữ liệu. Khi không làm việc, Murali là một người đam mê đạp xe và thích khám phá những địa điểm mới.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img