Logo Zephyrnet

Sử dụng Snowflake với Amazon MWAA để điều phối đường dẫn dữ liệu | Dịch vụ web của Amazon

Ngày:

Bài đăng trên blog này được đồng viết với James Sun từ Snowflake.

Khách hàng dựa vào dữ liệu từ các nguồn khác nhau như ứng dụng di động, sự kiện nhấp chuột từ trang web, dữ liệu lịch sử, v.v. để suy ra các mẫu có ý nghĩa nhằm tối ưu hóa sản phẩm, dịch vụ và quy trình của họ. Với đường dẫn dữ liệu, là một tập hợp các tác vụ được sử dụng để tự động hóa việc di chuyển và chuyển đổi dữ liệu giữa các hệ thống khác nhau, bạn có thể giảm thời gian và công sức cần thiết để hiểu rõ hơn về dữ liệu. Luồng khí ApacheSnowflake đã nổi lên như những công nghệ mạnh mẽ để quản lý và phân tích dữ liệu.

Quy trình công việc được quản lý của Amazon cho Luồng khí Apache (Amazon MWAA) là dịch vụ điều phối quy trình làm việc được quản lý dành cho Apache Airflow mà bạn có thể sử dụng để thiết lập và vận hành đường dẫn dữ liệu đầu cuối trên đám mây ở quy mô lớn. Đám mây dữ liệu Snowflake cung cấp một nguồn sự thật duy nhất cho tất cả các nhu cầu dữ liệu của bạn và cho phép tổ chức của bạn lưu trữ, phân tích và chia sẻ lượng lớn dữ liệu. Cộng đồng nguồn mở Apache Airflow cung cấp hơn 1,000 toán tử dựng sẵn (plugin giúp đơn giản hóa kết nối với dịch vụ) để Apache Airflow xây dựng đường dẫn dữ liệu.

Trong bài đăng này, chúng tôi cung cấp tổng quan về việc sắp xếp đường dẫn dữ liệu của bạn bằng cách sử dụng Toán tử bông tuyết trong môi trường Amazon MWAA của bạn. Chúng tôi xác định các bước cần thiết để thiết lập tích hợp giữa Amazon MWAA và Snowflake. Giải pháp này cung cấp quy trình làm việc tự động từ đầu đến cuối, bao gồm nhập, chuyển đổi, phân tích và tiêu thụ dữ liệu.

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

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

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

Dữ liệu được sử dụng để chuyển đổi và phân tích dựa trên thông tin có sẵn công khai Bộ dữ liệu Citi Bike ở New York. Dữ liệu (tệp nén), bao gồm thông tin nhân khẩu học của người lái và dữ liệu chuyến đi, được sao chép từ Citi Bike công cộng Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) trong tài khoản AWS của bạn. Dữ liệu được giải nén và lưu trữ trong một bộ chứa S3 khác (dữ liệu đã chuyển đổi có thể được lưu trữ trong cùng một bộ chứa S3 nơi dữ liệu được nhập, nhưng để đơn giản, chúng tôi đang sử dụng hai bộ chứa S3 riêng biệt). Dữ liệu được chuyển đổi sau đó được Snowflake có thể truy cập được để phân tích dữ liệu. Đầu ra của dữ liệu được truy vấn được xuất bản tới Dịch vụ thông báo đơn giản của Amazon (Amazon SNS) để tiêu dùng.

Amazon MWAA sử dụng một biểu đồ xoay chiều có hướng (DAG) để chạy các quy trình công việc. Trong bài đăng này, chúng tôi chạy ba DAG:

Sơ đồ sau minh họa quy trình làm việc này.

Quy trình chạy DAG

Xem Repo GitHub đối với DAG và các tệp khác liên quan đến bài đăng.

Lưu ý rằng trong bài đăng này, chúng tôi đang sử dụng DAG để tạo kết nối Bông tuyết, nhưng bạn cũng có thể tạo kết nối Bông tuyết bằng cách sử dụng Giao diện người dùng luồng khí hoặc CLI.

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

Để triển khai giải pháp, bạn cần có hiểu biết cơ bản về Snowflake và Amazon MWAA với các điều kiện tiên quyết sau:

  • Một tài khoản AWS trong Khu vực AWS nơi Amazon MWAA được hỗ trợ.
  • Tài khoản Snowflake có thông tin đăng nhập của quản trị viên. Nếu bạn chưa có tài khoản, hãy đăng ký một 30 ngày dùng thử miễn phí. Chọn phiên bản doanh nghiệp Snowflake cho nền tảng Đám mây AWS.
  • Truy cập vào Amazon MWAA, Trình quản lý bí mật và Amazon SNS.
  • Trong bài đăng này, chúng tôi đang sử dụng hai nhóm S3, được gọi là airflow-blog-bucket-ACCOUNT_IDcitibike-tripdata-destination-ACCOUNT_ID. Amazon S3 hỗ trợ các nhóm chung, nghĩa là mỗi tên nhóm phải là duy nhất trên tất cả các tài khoản AWS ở tất cả các Khu vực trong một phân vùng. Nếu tên vùng lưu trữ S3 đã được sử dụng, hãy chọn tên vùng lưu trữ S3 khác. Tạo nhóm S3 trong tài khoản AWS của bạn. Chúng tôi tải nội dung lên nhóm S3 ở phần sau của bài đăng. Thay thế ACCOUNT_ID bằng ID tài khoản AWS của riêng bạn hoặc bất kỳ mã định danh duy nhất nào khác. Chi tiết thùng như sau:
    • luồng không khí-blog-bucket-ACCOUNT_ID – Nhóm cấp cao nhất dành cho các tệp liên quan đến Amazon MWAA.
    • luồng không khí-blog-bucket-ACCOUNT_ID/requirements - Thùng dùng để đựng Yêu cầu.txt tập tin cần thiết để triển khai Amazon MWAA.
    • luồng không khí-blog-bucket-ACCOUNT_ID/dags – Khóa được sử dụng để lưu trữ các tệp DAG để chạy quy trình công việc trong Amazon MWAA.
    • luồng không khí-blog-bucket-ACCOUNT_ID/dags/mwaa_snowflake_queries – Nhóm được sử dụng để lưu trữ các truy vấn SQL của Snowflake.
    • citibike-tripdata-destination-ACCOUNT_ID – Thùng dùng để lưu trữ tập dữ liệu đã chuyển đổi.

Khi triển khai giải pháp trong bài đăng này, hãy thay thế các tham chiếu đến airflow-blog-bucket-ACCOUNT_IDcitibike-tripdata-destination-ACCOUNT_ID với tên của nhóm S3 của riêng bạn.

Thiết lập môi trường Amazon MWAA

Bạn đầu tiên tạo môi trường Amazon MWAA. Trước khi triển khai môi trường, hãy tải lên yêu cầu nộp vào airflow-blog-bucket-ACCOUNT_ID/requirements Xô S3. Tệp yêu cầu dựa trên Amazon MWAA phiên bản 2.6.3. Nếu bạn đang thử nghiệm trên một phiên bản Amazon MWAA khác, cập nhật tập tin yêu cầu cho phù hợp.

Hoàn thành các bước sau để thiết lập môi trường:

  1. Trên bảng điều khiển Amazon MWAA, hãy chọn Tạo môi trường.
  2. Cung cấp tên bạn chọn cho môi trường.
  3. Chọn Airflow phiên bản 2.6.3.
  4. Đối với nhóm S3, hãy nhập đường dẫn của nhóm của bạn (s3:// airflow-blog-bucket-ACCOUNT_ID).
  5. Đối với thư mục DAGs, nhập đường dẫn thư mục DAGs (s3:// airflow-blog-bucket-ACCOUNT_ID/dags).
  6. Đối với tệp yêu cầu, nhập đường dẫn tệp yêu cầu (s3:// airflow-blog-bucket-ACCOUNT_ID/ requirements/requirements.txt).
  7. Chọn Sau.
  8. Theo mạng, hãy chọn VPC hiện tại của bạn hoặc chọn Tạo MWAA VPC.
  9. Theo Quyền truy cập máy chủ web, chọn Mạng công cộng.
  10. Theo Nhóm bảo mật, rời bỏ Tạo nhóm bảo mật mới đã chọn.
  11. Đối với Lớp môi trường, EncryptionGiám sát phần, hãy để tất cả các giá trị làm mặc định.
  12. Trong tạp chí Tùy chọn cấu hình luồng không khí phần, chọn Thêm giá trị cấu hình tùy chỉnh và cấu hình hai giá trị:
    1. Thiết lập Tùy chọn cấu hình đến secrets.backendGiá trị tùy chỉnh đến airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend.
    2. Thiết lập Tùy chọn cấu hình đến secrets.backend_kwargsGiá trị tùy chỉnh đến {"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}.                      Tùy chọn cấu hình cho trình quản lý bí mật
  13. Trong tạp chí Quyền phần, để nguyên cài đặt mặc định và chọn Tạo một vai trò mới.
  14. Chọn Sau.
  15. Khi môi trường Amazon MWAA khả dụng, hãy gán quyền vùng lưu trữ S3 cho Quản lý truy cập và nhận dạng AWS (IAM) (được tạo trong quá trình cài đặt Amazon MWAA).

Vai trò thực thi MWAA
Thao tác này sẽ hướng bạn đến vai trò thực thi đã tạo trên bảng điều khiển IAM.

Với mục đích thử nghiệm, bạn có thể chọn Thêm quyền và thêm quản lý AmazonS3FullAccess chính sách cho người dùng thay vì cung cấp quyền truy cập hạn chế. Đối với bài đăng này, chúng tôi chỉ cung cấp quyền truy cập cần thiết vào nhóm S3.

  1. Trên menu thả xuống, hãy chọn Tạo chính sách nội tuyến.
  2. Trong Chọn dịch vụ, chọn S3.
  3. Theo Cấp độ truy cập, chỉ định như sau:
    1. Mở rộng Cấp độ danh sách và chọn ListBucket.
    2. Mở rộng Mức độ đọc và chọn GetObject.
    3. Mở rộng Mức độ viết và chọn PutObject.
  4. Theo Thông tin, chọn Thêm ARN.
  5. trên bản văn tab, hãy cung cấp các ARN sau để truy cập bộ chứa S3:
    1. arn:aws:s3:::airflow-blog-bucket-ACCOUNT_ID (sử dụng thùng của riêng bạn).
    2. arn:aws:s3:::citibike-tripdata-destination-ACCOUNT_ID (sử dụng thùng của riêng bạn).
    3. arn:aws:s3:::tripdata (đây là nhóm S3 công khai nơi lưu trữ tập dữ liệu Citi Bike; sử dụng ARN như được chỉ định tại đây).
  6. Theo Thông tin, chọn Thêm ARN.
  7. trên bản văn tab, hãy cung cấp các ARN sau để truy cập bộ chứa S3:
    1. arn:aws:s3:::airflow-blog-bucket-ACCOUNT_ID/* (đảm bảo bao gồm dấu hoa thị).
    2. arn:aws:s3:::citibike-tripdata-destination-ACCOUNT_ID /*.
    3. arn:aws:s3:::tripdata/* (đây là nhóm S3 công khai nơi lưu trữ tập dữ liệu Citi Bike, hãy sử dụng ARN như được chỉ định tại đây).
  8. Chọn Sau.
  9. Trong Tên chính sách, đi vào S3ReadWrite.
  10. Chọn Tạo chính sách.
  11. Cuối cùng, cung cấp cho Amazon MWAA quyền truy cập vào khóa bí mật của Trình quản lý bí mật.

Bước này cung cấp vai trò thực thi Amazon MWAA cho môi trường Amazon MWAA của bạn quyền truy cập đọc vào khóa bí mật trong Trình quản lý bí mật.

Vai trò thực thi nên có các chính sách MWAA-Execution-Policy*, S3ReadWriteSecretsManagerReadWrite đính kèm với nó.

Chính sách về vai trò thực thi của MWAA

Khi môi trường Amazon MWAA khả dụng, bạn có thể đăng nhập vào Airflow UI từ bảng điều khiển Amazon MWAA bằng liên kết dành cho Mở giao diện người dùng luồng khí.

Truy cập giao diện người dùng luồng không khí

Thiết lập chủ đề và đăng ký SNS

Tiếp theo bạn tạo chủ đề SNS và thêm một đăng ký đến chủ đề. Hoàn thành các bước sau:

  1. Trên bảng điều khiển Amazon SNS, chọn Chủ đề từ ngăn điều hướng.
  2. Chọn Tạo chủ đề.
  3. Trong Loại chủ đề, chọn Tiêu chuẩn.
  4. Trong Họ tên, đi vào mwaa_snowflake.
  5. Để phần còn lại như mặc định.
  6. Sau khi tạo chủ đề, hãy điều hướng đến Đăng ký tab và chọn Tạo đăng ký.
    chủ đề SNS
  7. Trong Chủ đề ARN, chọn mwaa_snowflake.
  8. Đặt giao thức thành E-mail.
  9. Trong Điểm cuối, nhập ID email của bạn (bạn sẽ nhận được thông báo trong email để chấp nhận đăng ký).

Theo mặc định, chỉ chủ sở hữu chủ đề mới có thể xuất bản và đăng ký chủ đề, vì vậy bạn cần sửa đổi chính sách truy cập vai trò thực thi Amazon MWAA để cho phép truy cập Amazon SNS.

  1. Trên bảng điều khiển IAM, điều hướng đến vai trò thực thi mà bạn đã tạo trước đó.
  2. Trên menu thả xuống, hãy chọn Tạo chính sách nội tuyến.
    Chính sách SNS của vai trò thực thi MWAA
  3. Trong Chọn dịch vụ, chọn SNS.
  4. Theo Hoạt động, mở rộng Viết cấp độ truy cập và chọn Xuất bản.
  5. Theo Thông tin, chọn Thêm ARN.
  6. trên bản văn tab, chỉ định ARN arn:aws:sns:<<region>>:<<our_account_ID>>:mwaa_snowflake.
  7. Chọn Sau.
  8. Trong Tên chính sách, đi vào SNSPublishOnly.
  9. Chọn Tạo chính sách.

Định cấu hình bí mật Trình quản lý bí mật

Tiếp theo, chúng tôi thiết lập Trình quản lý bí mật, đây là cơ sở dữ liệu thay thế được hỗ trợ để lưu trữ thông tin xác thực và thông tin kết nối Snowflake.

Để tạo chuỗi kết nối, cần có tên tài khoản và máy chủ Snowflake. Đăng nhập vào tài khoản Snowflake của bạn và dưới Các bảng tính menu, chọn dấu cộng và chọn bảng tính SQL. Sử dụng bảng tính, chạy các lệnh SQL sau để tìm tên máy chủ và tài khoản.

Chạy truy vấn sau cho tên máy chủ:

WITH HOSTLIST AS (SELECT * FROM TABLE(FLATTEN(INPUT => PARSE_JSON(SYSTEM$allowlist()))))
SELECT REPLACE(VALUE:host,'"','') AS HOST
FROM HOSTLIST
WHERE VALUE:type = 'SNOWFLAKE_DEPLOYMENT_REGIONLESS';

Chạy truy vấn sau cho tên tài khoản:

WITH HOSTLIST AS (SELECT * FROM TABLE(FLATTEN(INPUT => PARSE_JSON(SYSTEM$allowlist()))))
SELECT REPLACE(VALUE:host,'.snowflakecomputing.com','') AS ACCOUNT
FROM HOSTLIST
WHERE VALUE:type = 'SNOWFLAKE_DEPLOYMENT';

Tiếp theo, chúng tôi định cấu hình bí mật trong Trình quản lý bí mật.

  1. Trên bảng điều khiển Secrets Manager, chọn Lưu trữ một bí mật mới.
  2. Trong Loại bí mật, chọn Loại bí mật khác.
  3. Theo Cặp khóa/giá trị, chọn Văn bản thô tab.
  4. Trong trường văn bản, nhập mã sau và sửa đổi chuỗi để phản ánh thông tin tài khoản Bông tuyết của bạn:

{"host": "<<snowflake_host_name>>", "account":"<<snowflake_account_name>>","user":"<<snowflake_username>>","password":"<<snowflake_password>>","schema":"mwaa_schema","database":"mwaa_db","role":"accountadmin","warehouse":"dev_wh"}

Ví dụ:

{"host": "xxxxxx.snowflakecomputing.com", "account":"xxxxxx" ,"user":"xxxxx","password":"*****","schema":"mwaa_schema","database":"mwaa_db", "role":"accountadmin","warehouse":"dev_wh"}

Các giá trị cho tên cơ sở dữ liệu, tên lược đồ và vai trò phải như đã đề cập trước đó. Tài khoản, máy chủ, người dùng, mật khẩu và kho có thể khác nhau tùy theo thiết lập của bạn.

Thông tin bí mật

Chọn Sau.

  1. Trong Tên bí mật, đi vào airflow/connections/snowflake_accountadmin.
  2. Để tất cả các giá trị khác làm mặc định và chọn Sau.
  3. Chọn Cửa hàng sách.

Hãy lưu ý Khu vực nơi bí mật được tạo theo ARN bí mật. Sau này chúng tôi định nghĩa nó là một biến trong giao diện người dùng Airflow.

Định cấu hình quyền truy cập Snowflake và vai trò IAM

Tiếp theo, đăng nhập vào tài khoản Snowflake của bạn. Đảm bảo tài khoản bạn đang sử dụng có quyền truy cập quản trị viên tài khoản. Tạo một bảng tính SQL. Trong bảng tính, tạo một kho có tên dev_wh.

Sau đây là một lệnh SQL mẫu:

CREATE OR REPLACE WAREHOUSE dev_wh WITH WAREHOUSE_SIZE = 'xsmall' AUTO_SUSPEND = 60 INITIALLY_SUSPENDED = true AUTO_RESUME = true MIN_CLUSTER_COUNT = 1 MAX_CLUSTER_COUNT = 5;

Để Snowflake đọc dữ liệu từ và ghi dữ liệu vào bộ chứa S3 được tham chiếu ở giai đoạn bên ngoài (bộ chứa S3), một tích hợp lưu trữ bắt buộc. Thực hiện theo các bước được xác định trong Tùy chọn 1: Định cấu hình Tích hợp bộ nhớ Snowflake để truy cập Amazon S3(chỉ thực hiện Bước 1 và 2, như được mô tả trong phần này).

Định cấu hình quyền truy cập cho nhóm S3

Trong khi tạo chính sách IAM, mã tài liệu chính sách mẫu là cần thiết (xem đoạn mã sau), cung cấp cho Snowflake các quyền cần thiết để tải hoặc dỡ dữ liệu bằng một đường dẫn thư mục và nhóm duy nhất. Tên nhóm được sử dụng trong bài viết này là citibike-tripdata-destination-ACCOUNT_ID. Bạn nên sửa đổi nó để phản ánh tên nhóm của bạn.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion", "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": "arn:aws:s3::: citibike-tripdata-destination-ACCOUNT_ID/*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::citibike-tripdata-destination-ACCOUNT_ID" } ]
}

Tạo vai trò IAM

Tiếp theo, bạn tạo Vai trò IAM để cấp đặc quyền trên nhóm S3 chứa các tệp dữ liệu của bạn. Sau khi tạo, ghi lại ARN vai trò giá trị nằm trên trang tóm tắt vai trò.

Vai trò IAM bông tuyết

Định cấu hình các biến

Cuối cùng, định cấu hình các biến sẽ được DAG truy cập trong Airflow. Đăng nhập vào giao diện người dùng Airflow và trên quản trị viên menu, chọn Biến và dấu cộng.

Biến đổi luồng không khí

Thêm bốn biến với các cặp khóa/giá trị sau:

  • Key aws_role_arn có giá trị <<snowflake_aws_role_arn>> (ARN cho vai trò mysnowflakerole đã lưu ý trước đó)
  • Key destination_bucket có giá trị <<bucket_name>> (đối với bài đăng này, nhóm được sử dụng trong citibike-tripdata-destination-ACCOUNT_ID)
  • Key target_sns_arn có giá trị <<sns_Arn>> (chủ đề SNS trong tài khoản của bạn)
  • Key sec_key_region có giá trị <<region_of_secret_deployment>> (Khu vực nơi bí mật trong Trình quản lý bí mật được tạo)

Ảnh chụp màn hình sau đây minh họa nơi tìm chủ đề SNS ARN.

Chủ đề SNS ARN

Giao diện người dùng Airflow bây giờ sẽ có các biến được xác định, các biến này sẽ được DAG tham chiếu.

Danh sách biến dòng khí

Xin chúc mừng, bạn đã hoàn thành tất cả các bước cấu hình.

Chạy DAG

Hãy xem cách chạy DAG. Tóm lại:

  • DAG1 (create_snowflake_connection_blog.py) – Tạo kết nối Snowflake trong Apache Airflow. Kết nối này sẽ được sử dụng để xác thực với Snowflake. Chuỗi kết nối Bông tuyết được lưu trữ trong Trình quản lý bí mật, được tham chiếu trong tệp DAG.
  • DAG2 (tạo-snowflake_initial-setup_blog.py) – Tạo cơ sở dữ liệu, lược đồ, tích hợp lưu trữ và giai đoạn trong Snowflake.
  • DAG3 (run_mwaa_datapipeline_blog.py) – Chạy đường dẫn dữ liệu, đường dẫn này sẽ giải nén các tệp từ vùng lưu trữ S3 công khai nguồn và sao chép chúng vào vùng lưu trữ S3 đích. Nhiệm vụ tiếp theo sẽ tạo một bảng trong Snowflake để lưu trữ dữ liệu. Sau đó, dữ liệu từ nhóm S3 đích sẽ được sao chép vào bảng bằng giai đoạn Bông tuyết. Sau khi dữ liệu được sao chép thành công, một chế độ xem sẽ được tạo trong Snowflake, trên đó các truy vấn SQL sẽ được chạy.

Để chạy DAG, hãy hoàn thành các bước sau:

  1. Tải lên DAG vào nhóm S3 airflow-blog-bucket-ACCOUNT_ID/dags.
  2. Tải lên Truy vấn SQL tập tin vào nhóm S3 airflow-blog-bucket-ACCOUNT_ID/dags/mwaa_snowflake_queries.
  3. Đăng nhập vào giao diện người dùng Apache Airflow.
  4. Xác định vị trí DAG1 (create_snowflake_connection_blog), bỏ tạm dừng nó và chọn biểu tượng phát để chạy nó.

Bạn có thể xem trạng thái chạy của DAG bằng cách sử dụng lưới or Đồ thị xem trong giao diện người dùng Airflow.

Dag1 chạy

Sau khi DAG1 chạy, kết nối Snowflake snowflake_conn_accountadmin được tạo ra trên quản trị viên, Kết nối đơn.

  1. Xác định vị trí và chạy DAG2 (create-snowflake_initial-setup_blog).

Dag2 chạy

Sau khi DAG2 chạy, các đối tượng sau được tạo trong Snowflake:

  • Kho dữ liệu mwaa_db
  • Lược đồ mwaa_schema
  • Tích hợp lưu trữ mwaa_citibike_storage_int
  • Sân khấu mwaa_citibike_stg

Trước khi chạy DAG cuối cùng, mối quan hệ tin cậy dành cho người dùng IAM cần được cập nhật.

  1. Đăng nhập vào tài khoản Snowflake của bạn bằng thông tin đăng nhập tài khoản quản trị viên của bạn.
  2. Mở bảng tính SQL được tạo trước đó và chạy lệnh sau:
DESC INTEGRATION mwaa_citibike_storage_int;

mwaa_citibike_storage_int là tên của tích hợp được tạo bởi DAG2 ở bước trước.

Từ đầu ra, ghi lại giá trị thuộc tính của hai thuộc tính sau:

  • STORAGE_AWS_IAM_USER_ARN – Người dùng IAM được tạo cho tài khoản Snowflake của bạn.
  • LƯU TRỮ_AWS_EXTERNAL_ID – ID bên ngoài cần thiết để thiết lập mối quan hệ tin cậy.

Bây giờ chúng tôi cấp cho người dùng Snowflake IAM quyền truy cập vào các đối tượng nhóm.

  1. Trên bảng điều khiển IAM, chọn Vai trò trong khung điều hướng.
  2. Chọn vai trò mysnowflakerole.
  3. trên Mối quan hệ tin cậy tab, chọn Chỉnh sửa mối quan hệ tin cậy.
  4. Sửa đổi tài liệu chính sách bằng DESC STORAGE INTEGRATION giá trị đầu ra bạn đã ghi lại. Ví dụ:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::5xxxxxxxx:user/mgm4-s- ssca0079" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "AWSPARTNER_SFCRole=4_vsarJrupIjjJh77J9Nxxxx/j98=" } } } ]
}

Vai trò AWS ARNExternalId sẽ khác nhau đối với môi trường của bạn dựa trên đầu ra của DESC STORAGE INTEGRATION truy vấn

Mối quan hệ tin tưởng

  1. Xác định vị trí và chạy DAG cuối cùng (run_mwaa_datapipeline_blog).

Khi kết thúc quá trình chạy DAG, dữ liệu đã sẵn sàng để truy vấn. Trong ví dụ này, truy vấn (tìm trạm bắt đầu và trạm đích hàng đầu) được chạy như một phần của DAG và có thể xem đầu ra từ Luồng khí XCOM UI.

Xcom

Trong quá trình chạy DAG, đầu ra cũng được xuất bản lên Amazon SNS và dựa trên đăng ký, một thông báo qua email sẽ được gửi cùng với đầu ra truy vấn.

E-mail

Một phương pháp khác để trực quan hóa kết quả là trực tiếp từ bảng điều khiển Snowflake bằng bảng tính Snowflake. Sau đây là một truy vấn mẫu:

SELECT START_STATION_NAME,
COUNT(START_STATION_NAME) C FROM MWAA_DB.MWAA_SCHEMA.CITIBIKE_VW GROUP BY START_STATION_NAME ORDER BY C DESC LIMIT 10;

Hình ảnh bông tuyết

Có nhiều cách khác nhau để hình dung đầu ra dựa trên trường hợp sử dụng của bạn.

Như chúng tôi đã quan sát, DAG1 và DAG2 chỉ cần chạy một lần để thiết lập kết nối Amazon MWAA và các đối tượng Snowflake. DAG3 có thể lên kế hoạch chạy hàng tuần hoặc hàng tháng. Với giải pháp này, người dùng kiểm tra dữ liệu không cần phải đăng nhập vào Amazon MWAA hoặc Snowflake. Bạn có thể kích hoạt quy trình làm việc tự động theo lịch trình sẽ nhập dữ liệu mới nhất từ ​​tập dữ liệu Citi Bike và cung cấp các trạm xuất phát và điểm đến hàng đầu cho tập dữ liệu nhất định.

Làm sạch

Để tránh phát sinh phí trong tương lai, hãy xóa tài nguyên AWS (người dùng và vai trò IAM, bí mật của Trình quản lý bí mật, môi trường Amazon MWAA, chủ đề và đăng ký SNS, nhóm S3) và tài nguyên Snowflake (cơ sở dữ liệu, giai đoạn, tích hợp lưu trữ, dạng xem, bảng) được tạo như một phần của bài đăng này.

Kết luận

Trong bài đăng này, chúng tôi đã trình bày cách thiết lập kết nối Amazon MWAA để xác thực với Snowflake cũng như với AWS bằng thông tin xác thực của người dùng AWS. Chúng tôi đã sử dụng DAG để tự động tạo các đối tượng Snowflake như cơ sở dữ liệu, bảng và giai đoạn bằng truy vấn SQL. Chúng tôi cũng điều phối đường dẫn dữ liệu bằng cách sử dụng Amazon MWAA, nơi chạy các tác vụ liên quan đến chuyển đổi dữ liệu cũng như truy vấn Snowflake. Chúng tôi đã sử dụng Secrets Manager để lưu trữ thông tin và thông tin xác thực kết nối Snowflake cũng như Amazon SNS để xuất bản dữ liệu đầu ra cho người dùng cuối.

Với giải pháp này, bạn có thể tự động điều phối từ đầu đến cuối đường dẫn dữ liệu của mình, bao gồm việc nhập, chuyển đổi, phân tích và sử dụng dữ liệu.

Để tìm hiểu thêm, hãy tham khảo các tài nguyên sau:


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

Payal Singh là Kiến trúc sư giải pháp đối tác tại Amazon Web Services, tập trung vào nền tảng Serverless. Cô chịu trách nhiệm giúp đối tác và khách hàng hiện đại hóa và di chuyển các ứng dụng của họ sang AWS.

James Sun là Kiến trúc sư giải pháp đối tác cấp cao tại Snowflake. Anh tích cực cộng tác với các đối tác chiến lược về đám mây như AWS, hỗ trợ tích hợp sản phẩm và dịch vụ cũng như phát triển các giải pháp chung. Ông từng giữ các vị trí kỹ thuật cấp cao tại các công ty công nghệ như EMC, AWS và MapR Technologies. Với hơn 20 năm kinh nghiệm trong lĩnh vực lưu trữ và phân tích dữ liệu, ông còn có bằng Tiến sĩ tại Đại học Stanford.

Bosco Albuquerque là Kiến trúc sư Giải pháp Đối tác Cấp cao tại AWS và có hơn 20 năm kinh nghiệm làm việc với cơ sở dữ liệu và các sản phẩm phân tích từ các nhà cung cấp cơ sở dữ liệu doanh nghiệp và nhà cung cấp đám mây. Ông đã giúp các công ty công nghệ thiết kế và triển khai các giải pháp và sản phẩm phân tích dữ liệu.

Manuj Arora là Kiến trúc sư giải pháp cấp cao cho các tài khoản chiến lược trong AWS. Ông tập trung vào các khả năng và dịch vụ Di chuyển và Hiện đại hóa trong AWS. Manuj đã làm Kiến trúc sư giải pháp thành công cho đối tác tại AWS trong 3 năm qua và làm việc với các đối tác như Snowflake để xây dựng các bản thiết kế giải pháp được khách hàng tận dụng. Ngoài công việc, anh thích đi du lịch, chơi quần vợt và khám phá những địa điểm mới cùng gia đình và bạn bè.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img