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

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

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 세션의 기본 유휴 제한 시간 값은 기본 제한 시간 값인 2,880분(48시간)입니다. 다른 세션 유형에 대해서는 해당 세션 유형에 대한 설명서를 참조하세요.

예제: %idle_timeout 3000

%session_id String 실행 중인 세션의 세션 ID를 반환합니다. 문자열이 제공되면 다음 실행 중인 세션의 세션 ID로 설정됩니다. AWS Glue Studio에서 Jupyter Notebook을 실행하면 이 매직은 변경할 수 없는 읽기 전용 값을 반환합니다.
%session_id_prefix String

형식이 [session_id_prefix]-[session_id]인 모든 세션 ID 앞에 오는 문자열을 정의합니다. 세션 ID가 제공되지 않으면 임의의 UUID가 생성됩니다. AWS Glue Studio에서 Jupyter Notebook을 실행할 때는 이 매직이 지원되지 않습니다.

예제: %session_id_prefix 001

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

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

예제: %session_type Streaming

%glue_version String

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

예제: %glue_version 3.0

작업 유형 선택을 위한 매직

명칭 유형 설명
%streaming String 세션 유형을 AWS Glue 스트리밍으로 변경합니다.
%etl String 세션 유형을 AWS Glue ETL로 변경합니다.
%glue_ray String 세션 유형을 AWS Glue for Ray로 변경합니다. AWS Glue Ray 대화형 세션에서 지원되는 매직을 참조하세요.

AWS Glue for Spart 구성 매직

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

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

세션에 대한 모든 구성 파라미터로 구성된 JSON 포맷 딕셔너리를 지정합니다. 각 파라미터는 여기서 지정하거나 개별 매직을 통해 지정할 수 있습니다.

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

%iam_role String

세션을 실행하는 데 사용할 IAM 역할 ARN을 지정합니다. 기본값은 ~/.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 Boolean 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/" }
--scriptLocation String 작업을 실행하는 스크립트의 S3 경로를 지정합니다.

예제

%%configure { "--scriptLocation": "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 Boolean 클래스 경로에서 고객의 추가 JAR 파일의 우선순위를 지정합니다. 기본값은 null입니다.

예제

%%configure { "--user-jars-first": "true" }
--use-postgres-driver Boolean Amazon Redshift JDBC 드라이버와의 충돌을 피하기 위해 클래스 경로에서 Postgres 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" }
--temp-dir String 작업의 임시 디렉터리로 사용될 수 있는 버킷에 대한 Amazon S3 경로를 지정합니다. 기본값은 null입니다.

예제

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

예제

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

예제

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

예제

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

예제

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

예제

%%configure { "--enable-continuous-cloudwatch-log": "true" }
--enable-continuous-log-filter Boolean 연속 로깅을 위해 활성화된 작업을 편집하거나 해당 작업을 생성할 때 표준 필터 또는 필터 없음을 지정합니다. 기본값은 '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 작업(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/config에 있는 AWS Command Line Interface 구성 파일을 사용합니다. AWS Command Line Interface를 사용하여 AWS Config 설정을 참조하세요.

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

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

  • 접두사와 session_id가 제공된 경우 세션 이름은 {접두사}-{UUID}가 됩니다.

  • 제공된 항목이 없을 경우 세션 이름은 {UUID}가 됩니다.

세션 이름에 접두사를 사용하면 세션을 AWS CLI 또는 콘솔에 나열할 때 식별할 수 있습니다.

대화형 세션에 대한 IAM 역할 지정

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

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

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

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

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

대화형 세션은 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 매직을 사용하여 지정해야 합니다.