Chuẩn bị dữ liệu trên quy mô lớn trong Amazon SageMaker Studio bằng cách sử dụng các phiên tương tác AWS Glue không có máy chủ PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Chuẩn bị dữ liệu trên quy mô lớn trong Amazon SageMaker Studio bằng cách sử dụng các phiên tương tác AWS Glue không máy chủ

Xưởng sản xuất Amazon SageMaker là môi trường phát triển tích hợp đầy đủ đầu tiên (IDE) cho máy học (ML). Nó cung cấp một giao diện trực quan dựa trên web duy nhất, nơi bạn có thể thực hiện tất cả các bước phát triển ML, bao gồm chuẩn bị dữ liệu và xây dựng, đào tạo và triển khai các mô hình.

Keo AWS là một dịch vụ tích hợp dữ liệu không máy chủ giúp dễ dàng khám phá, chuẩn bị và kết hợp dữ liệu để phân tích, ML và phát triển ứng dụng. AWS Glue cho phép bạn thu thập, chuyển đổi, làm sạch và chuẩn bị dữ liệu một cách liền mạch để lưu trữ trong các hồ dữ liệu và đường ống dữ liệu của bạn bằng cách sử dụng nhiều khả năng, bao gồm chuyển đổi tích hợp.

Các kỹ sư dữ liệu và nhà khoa học dữ liệu hiện có thể tương tác chuẩn bị dữ liệu trên quy mô lớn bằng cách sử dụng tích hợp tích hợp sẵn trong máy tính xách tay Studio của họ với các phiên Spark không máy chủ do AWS Glue quản lý. Khởi động trong vài giây và tự động dừng máy tính khi không hoạt động, Các phiên tương tác AWS Glue cung cấp chương trình phụ trợ Spark không máy chủ theo yêu cầu, có khả năng mở rộng cao để đạt được sự chuẩn bị dữ liệu có thể mở rộng trong Studio. Các lợi ích đáng chú ý của việc sử dụng các phiên tương tác AWS Glue trên máy tính xách tay Studio bao gồm:

  • Không có cụm để cung cấp hoặc quản lý
  • Không có cụm nhàn rỗi nào để thanh toán
  • Không yêu cầu cấu hình trả trước
  • Không tranh chấp tài nguyên cho cùng một môi trường phát triển
  • Nền tảng và thời gian chạy Spark không máy chủ giống hệt như các công việc trích xuất, chuyển đổi và tải (ETL) Keo AWS

Trong bài đăng này, chúng tôi hướng dẫn bạn cách chuẩn bị dữ liệu trên quy mô lớn trong Studio bằng cách sử dụng các phiên tương tác AWS Glue không máy chủ.

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

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

  1. Cập nhật của bạn Quản lý truy cập và nhận dạng AWS (IAM) quyền vai trò.
  2. Khởi chạy nhân phiên tương tác AWS Glue.
  3. Định cấu hình phiên tương tác của bạn.
  4. Tùy chỉnh phiên tương tác của bạn và chạy khối lượng công việc chuẩn bị dữ liệu có thể mở rộng.

Cập nhật quyền vai trò IAM của bạn

Để bắt đầu, bạn cần cập nhật vai trò thực thi IAM của người dùng Studio của mình với các quyền cần thiết. Để được hướng dẫn chi tiết, hãy tham khảo Quyền cho các phiên tương tác với Keo trong SageMaker Studio.

Trước tiên, bạn thêm các chính sách được quản lý vào vai trò thực thi của mình:

  1. Trên bảng điều khiển IAM, chọn Vai trò trong khung điều hướng.
  2. Tìm vai trò thực thi Studio mà bạn sẽ sử dụng và chọn tên vai trò để chuyển đến trang tóm tắt vai trò.
  3. trên Quyền tab, trên Thêm quyền menu, chọn Đính kèm các chính sách.
  4. Chọn các chính sách được quản lý AmazonSageMakerFullAccessAwsGlueSessionUserRestrictedServiceRole
  5. Chọn Đính kèm các chính sách.
    Trang tóm tắt hiển thị các chính sách được quản lý mới được thêm vào của bạn. Bây giờ bạn thêm chính sách tùy chỉnh và đính kèm chính sách đó vào vai trò thực thi của mình.
  6. trên Thêm quyền menu, chọn Tạo chính sách nội tuyến.
  7. trên JSON , nhập chính sách sau:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. Sửa đổi mối quan hệ tin cậy của vai trò của bạn:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Khởi chạy nhân phiên tương tác AWS Glue

Nếu bạn đã có người dùng hiện tại trong miền Studio của mình, bạn có thể cần phải có họ tắt và khởi động lại Máy chủ Jupyter của họ để chọn các hình ảnh hạt nhân máy tính xách tay mới.

Sau khi tải lại, bạn có thể tạo sổ ghi chép Studio mới và chọn hạt nhân ưa thích của bạn. Tích hợp sẵn SparkAnalytics 1.0 hình ảnh bây giờ sẽ có sẵn và bạn có thể chọn hạt nhân AWS Glue ưa thích của mình (Keo Scala Spark or Keo PySpark).

Định cấu hình phiên tương tác của bạn

Bạn có thể dễ dàng định cấu hình phiên tương tác AWS Glue của mình bằng phép thuật di động máy tính xách tay trước khi khởi chạy. Magics là các lệnh nhỏ có tiền tố% ở đầu ô Jupyter cung cấp các phím tắt để kiểm soát môi trường. Trong các phiên tương tác AWS Glue, phép thuật được sử dụng cho tất cả các nhu cầu cấu hình, bao gồm:

  • %vùng đất - Khu vực AWS để khởi tạo phiên. Mặc định là Khu vực Studio.
  • % iam_role - ARN vai trò IAM để chạy phiên của bạn. Mặc định là vai trò thực thi SageMaker của người dùng.
  • % worker_type - Loại công nhân keo AWS. Mặc định là tiêu chuẩn.
  • %số lượng công nhân - Số lượng công nhân được phân bổ khi một công việc chạy. Giá trị mặc định là năm.
  • % nhàn rỗi_timeout - Số phút không hoạt động mà sau đó một phiên sẽ hết thời gian. Mặc định là 2,880 phút.
  • % bổ sung_python_modules - Danh sách các mô-đun Python bổ sung được phân tách bằng dấu phẩy để đưa vào cụm của bạn. Đây có thể là từ PyPi hoặc Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3).
  • %% config - Một từ điển định dạng JSON bao gồm Các thông số cấu hình cụ thể của Keo AWS trong một phiên.

Để có danh sách đầy đủ các tham số ma thuật có thể định cấu hình cho hạt nhân này, hãy sử dụng %help phép thuật trong sổ tay của bạn.

Phiên tương tác AWS Glue của bạn sẽ không bắt đầu cho đến khi ô không ma thuật đầu tiên được chạy.

Tùy chỉnh phiên tương tác của bạn và chạy khối lượng công việc chuẩn bị dữ liệu

Ví dụ: các ô sổ ghi chép sau đây cho thấy cách bạn có thể tùy chỉnh phiên tương tác AWS Glue của mình và chạy khối lượng công việc chuẩn bị dữ liệu có thể mở rộng. Trong ví dụ này, chúng tôi thực hiện nhiệm vụ ETL để tổng hợp dữ liệu chất lượng không khí cho một thành phố nhất định, nhóm theo giờ trong ngày.

Chúng tôi định cấu hình phiên của mình để lưu nhật ký Spark của chúng tôi vào một thùng S3 để gỡ lỗi thời gian thực, chúng tôi sẽ thấy sau trong bài đăng này. Hãy chắc chắn rằng iam_role đang chạy phiên AWS Glue của bạn có quyền ghi vào nhóm S3 được chỉ định.

%help

%session_id_prefix air-analysis-
%glue_version 3.0
%idle_timeout 60
%%configure
{
"--enable-spark-ui": "true",
"--spark-event-logs-path": "s3://<BUCKET>/gis-spark-logs/"
}

Tiếp theo, chúng tôi tải tập dữ liệu của mình trực tiếp từ Amazon S3. Ngoài ra, bạn có thể tải dữ liệu bằng Danh mục dữ liệu keo AWS của bạn.

from pyspark.sql.functions import split, lower, hour
print(spark.version)
day_to_analyze = "2022-01-05"
df = spark.read.json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/1641409725.ndjson.gz")
df_air = spark.read.schema(df.schema).json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/*")

Cuối cùng, chúng tôi viết tập dữ liệu đã chuyển đổi của mình vào vị trí nhóm đầu ra mà chúng tôi đã xác định:

df_city = df_air.filter(lower((df_air.city)).contains('delhi')).filter(df_air.parameter == "no2").cache()
df_avg = df_city.withColumn("Hour", hour(df_city.date.utc)).groupBy("Hour").avg("value").withColumnRenamed("avg(value)", "no2_avg")
df_avg.sort("Hour").show()

# Examples of reading / writing to other data stores: 
# https://github.com/aws-samples/aws-glue-samples/tree/master/examples/notebooks

df_avg.write.parquet(f"s3://<BUCKET>/{day_to_analyze}.parquet")

Sau khi hoàn thành công việc của mình, bạn có thể kết thúc phiên tương tác AWS Glue của mình ngay lập tức bằng cách tắt nhân máy tính xách tay Studio hoặc bạn có thể sử dụng %stop_session ảo thuật.

Gỡ lỗi và giao diện người dùng Spark

Trong ví dụ trước, chúng tôi đã chỉ định ”--enable-spark-ui”: “true” đối số cùng với một "--spark-event-logs-path": location. Điều này định cấu hình phiên AWS Glue của chúng tôi để ghi lại nhật ký phiên để chúng tôi có thể sử dụng giao diện người dùng Spark để theo dõi và gỡ lỗi công việc AWS Glue của chúng tôi trong thời gian thực.

Để biết quy trình khởi chạy và đọc các nhật ký Spark đó, hãy tham khảo Khởi chạy máy chủ lịch sử Spark. Trong ảnh chụp màn hình sau, chúng tôi đã khởi chạy một vùng chứa Docker cục bộ có quyền đọc nhóm S3 chứa nhật ký của chúng tôi. Theo tùy chọn, bạn có thể tổ chức một Đám mây điện toán đàn hồi Amazon (Amazon EC2) ví dụ để thực hiện việc này, như được mô tả trong tài liệu được liên kết trước đó.

Chuẩn bị dữ liệu trên quy mô lớn trong Amazon SageMaker Studio bằng cách sử dụng các phiên tương tác AWS Glue không có máy chủ PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

GIÁ CẢ

Khi bạn sử dụng các phiên tương tác AWS Glue trên máy tính xách tay Studio, bạn sẽ bị tính phí riêng cho việc sử dụng tài nguyên trên máy tính xách tay AWS Glue và Studio.

AWS tính phí cho các phiên tương tác AWS Glue dựa trên thời gian phiên hoạt động và số lượng Đơn vị xử lý dữ liệu (DPU) được sử dụng. Bạn bị tính phí theo giờ cho số lượng DPU được sử dụng để chạy khối lượng công việc của mình, được tính theo gia số 1 giây. Các phiên tương tác AWS Glue chỉ định mặc định là 5 DPU và yêu cầu tối thiểu 2 DPU. Ngoài ra còn có thời lượng thanh toán tối thiểu 1 phút cho mỗi phiên tương tác. Để xem các ví dụ về giá và định giá Keo AWS hoặc để ước tính chi phí của bạn bằng Công cụ tính giá AWS, hãy xem Giá Keo AWS.

Máy tính xách tay Studio của bạn chạy trên phiên bản EC2 và bạn bị tính phí cho loại phiên bản bạn chọn, dựa trên thời gian sử dụng. Studio chỉ định cho bạn loại phiên bản EC2 mặc định của ml-t3-medium khi bạn chọn SparkAnalytics hình ảnh và nhân liên kết. Bạn có thể thay đổi kiểu phiên bản của sổ ghi chép Studio để phù hợp với khối lượng công việc của mình. Để biết thông tin về giá của SageMaker Studio, hãy xem Amazon SageMaker Giá.

Kết luận

Việc tích hợp nguyên bản của máy tính xách tay Studio với các phiên tương tác AWS Glue tạo điều kiện thuận lợi cho việc chuẩn bị dữ liệu không máy chủ liền mạch và có thể mở rộng cho các nhà khoa học dữ liệu và kỹ sư dữ liệu. Chúng tôi khuyến khích bạn dùng thử chức năng mới này trong Studio!

Xem Chuẩn bị dữ liệu bằng AWS Glue Interactive Sessions để biết thêm thông tin chi tiết.


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

Sean MorganSean Morgan là Kiến trúc sư Giải pháp ML Cao cấp tại AWS. Anh ấy có kinh nghiệm trong lĩnh vực nghiên cứu học thuật và bán dẫn, đồng thời sử dụng kinh nghiệm của mình để giúp khách hàng đạt được mục tiêu của họ trên AWS. Trong thời gian rảnh rỗi, Sean là người đóng góp / bảo trì nguồn mở kích hoạt và là trưởng nhóm sở thích đặc biệt cho TensorFlow Addons.

Chuẩn bị dữ liệu trên quy mô lớn trong Amazon SageMaker Studio bằng cách sử dụng các phiên tương tác AWS Glue không có máy chủ PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Sumedha Swamy là Giám đốc Sản phẩm Chính tại Amazon Web Services. Anh ấy dẫn dắt nhóm SageMaker Studio xây dựng nó thành IDE được lựa chọn cho quy trình công việc kỹ thuật dữ liệu và khoa học dữ liệu tương tác. Ông đã dành 15 năm qua để xây dựng các sản phẩm doanh nghiệp và người tiêu dùng bị ám ảnh bởi khách hàng bằng cách sử dụng Học máy. Khi rảnh rỗi, anh ấy thích chụp ảnh địa chất kỳ thú của miền Tây Nam nước Mỹ.

Dấu thời gian:

Thêm từ Học máy AWS