Jupyter 및 AWS Glue Studio 노트북용 AWS Glue 대화형 세션 구성 - AWS 글루

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Jupyter 및 AWS Glue Studio 노트북용 AWS Glue 대화형 세션 구성

Jupyter 매직 소개

Jupyter 매직은 셀의 시작 부분이나 셀 전체에 실행할 수 있는 명령입니다. %로 시작하는 매직은 라인 매직이고 %%로 시작하면 셀 매직입니다. 라인 매직(예:%region%connections)은 하나의 셀 안에서 여러 매직으로 실행될 수 있으며, 또는 다음 예제와 같이 셀 본문에 포함된 코드로 실행할 수 있습니다.

%region us-east-2 %connections my_rds_connection dy_f = glue_context.create_dynamic_frame.from_catalog(database='rds_tables', table_name='sales_table')

셀 매직은 전체 셀을 사용해야 하며 명령이 여러 줄에 걸쳐 포함될 수 있습니다. %%sql의 예는 아래와 같습니다.

%%sql select * from rds_tables.sales_table

Jupyter용 AWS Glue 대화형 세션에서 지원되는 매직

다음은 Jupyter Notebook용 AWS Glue 대화형 세션에서 사용할 수 있는 매직입니다.

세션 매직

명칭 유형 설명
%help 해당 사항 없음 모든 매직 명령에 대한 설명 및 입력 유형 목록을 반환합니다.
%profile String AWS 구성에서 자격 증명 공급자로 사용할 프로필을 지정합니다.
%region String

세션을 초기화할 AWS 리전; 를 지정합니다. 기본값은 ~/.aws/configure.에 있습니다.

예제: %region us-west-1

%idle_timeout 정수

셀이 실행된 후 세션이 시간 초과되기까지의 비활성 시간(분)입니다. Spark ETL 세션의 기본 유휴 제한 시간 값은 기본 제한 시간인 2880분 (48시간) 입니다. 다른 세션 유형에 대해서는 해당 세션 유형에 대한 설명서를 참조하세요.

예제: %idle_timeout 3000

%session_id 해당 사항 없음 실행 중인 세션의 세션 ID를 반환합니다.
%session_id_prefix String

모든 세션 앞에 오는 문자열을 [session_id_prefix] - [IDssession_id] 형식으로 정의하십시오. 세션 ID를 제공하지 않으면 무작위로 생성됩니다. UUID AWS Glue Studio에서 Jupyter Notebook을 실행할 때는 이 매직이 지원되지 않습니다.

예제: %session_id_prefix 001

%status 기간, 구성, 실행 사용자/역할을 포함한 현재 AWS Glue 세션의 상태를 반환합니다.
%stop_session 현재 세션을 중지합니다.
%list_sessions 현재 실행 중인 모든 세션을 이름과 ID로 나열합니다.
%session_type String

세션 유형을 스트리밍 또는 Ray 중 하나로 설정합니다. ETL

예제: %session_type Streaming

%glue_version String

이 세션에서 사용할 AWS Glue 버전입니다.

예제: %glue_version 3.0

작업 유형 선택을 위한 매직

명칭 유형 설명
%streaming String 세션 유형을 AWS Glue 스트리밍으로 변경합니다.
%etl String 세션 유형을 로 변경합니다 AWS GlueETL.
%glue_ray String 세션 유형을 AWS Glue for Ray로 변경합니다. AWS Glue Ray 대화형 세션에서 지원하는 Magics를 참조하십시오.

AWS Glue for Spart 구성 매직

%%configure 매직은 세션에 대한 모든 구성 파라미터로 구성된 JSON 형식의 사전입니다. 각 파라미터는 여기서 지정하거나 개별 매직을 통해 지정할 수 있습니다.

명칭 유형 설명
%%configure 딕셔너리

세션의 모든 구성 파라미터로 구성된 JSON -format 딕셔너리를 지정하십시오. 각 파라미터는 여기서 지정하거나 개별 매직을 통해 지정할 수 있습니다.

%%configure 사용 방법에 관한 예제와 파라미터 목록은 아래 테이블, %%configure 사용을 참조하세요.

%iam_role String

세션을 실행하는 ARN 데 사용할 IAM 역할을 지정합니다. 기본값은 ~/.aws/configure에 있습니다.

예제: %iam_role AWSGlueServiceRole

%number_of_workers 정수

작업이 실행될 때 할당되는 정의된 worker_type의 작업자 수입니다. worker_type도 설정해야 합니다. number_of_workers의 기본값은 5입니다.

예제: %number_of_workers 2

%additional_python_modules 나열

클러스터에 포함할 추가 Python 모듈의 쉼표로 구분된 목록입니다(PyPI 또는 S3에서 가져올 수 있음).

예: %additional_python_modules pandas, numpy.

%%tags String

세션에 태그를 추가합니다. 태그를 중괄호 {}로 묶어 지정합니다. 각 태그 이름 페어는 괄호(" ")로 묶고 쉼표(,)로 구분합니다.

%%tags {"billing":"Data-Platform", "team":"analytics"}

%status 매직을 사용하여 세션과 관련된 태그를 확인합니다.

%status
Session ID: <sessionId> Status: READY Role: <example-role> CreatedOn: 2023-05-26 11:12:17.056000-07:00 GlueVersion: 3.0 Job Type: glueetl Tags: {'owner':'example-owner', 'team':'analytics', 'billing':'Data-Platform'} Worker Type: G.4X Number of Workers: 5 Region: us-west-2 Applying the following default arguments: --glue_kernel_version 0.38.0 --enable-glue-datacatalog true Arguments Passed: ['--glue_kernel_version: 0.38.0', '--enable-glue-datacatalog: true']
%%assume_role 사전

json 형식의 사전 또는 IAM 역할 ARN 문자열을 지정하여 계정 간 액세스를 위한 세션을 생성합니다.

예를 들면 다음과 같습니다. ARN

%%assume_role { 'arn:aws:iam::XXXXXXXXXXXX:role/AWSGlueServiceRole' }

보안 인증 관련 예제:

%%assume_role {{ "aws_access_key_id" = "XXXXXXXXXXXX", "aws_secret_access_key" = "XXXXXXXXXXXX", "aws_session_token" = "XXXXXXXXXXXX" }}

%%configure 셀 매직 인수

%%configure 매직은 세션에 대한 모든 구성 파라미터로 구성된 JSON 형식의 사전입니다. 각 파라미터는 여기서 지정하거나 개별 매직을 통해 지정할 수 있습니다. %%configure 셀 매직이 지원하는 인수 예제는 아래를 참조하세요. 작업에 지정된 실행 인수에 -- 접두사를 사용합니다. 예제:

%%configure { "--user-jars-first": "true", "--enable-glue-datacatalog": "false" }

작업 파라미터에 대한 자세한 내용은 작업 파라미터 섹션을 참조하세요.

세션 구성

파라미터 유형 설명
max_retries 정수

실패한 경우 이 작업을 다시 시도할 수 있는 최대 횟수입니다.

%%configure { "max_retries": "0" }
max_concurrent_runs 정수 작업에 허용된 최대 동시 실행 수입니다.

예제:

%%configure { "max_concurrent_runs": "3" }

세션 파라미터

파라미터 유형 설명
--enable-spark-ui Spark UI를 활성화하여 작업을 모니터링하고 AWS Glue ETL 디버깅합니다.
%%configure { "--enable-spark-ui": "true" }
--spark-event-logs-path String Amazon S3 경로를 지정합니다. Spark UI 모니터링 기능을 사용하는 경우.

예제:

%%configure { "--spark-event-logs-path": "s3://path/to/event/logs/" }
--script_location String 작업을 실행하는 스크립트의 S3 경로를 지정합니다.

예제:

%%configure { "script_location": "s3://new-folder-here" }
--SECURITY_CONFIGURATION String

보안 구성의 AWS Glue 이름

예제:

%%configure { "--SECURITY_CONFIGURATION": security-configuration-name, }
--job-language String 스크립트 프로그래밍 언어. 'scala' 또는 'python'의 값이 허용됩니다. 기본값은 'python'입니다.

예제:

%%configure { "--job-language": "scala" }
--class String Scala 스크립트 진입점으로써 Scala 클래스. 기본값은 null입니다.

예제:

%%configure { "--class": "className" }
--user-jars-first 클래스 경로에 있는 고객의 추가 JAR 파일에 우선 순위를 지정합니다. 기본값은 null입니다.

예제:

%%configure { "--user-jars-first": "true" }
--use-postgres-driver 드라이버와의 충돌을 방지하기 위해 클래스 경로에서 Postgres JDBC 드라이버의 우선 순위를 지정합니다. Amazon Redshift JDBC 기본값은 null입니다.

예제:

%%configure { "--use-postgres-driver": "true" }
--extra-files List(string) 스크립트를 실행하기 전에 AWS Glue에서 스크립트의 작업 디렉터리에 복사하는 구성 파일과 같은 추가 파일에 대한 Amazon S3 경로입니다.

예제:

%%configure { "--extra-files": "s3://path/to/additional/files/" }
--job-bookmark-option String 작업 북마크 동작을 제어합니다. '', '또는' job-bookmark-enable '' 값을 허용합니다. job-bookmark-disable job-bookmark-pause 기본값은 job-bookmark-disable ''입니다.

예제:

%%configure { "--job-bookmark-option": "job-bookmark-enable" }
--TempDir String 작업의 임시 디렉터리로 사용될 수 있는 버킷에 대한 Amazon S3 경로를 지정합니다. 기본값은 null입니다.

예제:

%%configure { "--TempDir": "s3://path/to/temp/dir" }
--enable-s3-parquet-optimized-committer EMRFSAmazon S3에 최적화된 커미터를 사용하여 Parquet 데이터를 Amazon S3에 쓸 수 있도록 합니다. 기본값은 'true'입니다.

예제:

%%configure { "--enable-s3-parquet-optimized-committer": "false" }
--enable-rename-algorithm-v2 EMRFS이름 변경 알고리즘 버전을 버전 2로 설정합니다. 기본값은 'true'입니다.

예제:

%%configure { "--enable-rename-algorithm-v2": "true" }
--enable-glue-datacatalog AWS Glue 데이터 카탈로그를 Apache Spark Hive 메타스토어로 사용할 수 있습니다.

예제:

%%configure { --"enable-glue-datacatalog": "true" }
--enable-metrics 작업 실행을 위해 작업 프로파일링용 지표 수집을 활성화합니다. 기본값은 'false'입니다.

예제:

%%configure { "--enable-metrics": "true" }
--enable-continuous-cloudwatch-log AWS Glue 작업에 대한 실시간 연속 로깅을 활성화합니다. 기본값은 'false'입니다.

예제:

%%configure { "--enable-continuous-cloudwatch-log": "true" }
--enable-continuous-log-filter 연속 로깅을 위해 활성화된 작업을 편집하거나 해당 작업을 생성할 때 표준 필터 또는 필터 없음을 지정합니다. 기본값은 'true'입니다.

예제:

%%configure { "--enable-continuous-log-filter": "true" }
--continuous-log-stream-prefix String 연속 로깅이 활성화된 작업의 사용자 지정 Amazon CloudWatch 로그 스트림 접두사를 지정합니다. 기본값은 null입니다.

예제:

%%configure { "--continuous-log-stream-prefix": "prefix" }
--continuous-log-conversionPattern String 연속 로깅에 대해 활성화된 작업의 사용자 지정 변환 로그 패턴을 지정합니다. 기본값은 null입니다.

예제:

%%configure { "--continuous-log-conversionPattern": "pattern" }
--conf String Spark 구성 파라미터를 제어합니다. 고급 사용 사례에 해당됩니다. 각 파라미터 앞에 --conf를 사용하세요. 예제:
%%configure { "--conf": "spark.hadoop.hive.metastore.glue.catalogid=123456789012 --conf hive.metastore.client.factory.class=com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory --conf hive.metastore.schema.verification=false" }
제한 시간 정수 명령문을 종료하기 전에 Spark 세션이 완료될 때까지 기다려야 하는 최대 시간을 결정합니다.
%%configure { "timeout": "30" }

스파크 작업 (ETL및 스트리밍) 매직

명칭 유형 설명
%worker_type String 표준, G.1X 또는 G.2X가 있습니다. number_of_workers도 설정해야 합니다. 기본 worker_type은 G.1X입니다.
%connections 나열

세션에서 사용할 연결을 쉼표로 구분된 목록으로 지정합니다.

예제:

%connections my_rds_connection dy_f = glue_context.create_dynamic_frame.from_catalog(database='rds_tables', table_name='sales_table')
%extra_py_files 나열 Amazon S3에 있는 추가 Python 파일의 쉼표로 구분된 목록입니다.
%extra_jars 나열 클러스터에 포함할 추가 jar의 쉼표로 구분된 목록입니다.
%spark_conf String 세션의 사용자 지정 Spartk 구성을 지정합니다. 예: %spark_conf spark.serializer=org.apache.spark.serializer.KryoSerializer.

Ray 작업을 위한 매직

명칭 유형 설명
%min_workers 정수 Ray 작업에 할당되는 작업자의 최소 수입니다. 기본값: 1.

예제: %min_workers 2

%object_memory_head 정수 웜 스타트 이후 인스턴스 헤드 노드에서 사용 가능한 메모리의 백분율입니다. 최소값: 0 최대값: 100

예제: %object_memory_head 100

%object_memory_worker 정수 웜 스타트 이후 인스턴스 워커 노드에서 사용 가능한 메모리의 백분율입니다. 최소값: 0 최대값: 100

예제: %object_memory_worker 100

작업 매직

명칭 유형 설명
%%sql String

코드를 SQL 실행하세요. 초기 %%sql 매직 이후의 모든 줄은 SQL 코드의 일부로 전달됩니다.

예제: %%sql select * from rds_tables.sales_table

%matplot Matplotlib 수치

matplotlib 라이브러리를 사용하여 데이터를 시각화합니다.

예제:

import matplotlib.pyplot as plt # Set X-axis and Y-axis values x = [5, 2, 8, 4, 9] y = [10, 4, 8, 5, 2] # Create a bar chart plt.bar(x, y) # Show the plot %matplot plt
%plotly Plotly 수치

plotly 라이브러리를 사용하여 데이터를 시각화합니다.

예제:

import plotly.express as px #Create a graphical figure fig = px.line(x=["a","b","c"], y=[1,3,2], title="sample figure") #Show the figure %plotly fig

세션 이름 지정

AWS Glue대화형 세션은 AWS 리소스이므로 이름이 필요합니다. 이름은 각 세션마다 고유해야 하며 IAM 관리자가 제한할 수 있습니다. 자세한 내용은 를 사용한 대화형 세션 IAM 단원을 참조하십시오. Jupyter 커널은 자동으로 고유한 세션 이름을 생성합니다. 그러나 세션의 이름은 두 가지 방법으로 직접 지정할 수 있습니다.

  1. 에 있는 AWS Command Line Interface 구성 파일 사용. ~.aws/config사용하여 AWS Config 설정을 참조하십시오. AWS Command Line Interface

  2. %session_id_prefix 매직을 사용합니다. Jupyter용 AWS Glue 대화형 세션에서 지원되는 매직을 참조하세요.

세션 이름은 다음과 같이 생성됩니다.

  • 접두사와 session_id가 제공되면 세션 이름은 {prefix} - {} 가 됩니다. UUID

  • 아무것도 제공되지 않은 경우: 세션 이름은 {} 가 됩니다. UUID

세션 이름을 접두어로 붙이면 AWS CLI 또는 콘솔에 세션을 나열할 때 세션을 인식할 수 있습니다.

대화형 IAM 세션의 역할 지정

대화형 세션에서 실행하는 AWS Glue ETL 코드에 사용할 AWS Identity 및 Access Management (IAM) 역할을 지정해야 합니다.

역할에는 AWS Glue 작업을 실행하는 데 필요한 IAM 권한과 동일한 권한이 필요합니다. AWS Glue작업 및 대화형 AWS Glue세션용 IAM 역할 생성에 대한 자세한 내용은 역할 생성을 참조하십시오.

IAM역할은 다음 두 가지 방법으로 지정할 수 있습니다.

명명된 프로파일을 사용하여 세션 구성

AWS Glue대화형 세션은 boto3와 동일한 자격 증명을 사용하며 대화형 세션은 (Linux 및 macOS) AWS Command Line Interface 또는 ~/.aws/config (Windows) 에 있는 것과 같은 이름이 지정된 프로필을 사용하고 작동합니다. AWS CLI %USERPROFILE%\.aws\config 자세한 내용은 명명된 프로파일 사용을 참조하세요.

대화형 세션은 AWS Glue 서비스 역할 및 세션 ID 접두사가 프로파일에서 지정될 수 있도록 하여 명명된 프로파일을 활용합니다. 프로파일 역할을 구성하려면 아래와 같이 iam_role 키 및/또는 session_id_prefix 에 대한 줄을 명명된 프로파일에 추가합니다. session_id_prefix에는 따옴표가 필요하지 않습니다. 예를 들어 session_id_prefix를 추가하려면 session_id_prefix=myprefix의 값을 입력합니다.

[default] region=us-east-1 aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY glue_iam_role=arn:aws:iam::<AccountID>:role/<GlueServiceRole> session_id_prefix=<prefix_for_session_names> [user1] region=eu-west-1 aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY glue_iam_role=arn:aws:iam::<AccountID>:role/<GlueServiceRoleUser1> session_id_prefix=<prefix_for_session_names_for_user1>

자격 증명을 생성하는 사용자 지정 방법이 있는 경우, ~/.aws/config 파일에서 credential_process 파라미터를 사용하도록 프로파일을 구성할 수도 있습니다 예:

[profile developer] region=us-east-1 credential_process = "/Users/Dave/generate_my_credentials.sh" --username helen

credential_process 파라미터를 통한 자격 증명 소싱에 대한 자세한 내용은 외부 프로세스를 통해 자격 증명 소싱을 참조하세요.

사용 중인 프로파일에 리전 또는 iam_role이 설정되어 있지 않으면 실행하는 첫 번째 셀에서 %region%iam_role 매직을 사용하여 지정해야 합니다.