Logo Zephyrnet

Đơn giản hóa quá trình nhập dữ liệu trực tuyến để phân tích bằng Amazon MSK và Amazon Redshift | Dịch vụ web của Amazon

Ngày:

Đến cuối 2022, AWS đã công bố khả năng cung cấp rộng rãi tính năng nhập phát trực tuyến theo thời gian thực đến Amazon RedShift cho Luồng dữ liệu Amazon KinesisTruyền trực tuyến được quản lý của Amazon cho Apache Kafka (Amazon MSK), loại bỏ sự cần thiết phải phân luồng dữ liệu theo giai đoạn Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) trước khi đưa nó vào Amazon Redshift.

Nhập truyền trực tuyến từ Amazon MSK sang Amazon Redshift, thể hiện cách tiếp cận tiên tiến trong xử lý và phân tích dữ liệu theo thời gian thực. Amazon MSK đóng vai trò là dịch vụ có khả năng mở rộng cao và được quản lý hoàn toàn cho Apache Kafka, cho phép thu thập và xử lý liền mạch các luồng dữ liệu khổng lồ. Việc tích hợp dữ liệu phát trực tuyến vào Amazon Redshift mang lại giá trị to lớn bằng cách cho phép các tổ chức khai thác tiềm năng phân tích thời gian thực và ra quyết định dựa trên dữ liệu.

Việc tích hợp này cho phép bạn đạt được độ trễ thấp, tính bằng giây, trong khi nhập hàng trăm megabyte dữ liệu truyền phát mỗi giây vào Amazon Redshift. Đồng thời, việc tích hợp này giúp đảm bảo rằng thông tin cập nhật nhất luôn sẵn có để phân tích. Vì việc tích hợp không yêu cầu dữ liệu dàn dựng trong Amazon S3 nên Amazon Redshift có thể nhập dữ liệu phát trực tuyến ở độ trễ thấp hơn và không mất phí lưu trữ trung gian.

Bạn có thể định cấu hình quá trình truyền tải trực tuyến Amazon Redshift trên cụm Redshift bằng cách sử dụng câu lệnh SQL để xác thực và kết nối với chủ đề MSK. Giải pháp này là một lựa chọn tuyệt vời cho các kỹ sư dữ liệu đang tìm cách đơn giản hóa đường dẫn dữ liệu và giảm chi phí vận hành.

Trong bài đăng này, chúng tôi cung cấp một cái nhìn tổng quan đầy đủ về cách định cấu hình Nhập nội dung phát trực tuyến của Amazon Redshift từ Amazon MSK.

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

Sơ đồ kiến ​​trúc sau đây mô tả các dịch vụ và tính năng AWS mà bạn sẽ sử dụng.

sơ đồ kiến ​​trúc mô tả các dịch vụ và tính năng AWS mà bạn sẽ sử dụng

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

  1. Bạn bắt đầu bằng việc cấu hình một Kết nối Amazon MSK trình kết nối nguồn, để tạo chủ đề MSK, tạo dữ liệu mô phỏng và ghi dữ liệu đó vào chủ đề MSK. Đối với bài đăng này, chúng tôi làm việc với dữ liệu khách hàng mô phỏng.
  2. Bước tiếp theo là kết nối với cụm Redshift bằng cách sử dụng Trình chỉnh sửa truy vấn v2.
  3. Cuối cùng, bạn đặt cấu hình lược đồ bên ngoài và tạo chế độ xem cụ thể hóa trong Amazon Redshift để sử dụng dữ liệu từ chủ đề MSK. Giải pháp này không dựa vào đầu nối chìm MSK Connect để xuất dữ liệu từ Amazon MSK sang Amazon Redshift.

Sơ đồ kiến ​​trúc giải pháp sau đây mô tả chi tiết hơn về cấu hình và tích hợp các dịch vụ AWS mà bạn sẽ sử dụng.
sơ đồ kiến ​​trúc giải pháp mô tả chi tiết hơn về cấu hình và tích hợp các dịch vụ AWS mà bạn sẽ sử dụng
Quy trình làm việc bao gồm các bước sau:

  1. Bạn triển khai trình kết nối nguồn MSK Connect, cụm MSK và cụm Redshift trong các mạng con riêng tư trên VPC.
  2. Trình kết nối nguồn MSK Connect sử dụng các quyền chi tiết được xác định trong một Quản lý truy cập và nhận dạng AWS (IAM) chính sách nội tuyến gắn liền với một Vai trò IAM, cho phép trình kết nối nguồn thực hiện các hành động trên cụm MSK.
  3. Nhật ký trình kết nối nguồn MSK Connect được ghi lại và gửi đến amazoncloudwatch nhóm nhật ký.
  4. Cụm MSK sử dụng một cấu hình cụm MSK tùy chỉnh, cho phép trình kết nối MSK Connect tạo chủ đề trên cụm MSK.
  5. Nhật ký cụm MSK được ghi lại và gửi đến nhóm nhật ký Amazon CloudWatch.
  6. Cụm Redshift sử dụng các quyền chi tiết được xác định trong chính sách nội tuyến IAM gắn với vai trò IAM, cho phép cụm Redshift thực hiện các hành động trên cụm MSK.
  7. Bạn có thể sử dụng Trình soạn thảo truy vấn v2 để kết nối với cụm Redshift.

Điều kiện tiên quyết

Để đơn giản hóa việc cung cấp và cấu hình các tài nguyên tiên quyết, bạn có thể sử dụng cách sau Hình thành đám mây AWS bản mẫu:

Hoàn thành các bước sau khi khởi chạy ngăn xếp:

  1. Trong Tên ngăn xếp, hãy nhập tên có ý nghĩa cho ngăn xếp, ví dụ: prerequisites.
  2. Chọn Tiếp theo.
  3. Chọn Tiếp theo.
  4. 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.
  5. Chọn Gửi đi.

Ngăn xếp CloudFormation tạo các tài nguyên sau:

  • VPC custom-vpc, được tạo trên ba Vùng sẵn sàng, với ba mạng con công cộng và ba mạng con riêng:
    • Các mạng con công cộng được liên kết với một bảng lộ trình công cộng và lưu lượng truy cập ra ngoài được chuyển hướng đến một cổng internet.
    • Các mạng con riêng tư được liên kết với một bảng định tuyến riêng tư và lưu lượng gửi đi được gửi đến cổng NAT.
  • An cổng internet được đính kèm với Amazon VPC.
  • A Cổng NAT cái đó gắn liền với một IP đàn hồi và được triển khai ở một trong các mạng con công cộng.
  • Ba chậu nhóm an ninh:
    • msk-connect-sg, sau này sẽ được liên kết với trình kết nối MSK Connect.
    • redshift-sg, sau này sẽ được liên kết với cụm Redshift.
    • msk-cluster-sg, sau này sẽ được liên kết với cụm MSK. Nó cho phép lưu lượng truy cập vào từ msk-connect-sgredshift-sg.
  • Hai nhóm nhật ký CloudWatch:
    • msk-connect-logs, được sử dụng cho nhật ký MSK Connect.
    • msk-cluster-logs, được sử dụng cho nhật ký cụm MSK.
  • Hai vai trò IAM:
    • msk-connect-role, bao gồm các quyền IAM chi tiết cho MSK Connect.
    • redshift-role, bao gồm các quyền IAM chi tiết cho Amazon Redshift.
  • A cấu hình cụm MSK tùy chỉnh, cho phép trình kết nối MSK Connect tạo chủ đề trên cụm MSK.
  • Một cụm MSK, với ba nhà môi giới được triển khai trên ba mạng con riêng của custom-vpc. Sản phẩm msk-cluster-sg nhóm bảo mật và custom-msk-cluster-configuration cấu hình được áp dụng cho cụm MSK. Nhật ký người môi giới được gửi đến msk-cluster-logs Nhóm nhật ký CloudWatch.
  • A Nhóm mạng con cụm Redshift, đang sử dụng ba mạng con riêng của custom-vpc.
  • Cụm Redshift, với một nút duy nhất được triển khai trong mạng con riêng tư trong nhóm mạng con cụm Redshift. Các redshift-sg nhóm bảo mật và redshift-role Vai trò IAM được áp dụng cho cụm Redshift.

Tạo plugin tùy chỉnh MSK Connect

Đối với bài đăng này, chúng tôi sử dụng một Trình tạo dữ liệu Amazon MSK được triển khai trong MSK Connect, để tạo dữ liệu khách hàng mô phỏng và ghi dữ liệu đó vào chủ đề MSK.

Hoàn thành các bước sau:

  1. Tải về Trình tạo dữ liệu Amazon MSK Tệp JAR có phần phụ thuộc từ GitHub.
    trang github của awslabs để tải xuống tệp jar của trình tạo dữ liệu msk amazon
  2. Tải tệp JAR lên vùng lưu trữ S3 trong tài khoản AWS của bạn.
    Hình ảnh bảng điều khiển amazon s3 hiển thị tệp jar đã tải lên trong nhóm s3
  3. Trên bảng điều khiển Amazon MSK, chọn plugin tùy chỉnh Dưới Kết nối MSK trong khung điều hướng.
  4. Chọn Tạo plugin tùy chỉnh.
  5. Chọn Duyệt qua S3, tìm kiếm tệp JAR của trình tạo dữ liệu Amazon MSK mà bạn đã tải lên Amazon S3, sau đó chọn Chọn.
  6. Trong Tên plugin tùy chỉnh, đi vào msk-datagen-plugin.
  7. Chọn Tạo plugin tùy chỉnh.

Khi plugin tùy chỉnh được tạo, bạn sẽ thấy trạng thái của nó là hoạt động, và bạn có thể chuyển sang bước tiếp theo.
Bảng điều khiển msk của amazon hiển thị plugin tùy chỉnh kết nối msk đang được tạo thành công

Tạo trình kết nối MSK Connect

Hoàn thành các bước sau để tạo trình kết nối của bạn:

  1. Trên bảng điều khiển Amazon MSK, chọn Kết nối Dưới Kết nối MSK trong khung điều hướng.
  2. Chọn Tạo trình kết nối.
  3. Trong Loại plugin tùy chỉnh, chọn Sử dụng plugin hiện có.
  4. Chọn msk-datagen-plugin, sau đó chọn Tiếp theo.
  5. Trong Tên trình kết nối, đi vào msk-datagen-connector.
  6. Trong Loại cụm, chọn Cụm Apache Kafka tự quản lý.
  7. Trong VPC, chọn custom-vpc.
  8. Trong Subnet 1, hãy chọn mạng con riêng tư trong Vùng sẵn sàng đầu tiên của bạn.

Đối với custom-vpc được tạo bởi mẫu CloudFormation, chúng tôi đang sử dụng các phạm vi CIDR lẻ cho mạng con công cộng và thậm chí cả phạm vi CIDR cho mạng con riêng tư:

    • CIDR cho các mạng con công cộng là 10.10.1.0/24, 10.10.3.0/24 và 10.10.5.0/24
    • CIDR cho các mạng con riêng tư là 10.10.2.0/24, 10.10.4.0/24 và 10.10.6.0/24
  1. Trong Subnet 2, hãy chọn mạng con riêng tư trong Vùng sẵn sàng thứ hai của bạn.
  2. Trong Subnet 3, hãy chọn mạng con riêng tư trong Vùng sẵn sàng thứ ba của bạn.
  3. Trong máy chủ bootstrap, hãy nhập danh sách máy chủ khởi động để xác thực TLS cho cụm MSK của bạn.

Đến truy xuất máy chủ khởi động cho cụm MSK của bạn, điều hướng đến bảng điều khiển Amazon MSK, chọn Cụm, chọn msk-cluster, sau đó chọn Xem thông tin khách hàng. Sao chép các giá trị TLS cho máy chủ bootstrap.

  1. Trong Nhóm bảo mật, chọn Sử dụng các nhóm bảo mật cụ thể có quyền truy cập vào cụm này, và lựa chọn msk-connect-sg.
  2. Trong Cấu hình trình kết nối, hãy thay thế cài đặt mặc định bằng cài đặt sau:
connector.class=com.amazonaws.mskdatagen.GeneratorSourceConnector
tasks.max=2
genkp.customer.with=#{Code.isbn10}
genv.customer.name.with=#{Name.full_name}
genv.customer.gender.with=#{Demographic.sex}
genv.customer.favorite_beer.with=#{Beer.name}
genv.customer.state.with=#{Address.state}
genkp.order.with=#{Code.isbn10}
genv.order.product_id.with=#{number.number_between '101','109'}
genv.order.quantity.with=#{number.number_between '1','5'}
genv.order.customer_id.matching=customer.key
global.throttle.ms=2000
global.history.records.max=1000
value.converter=org.apache.kafka.connect.json.JsonConverter
value.converter.schemas.enable=false

  1. Đối với Dung lượng đầu nối, chọn Đã cung cấp.
  2. Trong Số lượng MCU trên mỗi công nhân, chọn 1.
  3. Trong Số lượng công nhân, chọn 1.
  4. Trong cấu hình công nhân, chọn Sử dụng cấu hình mặc định của MSK.
  5. Trong Quyền truy cập, chọn msk-connect-role.
  6. Chọn Tiếp theo.
  7. Đối với Mã hóa, chọn Lưu lượng được mã hóa TLS.
  8. Chọn Tiếp theo.
  9. Trong Nhật ký giao hàng, chọn Cung cấp cho Amazon CloudWatch Logs.
  10. Chọn Xem, lựa chọn msk-connect-logs, và lựa chọn Chọn.
  11. Chọn Tiếp theo.
  12. Xem xét và lựa chọn Tạo trình kết nối.

Sau khi trình kết nối tùy chỉnh được tạo, bạn sẽ thấy trạng thái của nó là Chạy, và bạn có thể chuyển sang bước tiếp theo.
Bảng điều khiển msk của amazon hiển thị trình kết nối kết nối msk đang được tạo thành công

Định cấu hình quá trình nhập nội dung phát trực tiếp của Amazon Redshift cho Amazon MSK

Hãy hoàn tất các bước sau để thiết lập tính năng truyền trực tiếp:

  1. Kết nối với cụm Redshift của bạn bằng Trình soạn thảo truy vấn v2 và xác thực bằng tên người dùng cơ sở dữ liệu awsuser, và mật khẩu Awsuser123.
  2. Tạo lược đồ bên ngoài từ Amazon MSK bằng câu lệnh SQL sau.

Trong đoạn mã sau, nhập các giá trị cho redshift-role Vai trò IAM và msk-cluster cụm ARN.

CREATE EXTERNAL SCHEMA msk_external_schema
FROM MSK
IAM_ROLE '<insert your redshift-role arn>'
AUTHENTICATION iam
CLUSTER_ARN '<insert your msk-cluster arn>';

  1. Chọn chạy để chạy câu lệnh SQL.

Trình soạn thảo truy vấn redshift v2 hiển thị câu lệnh SQL được sử dụng để tạo lược đồ bên ngoài từ amazon msk

  1. Tạo ra một quan điểm vật chất sử dụng câu lệnh SQL sau:
CREATE MATERIALIZED VIEW msk_mview AUTO REFRESH YES AS
SELECT
    "kafka_partition",
    "kafka_offset",
    "kafka_timestamp_type",
    "kafka_timestamp",
    "kafka_key",
    JSON_PARSE(kafka_value) as Data,
    "kafka_headers"
FROM
    "dev"."msk_external_schema"."customer"

  1. Chọn chạy để chạy câu lệnh SQL.

trình soạn thảo truy vấn redshift v2 hiển thị câu lệnh SQL được sử dụng để tạo chế độ xem cụ thể hóa

  1. Bây giờ bạn có thể truy vấn chế độ xem cụ thể hóa bằng câu lệnh SQL sau:
select * from msk_mview LIMIT 100;

  1. Chọn chạy để chạy câu lệnh SQL.

trình soạn thảo truy vấn redshift v2 hiển thị câu lệnh SQL được sử dụng để truy vấn chế độ xem cụ thể hóa

  1. Để theo dõi tiến trình của các bản ghi được tải thông qua quá trình nhập trực tuyến, bạn có thể tận dụng SYS_STREAM_SCAN_STATES chế độ xem giám sát bằng cách sử dụng câu lệnh SQL sau:
select * from SYS_STREAM_SCAN_STATES;

  1. Chọn chạy để chạy câu lệnh SQL.

trình soạn thảo truy vấn redshift v2 hiển thị câu lệnh SQL được sử dụng để truy vấn chế độ xem giám sát trạng thái quét luồng hệ thống

  1. Để theo dõi các lỗi gặp phải trên các bản ghi được tải thông qua quá trình nhập trực tuyến, bạn có thể tận dụng SYS_STREAM_SCAN_ERRORS chế độ xem giám sát bằng cách sử dụng câu lệnh SQL sau:
select * from SYS_STREAM_SCAN_ERRORS;

  1. Chọn chạy để chạy câu lệnh SQL.trình soạn thảo truy vấn redshift v2 hiển thị câu lệnh SQL được sử dụng để truy vấn chế độ xem giám sát lỗi quét luồng hệ thống

Làm sạch

Sau khi làm theo, nếu bạn không cần tài nguyên bạn đã tạo nữa, hãy xóa chúng theo thứ tự sau để tránh phát sinh thêm phí:

  1. Xóa trình kết nối MSK Connect msk-datagen-connector.
  2. Xóa plugin MSK Connect msk-datagen-plugin.
  3. Xóa tệp JAR của trình tạo dữ liệu Amazon MSK mà bạn đã tải xuống và xóa bộ chứa S3 mà bạn đã tạo.
  4. Sau khi xóa trình kết nối MSK Connect, bạn có thể xóa mẫu CloudFormation. Tất cả tài nguyên được tạo bởi mẫu CloudFormation sẽ tự động bị xóa khỏi tài khoản AWS của bạn.

Kết luận

Trong bài đăng này, chúng tôi đã trình bày cách định cấu hình quá trình nhập truyền phát Amazon Redshift từ Amazon MSK, tập trung vào quyền riêng tư và bảo mật.

Sự kết hợp giữa khả năng xử lý luồng dữ liệu thông lượng cao của Amazon MSK với khả năng phân tích mạnh mẽ của Amazon Redshift giúp doanh nghiệp nhanh chóng rút ra những hiểu biết hữu ích. Việc tích hợp dữ liệu theo thời gian thực này giúp tăng cường tính linh hoạt và khả năng phản hồi của các tổ chức trong việc hiểu xu hướng dữ liệu đang thay đổi, hành vi của khách hàng và mô hình hoạt động. Nó cho phép đưa ra quyết định kịp thời và sáng suốt, từ đó đạt được lợi thế cạnh tranh trong bối cảnh kinh doanh năng động ngày nay.

Giải pháp này cũng có thể áp dụng cho những khách hàng đang có nhu cầu sử dụng Máy chủ Amazon MSK không có máy chủAmazon Redshift không có máy chủ.

Chúng tôi hy vọng bài đăng này là cơ hội tốt để tìm hiểu thêm về cấu hình và tích hợp dịch vụ AWS. Hãy cho chúng tôi biết phản hồi của bạn trong phần bình luận.


Giới thiệu về tác giả

Sebastian Vlad là Kiến trúc sư giải pháp đối tác cấp cao của Amazon Web Services, với niềm đam mê về các giải pháp dữ liệu và phân tích cũng như sự thành công của khách hàng. Sebastian làm việc với các khách hàng doanh nghiệp để giúp họ thiết kế và xây dựng các giải pháp hiện đại, an toàn và có thể mở rộng nhằm đạt được kết quả kinh doanh.

Sharad Pai là Cố vấn kỹ thuật chính tại AWS. Anh ấy chuyên về phân tích phát trực tuyến và giúp khách hàng xây dựng các giải pháp có thể mở rộng bằng cách sử dụng Amazon MSK và Amazon Kinesis. Anh có hơn 16 năm kinh nghiệm trong ngành và hiện đang làm việc với các khách hàng truyền thông đang lưu trữ nền tảng phát trực tiếp trên AWS, quản lý số lượng truy cập đồng thời cao nhất lên tới hơn 50 triệu. Trước khi gia nhập AWS, sự nghiệp của Sharad với tư cách là nhà phát triển phần mềm chính bao gồm 9 năm viết mã, làm việc với các công nghệ nguồn mở như JavaScript, Python và PHP.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img