서버리스 AWS Glue 대화형 세션 PlatoBlockchain Data Intelligence를 사용하여 Amazon SageMaker Studio에서 대규모 데이터를 준비합니다. 수직 검색. 일체 포함.

서버리스 AWS Glue 대화형 세션을 사용하여 Amazon SageMaker Studio에서 대규모 데이터 준비

아마존 세이지 메이커 스튜디오 머신 러닝(ML)을 위한 최초의 완전 통합 개발 환경(IDE)입니다. 데이터 준비, 모델 구축, 교육 및 배포를 포함하여 모든 ML 개발 단계를 수행할 수 있는 단일 웹 기반 시각적 인터페이스를 제공합니다.

AWS 접착제 분석, ML 및 애플리케이션 개발을 위한 데이터를 쉽게 검색, 준비 및 결합할 수 있는 서버리스 데이터 통합 ​​서비스입니다. AWS Glue를 사용하면 다음과 같은 다양한 기능을 사용하여 데이터 레이크 및 데이터 파이프라인에 저장할 데이터를 원활하게 수집, 변환, 정리 및 준비할 수 있습니다. 내장 변환.

데이터 엔지니어와 데이터 과학자는 이제 AWS Glue에서 관리하는 서버리스 Spark 세션과 Studio 노트북의 기본 제공 통합을 사용하여 대규모 데이터를 대화식으로 준비할 수 있습니다. 몇 초 만에 시작하고 유휴 상태일 때 자동으로 컴퓨팅을 중지합니다. AWS Glue 대화형 세션 Studio 내에서 확장 가능한 데이터 준비를 달성하기 위해 주문형, 고도로 확장 가능한 서버리스 Spark 백엔드를 제공합니다. Studio 노트북에서 AWS Glue 대화형 세션을 사용할 때의 주목할만한 이점은 다음과 같습니다.

  • 프로비저닝하거나 관리할 클러스터가 없습니다.
  • 비용을 지불할 유휴 클러스터 없음
  • 사전 구성이 필요하지 않음
  • 동일한 개발 환경에 대한 리소스 경합 없음
  • AWS Glue 추출, 변환 및 로드(ETL) 작업과 정확히 동일한 서버리스 Spark 런타임 및 플랫폼

이 게시물에서는 서버리스 AWS Glue 대화형 세션을 사용하여 Studio에서 대규모로 데이터를 준비하는 방법을 보여줍니다.

솔루션 개요

이 솔루션을 구현하려면 다음 상위 수준 단계를 완료합니다.

  1. 업데이트 AWS 자격 증명 및 액세스 관리 (IAM) 역할 권한.
  2. AWS Glue 대화형 세션 커널을 시작합니다.
  3. 대화형 세션을 구성합니다.
  4. 대화형 세션을 사용자 지정하고 확장 가능한 데이터 준비 워크로드를 실행합니다.

IAM 역할 권한 업데이트

시작하려면 필요한 권한으로 Studio 사용자의 IAM 실행 역할을 업데이트해야 합니다. 자세한 지침은 다음을 참조하십시오. SageMaker Studio의 Glue 대화식 세션에 대한 권한.

먼저 실행 역할에 관리형 정책을 추가합니다.

  1. IAM 콘솔에서 역할 탐색 창에서
  2. 사용할 Studio 실행 역할을 찾고 역할 이름을 선택하여 역할 요약 페이지로 이동합니다.
  3. 권한 탭에서 권한 추가 메뉴, 선택 정책 첨부.
  4. 관리형 정책 선택 AmazonSageMakerFullAccessAwsGlueSessionUserRestrictedServiceRole
  5. 왼쪽 메뉴에서 정책 첨부.
    요약 페이지에는 새로 추가된 관리형 정책이 표시됩니다. 이제 사용자 지정 정책을 추가하고 실행 역할에 연결합니다.
  6. 권한 추가 메뉴, 선택 인라인 정책 만들기.
  7. JSON 탭에서 다음 정책을 입력합니다.
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. 역할의 신뢰 관계를 수정합니다.
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

AWS Glue 대화형 세션 커널 시작

Studio 도메인에 이미 기존 사용자가 있는 경우 해당 사용자가 필요할 수 있습니다. Jupyter 서버를 종료하고 다시 시작하십시오. 새 노트북 커널 이미지를 선택합니다.

다시 로드하면 새 Studio 노트북을 만들고 선호하는 커널을 선택하십시오. 내장 SparkAnalytics 1.0 이제 이미지를 사용할 수 있어야 하며 원하는 AWS Glue 커널(글루 스칼라 스파크 or 글루 파이스파크).

대화형 세션 구성

초기화 전에 노트북 셀 매직으로 AWS Glue 대화형 세션을 쉽게 구성할 수 있습니다. Magics는 환경을 제어하기 위한 바로 가기를 제공하는 Jupyter 셀의 시작 부분에 % 접두사가 붙은 작은 명령입니다. AWS Glue 대화형 세션에서는 다음을 포함한 모든 구성 요구 사항에 대해 매직이 사용됩니다.

  • %지역 – 세션을 초기화할 AWS 리전입니다. 기본값은 스튜디오 지역입니다.
  • %iam_role – 세션을 실행할 IAM 역할 ARN. 기본값은 사용자의 SageMaker 실행 역할입니다.
  • % 작업자 유형 - AWS Glue 작업자 유형. 기본값은 표준입니다.
  • %number_of_workers – 작업이 실행될 때 할당되는 작업자 수입니다. 기본값은 XNUMX입니다.
  • %idle_timeout – 세션이 시간 초과될 때까지의 비활성 시간(분). 기본값은 2,880분입니다.
  • %additional_python_modules – 클러스터에 포함할 추가 Python 모듈의 쉼표로 구분된 목록입니다. 이것은 PyPi 또는 아마존 단순 스토리지 서비스 (아마존 S3).
  • %%구성 – 다음으로 구성된 JSON 형식의 사전 AWS Glue 관련 구성 파라미터 세션을 위해.

이 커널에 대해 구성 가능한 매직 매개변수의 전체 목록을 보려면 다음을 사용하십시오. %help 당신의 노트북 안의 마법.

첫 번째 non-magic 셀이 실행될 때까지 AWS Glue 대화형 세션이 시작되지 않습니다.

대화형 세션을 사용자 지정하고 데이터 준비 워크로드 실행

예를 들어 다음 노트북 셀은 AWS Glue 대화형 세션을 사용자 지정하고 확장 가능한 데이터 준비 워크로드를 실행하는 방법을 보여줍니다. 이 예에서는 ETL 작업을 수행하여 주어진 도시의 대기 질 데이터를 시간별로 그룹화하여 집계합니다.

이 게시물의 뒷부분에서 볼 수 있는 실시간 디버깅을 위해 Spark 로그를 S3 버킷에 저장하도록 세션을 구성합니다. 다음 사항을 확인하십시오. iam_role AWS Glue 세션을 실행하는 사용자는 지정된 S3 버킷에 대한 쓰기 액세스 권한이 있습니다.

%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/"
}

다음으로 Amazon S3에서 직접 데이터 세트를 로드합니다. 또는 다음을 수행할 수 있습니다. AWS Glue 데이터 카탈로그를 사용하여 데이터 로드.

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}/*")

마지막으로 변환된 데이터 세트를 정의한 출력 버킷 위치에 씁니다.

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")

작업을 완료한 후 단순히 Studio 노트북 커널을 종료하여 AWS Glue 대화형 세션을 즉시 종료하거나 다음을 사용할 수 있습니다. %stop_session 마술.

디버깅 및 Spark UI

앞의 예에서는 다음을 지정했습니다. ”--enable-spark-ui”: “true” 와 함께 주장 "--spark-event-logs-path": location. 그러면 Spark UI를 활용하여 AWS Glue 작업을 실시간으로 모니터링하고 디버그할 수 있도록 세션 로그를 기록하도록 AWS Glue 세션이 구성됩니다.

이러한 Spark 로그를 시작하고 읽는 프로세스는 다음을 참조하세요. Spark 기록 서버 시작. 다음 스크린샷에서는 로그가 포함된 S3 버킷을 읽을 수 있는 권한이 있는 로컬 Docker 컨테이너를 시작했습니다. 선택적으로 호스팅할 수 있습니다. 아마존 엘라스틱 컴퓨트 클라우드 (Amazon EC2) 인스턴스를 사용하여 이전에 연결된 문서에 설명된 대로 이를 수행합니다.

서버리스 AWS Glue 대화형 세션 PlatoBlockchain Data Intelligence를 사용하여 Amazon SageMaker Studio에서 대규모 데이터를 준비합니다. 수직 검색. 일체 포함.

가격 정책

Studio 노트북에서 AWS Glue 대화형 세션을 사용하는 경우 AWS Glue 및 Studio 노트북의 리소스 사용량에 대해 별도로 요금이 부과됩니다.

AWS는 세션이 활성 상태인 시간과 사용된 데이터 처리 장치(DPU) 수를 기준으로 AWS Glue 대화형 세션에 대해 요금을 부과합니다. 워크로드를 실행하는 데 사용되는 DPU 수에 대한 시간당 요금이 청구되며 1초 단위로 청구됩니다. AWS Glue 대화형 세션은 기본적으로 5개의 DPU를 할당하고 최소 2개의 DPU가 필요합니다. 또한 각 대화식 세션에 대해 1분의 최소 청구 기간이 있습니다. AWS Glue 요금 및 요금 예시를 ​​보거나 AWS 요금 계산기를 사용하여 비용을 추정하려면 다음을 참조하십시오. AWS Glue 요금.

Studio 노트북은 EC2 인스턴스에서 실행되며 사용 기간을 기준으로 선택한 인스턴스 유형에 대해 요금이 부과됩니다. Studio는 사용자가 선택하면 ml-t2-medium의 기본 EC3 인스턴스 유형을 할당합니다. SparkAnalytics 이미지 및 관련 커널. 워크로드에 맞게 Studio 노트북의 인스턴스 유형을 변경할 수 있습니다. SageMaker Studio 가격 책정에 대한 정보는 다음을 참조하십시오. Amazon SageMaker 요금.

결론

Studio 노트북과 AWS Glue 대화형 세션의 기본 통합은 데이터 과학자와 데이터 엔지니어를 위한 원활하고 확장 가능한 서버리스 데이터 준비를 용이하게 합니다. Studio에서 이 새로운 기능을 사용해 보시기 바랍니다!

만나다 AWS Glue 대화형 세션을 사용하여 데이터 준비


저자 소개

션 모건션 모건 AWS의 선임 ML 솔루션 아키텍트입니다. 그는 반도체 및 학술 연구 분야에서 경험이 있으며 자신의 경험을 사용하여 고객이 AWS에서 목표를 달성할 수 있도록 돕습니다. 여가 시간에 Sean은 활성화된 오픈 소스 기고자/관리자이며 TensorFlow Addons의 특별 이익 그룹 리더입니다.

서버리스 AWS Glue 대화형 세션 PlatoBlockchain Data Intelligence를 사용하여 Amazon SageMaker Studio에서 대규모 데이터를 준비합니다. 수직 검색. 일체 포함.수메다 스와미 Amazon Web Services의 수석 제품 관리자입니다. 그는 SageMaker Studio 팀을 이끌고 대화형 데이터 과학 및 데이터 엔지니어링 워크플로를 위해 선택한 IDE에 IDE를 구축합니다. 그는 지난 15년 동안 기계 학습을 사용하여 고객 중심의 소비자 및 기업 제품을 구축했습니다. 여가 시간에는 미국 남서부의 놀라운 지질학 사진을 찍는 것을 좋아합니다.

타임 스탬프 :

더보기 AWS 기계 학습