AWS Glue 작업에서 작업 파라미터 사용 - AWS Glue

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

AWS Glue 작업에서 작업 파라미터 사용

AWS Glue 작업을 생성할 때, RoleWorkerType과 같은 몇 가지 표준 필드를 설정합니다. Argument 필드(콘솔의 작업 파라미터)를 통해 추가 구성 정보를 제공할 수 있습니다. 이 필드에서 이 주제에 나열된 인수(파라미터)를 AWS Glue 작업에 제공할 수 있습니다. AWS Glue 작업 API에 대한 자세한 내용은 작업 섹션을 참조하세요.

작업 파라미터 설정

Job Parameters(작업 파라미터) 제목 아래의 Job details(작업 세부 정보) 탭에서 콘솔을 통해 작업을 구성할 수 있습니다. 작업에서 DefaultArguments 또는 NonOverridableArguments를 설정하거나 작업 실행에서 Arguments를 설정하여 AWS CLI를 통해 작업을 구성할 수도 있습니다. 작업에 설정된 인수는 작업이 실행될 때마다 전달되지만, 작업 실행에 설정된 인수는 해당 개별 실행에 대해서만 전달됩니다.

예를 들어 다음은 작업 파라미터를 설정하기 위해 --arguments를 사용하여 작업을 실행하는 구문입니다.

$ aws glue start-job-run --job-name "CSV to CSV" --arguments='--scriptLocation="s3://my_glue/libraries/test_lib.py"'

작업 파라미터 액세스

AWS Glue 스크립트를 작성할 때 자체 코드의 동작을 변경하기 위해 작업 파라미터 값에 액세스하려고 합니다. 라이브러리에서 이를 수행하기 위한 도우미 메서드가 제공됩니다. 이러한 메서드는 작업 파라미터 값을 재정의하는 작업 실행 파라미터 값을 해석합니다. 여러 위치에 설정된 파라미터를 해석하는 경우 NonOverridableArguments 작업은 Arguments 작업 실행을 재정의하고 이 작업 실행은 DefaultArguments 작업을 재정의합니다.

Python에서:

Python 작업에서는 getResolvedParameters 함수가 제공됩니다. 자세한 내용은 getResolvedOptions를 사용한 파라미터 액세스 단원을 참조하십시오. 작업 파라미터는 sys.argv 변수에서 사용할 수 있습니다.

Scala에서:

Scala 작업에서는 GlueArgParser 객체가 제공됩니다. 자세한 내용은 AWS Glue Scala GlueArgParser API 단원을 참조하십시오. 작업 파라미터는 sysArgs 변수에서 사용할 수 있습니다.

작업 파라미터 참조

AWS Glue에서는 작업 및 작업 실행에 대한 스크립트 환경을 설정하는 데 사용할 수 있는 다음과 같은 인수 이름을 인식합니다.

--additional-python-modules

설치할 Python 패키지 세트를 나타내는 쉼표로 구분된 목록입니다. PyPI에서 패키지를 설치하거나 사용자 지정 배포를 제공할 수 있습니다. PyPI 패키지 항목은 package==version 형식(대상 패키지의 PyPI 이름 및 버전)입니다. 사용자 지정 배포 항목은 배포에 대한 S3 경로입니다.

항목은 Python 버전 일치를 사용하여 패키지와 버전을 일치시킵니다. 즉, 2개의 등호(예: ==)를 사용해야 합니다. 다른 버전 일치 연산자도 있습니다. 자세한 내용을 알아보려면 PEP 440을 참조하세요.

모듈 설치 옵션을 pip3에 전달하려면 --python-modules-installer-option 파라미터를 사용합니다.

--auto-scale-within-microbatch

기본값은 false입니다. 이 파라미터는 스트리밍 데이터를 일련의 마이크로 배치로 처리하는 AWS Glue 스트리밍 작업에만 사용할 수 있으며, 이때 Auto Scaling을 활성화해야 합니다. 이 값을 false로 설정한 경우 완료된 마이크로 배치에 대한 배치 지속 시간의 지수 이동 평균을 계산하고 이 값을 창 크기와 비교하여 실행기 수의 스케일 업 또는 스케일 다운 여부를 결정합니다. 마이크로 배치가 완료될 때만 규모가 조정됩니다. 이 값을 true로 설정한 경우 마이크로 배치 중에 Spark 작업 수가 30초 동안 동일하게 유지되거나 현재 배치 처리가 창 크기보다 클 때 스케일 업됩니다. 실행기가 60초 넘게 유휴 상태이거나 배치 지속 시간의 지수 이동 평균이 낮으면 실행기 수가 감소합니다.

--class

Scala 스크립트 진입점으로써 Scala 클래스. 이는 --job-languagescala로 설정된 경우에만 적용됩니다.

--continuous-log-conversionPattern

연속 로깅에 대해 활성화된 작업의 사용자 지정 변환 로그 패턴을 지정합니다. 변환 패턴은 드라이버 로그와 실행기 로그에만 적용됩니다. AWS Glue 진행률 표시줄에는 영향을 주지 않습니다.

--continuous-log-logGroup

연속 로깅에 사용되는 활성화된 작업의 사용자 정의 Amazon CloudWatch 로그 그룹 이름을 지정합니다.

--continuous-log-logStreamPrefix

연속 로깅에 사용되는 작업의 사용자 정의 CloudWatch 로그 스트림 접두사를 지정합니다.

--customer-driver-env-vars--customer-executor-env-vars

이러한 파라미터는 각 작업자(드라이버 또는 실행자)에 대해 각각 운영 체제의 환경 변수를 설정합니다. AWS Glue 위에 플랫폼과 사용자 지정 프레임워크를 구축할 때 이러한 파라미터를 사용하면 사용자가 그 위에 작업을 작성할 수 있습니다. 이 두 플래그를 활성화하면 작업 스크립트 자체에 동일한 논리를 삽입하지 않고도 드라이버와 실행기에 각각 다른 환경 변수를 설정할 수 있습니다.

사용 예

다음은 이러한 파라미터를 사용하는 예제입니다.

"—customer-driver-env-vars", "CUSTOMER_KEY1=VAL1,CUSTOMER_KEY2=\"val2,val2 val2\"", "—customer-executor-env-vars", "CUSTOMER_KEY3=VAL3,KEY4=VAL4"

작업 실행 인수에서 이를 설정하는 것은 다음 명령을 실행하는 것과 동일합니다.

드라이버에서:

  • export CUSTOMER_KEY1=VAL1

  • export CUSTOMER_KEY2="val2,val2 val2"

실행기에서:

  • export CUSTOMER_KEY3=VAL3

그런 다음 작업 스크립트 자체에서 os.environ.get("CUSTOMER_KEY1") 또는 System.getenv("CUSTOMER_KEY1")을 사용하여 환경 변수를 검색할 수 있습니다.

적용된 구문

환경 변수를 정의할 때는 다음 표준을 준수하세요.

  • 각 키에는 CUSTOMER_ prefix가 있어야 합니다.

    예를 들어 "CUSTOMER_KEY3=VAL3,KEY4=VAL4"의 경우 KEY4=VAL4는 무시되고 설정되지 않습니다.

  • 각 키와 값 쌍은 단일 쉼표로 구분되어야 합니다.

    예: "CUSTOMER_KEY3=VAL3,CUSTOMER_KEY4=VAL4"

  • ‘값’에 공백이나 쉼표가 있는 경우 따옴표 안에 정의해야 합니다.

    예: CUSTOMER_KEY2=\"val2,val2 val2\"

이 구문은 bash 환경 변수 설정의 표준에 가깝게 모델링합니다.

--datalake-formats

AWS Glue 3.0 이상 버전에서 지원됨

사용할 데이터 레이크 프레임워크를 지정합니다. AWS Glue는 지정한 프레임워크에 필요한 JAR 파일을 classpath에 추가합니다. 자세한 내용은 AWS Glue ETL 작업에서 데이터 레이크 프레임워크 사용 단원을 참조하십시오.

다음 값 중 하나 이상을 쉼표로 구분하여 지정할 수 있습니다.

  • hudi

  • delta

  • iceberg

예를 들어 다음 인수를 전달하여 세 프레임워크를 모두 지정합니다.

'--datalake-formats': 'hudi,delta,iceberg'
--disable-proxy-v2

서비스 프록시를 비활성화하여 Amazon S3, CloudWatch, VPC를 통해 스크립트에서 시작하는 AWS Glue에 대한 AWS 서비스 호출을 허용합니다. 자세한 내용은 VPC를 통과하도록 AWS 호출 구성 을 참조하세요. 서비스 프록시를 비활성화하려면 이 파라미터 값을 true로 설정합니다.

--enable-auto-scaling

이 값을 true로 설정할 경우 Auto Scaling과 작업자별 청구를 사용하는 기능을 켭니다.

--enable-continuous-cloudwatch-log

AWS Glue 작업에 대한 실시간 연속 로깅을 사용합니다. CloudWatch에서 실시간 Apache Spark 작업 로그를 볼 수 있습니다.

--enable-continuous-log-filter

지속 로깅을 활성화하여 작업을 생성하거나 편집할 때 표준 필터(true) 또는 필터 없음(false)을 지정합니다. 표준 필터를 선택하면 유용하지 않은 Apache Spark 드라이버/실행기 및 Apache Hadoop YARN 하트비트 로그 메시지가 제거됩니다. 필터 없음을 선택하면 모든 로그 메시지가 제공됩니다.

--enable-glue-datacatalog

AWS Glue 데이터 카탈로그를 Apache Spark Hive 메타스토어로 사용할 수 있습니다. 이 기능을 활성화하려면 값을 true로 설정합니다.

--enable-job-insights

AWS Glue 작업 실행 인사이트로 추가 오류 분석 모니터링을 활성화합니다. 세부 정보는 AWS Glue 작업 실행 인사이트를 사용한 모니터링을 참조하세요. 기본적으로 이 값은 true로 설정되고 작업 실행 인사이트가 활성화됩니다.

이 옵션은 AWS Glue 버전 2.0과 3.0에서 사용할 수 있습니다.

--enable-metrics

이 작업 실행을 위해 작업 프로파일링용 측정치 수집을 활성화합니다. 이러한 지표는 AWS Glue콘솔 및 Amazon CloudWatch 콘솔에서 사용할 수 있습니다. 이 파라미터의 값은 관련이 없습니다. 이 기능을 활성화하려면 이 파라미터에 어떤 값이든 제공할 수 있지만 명확성을 위해 true를 권장합니다. 이 기능을 비활성화하려면 작업 구성에서 이 파라미터를 제거하세요.

--enable-observability-metrics

AWS 콘솔 및 Amazon CloudWatch 콘솔의 작업 실행 모니터링 페이지에서 각 작업 실행 내부에서 일어나는 일에 대한 인사이트를 생성하는 일련의 관찰성 지표를 사용할 수 있습니다. 이 기능을 활성화하려면 이 파라미터의 값을 true로 설정합니다. 이 기능을 비활성화하려면 false로 설정하거나 작업 구성에서 이 파라미터를 제거하세요.

--enable-rename-algorithm-v2

EMRFS 이름 바꾸기 알고리즘 버전을 버전 2로 설정합니다. Spark 작업에서 동적 파티션 덮어쓰기 모드를 사용하는 경우 중복 파티션이 생성될 가능성이 있습니다. 예를 들어, s3://bucket/table/location/p1=1/p1=1과 같은 중복 파티션으로 끝날 수 있습니다. 여기서 P1은 덮어쓰는 파티션입니다. 이름 바꾸기 알고리즘 버전 2가 이 문제를 해결합니다.

이 옵션은 AWS Glue 버전 1.0에서만 사용할 수 있습니다.

--enable-s3-parquet-optimized-committer

Amazon S3에 Parquet 데이터를 쓸 수 있도록 EMRFS S3 최적화 커미터를 사용합니다. AWS Glue 작업을 생성하거나 업데이트할 때 AWS Glue 콘솔을 통해 파라미터/값 페어를 제공할 수 있습니다. 값을 true로 설정하면 커미터가 활성화됩니다. 기본적으로 이 플래그는 AWS Glue 3.0에서 켜지고 AWS Glue 2.0에서는 꺼집니다.

자세한 내용은 EMRFS S3 최적화 커미터 사용을 참조하십시오.

--enable-spark-ui

true(으)로 설정하면 Spark UI를 사용하여 AWS Glue ETL 작업을 모니터링하고 디버그하는 기능을 켭니다.

--executor-cores

병렬로 실행할 수 있는 Spark 작업 수입니다. 이 옵션은 AWS Glue 3.0 이상에서 지원됩니다. 값은 작업자 유형에 있는 vCPU 수의 2배(G.1X의 경우 8, G.2X의 경우 16, G.4X의 경우 32, G.8X의 경우 64)를 초과해서는 안 됩니다. 이 구성을 업데이트할 때는 주의해야 합니다. 병렬 처리 성능을 높이면 메모리 및 디스크 부담이 커질 뿐 아니라 소스 및 대상 시스템에서 제한이 발생할 수 있으므로 작업 성능에 영향을 미칠 수 있습니다(예: Amazon RDS에서 동시 연결이 늘어남).

--extra-files

AWS Glue가 스크립트를 실행하기 전에 드라이버 노드의 스크립트 작업 디렉터리에 복사하는 구성 파일과 같은 추가 파일에 대한 Amazon S3 경로입니다. 여러 값은 쉼표(,)로 구분된 완전한 경로여야 합니다. 개별 파일만 지원되면 디렉터리 경로는 지원되지 않습니다. 이 옵션은 Python 쉘 작업 유형에서 지원되지 않습니다.

--extra-jars

Amazon S3는 AWS Glue가 드라이버 및 실행자에 복사하는 추가 파일에 대한 경로입니다. AWS 또한 Glue는 스크립트를 실행하기 전에 이러한 파일을 Java 클래스 경로에 추가합니다. 여러 값은 쉼표(,)로 구분된 완전한 경로여야 합니다. 확장자는 .jar와(과) 같을 필요는 없습니다

--extra-py-files

스크립트를 실행하기 전에 AWS Glue가 드라이버 노드의 Python 경로에 추가하는 추가 Python 모듈에 대한 Amazon S3 경로입니다. 여러 값은 쉼표(,)로 구분된 완전한 경로여야 합니다. 개별 파일만 지원되면 디렉터리 경로는 지원되지 않습니다.

--job-bookmark-option

작업 북마크 동작을 제어합니다. 다음 옵션 값을 설정할 수 있습니다.

‑‑ job‑bookmark‑option 값 설명
job-bookmark-enable 이전에 처리된 데이터를 계속 추적합니다. 작업이 실행되면 마지막 체크포인트 이후의 새로운 데이터를 진행합니다.
job-bookmark-disable 항상 전체 데이터셋을 진행합니다. 이전에 실행된 작업의 출력값 관리는 여러분이 직접 수행해야 합니다.
job-bookmark-pause 마지막 북마크의 상태를 업데이트하지 않고 마지막으로 성공한 실행 이후의 증분 데이터 또는 다음 하위 옵션으로 식별된 범위의 데이터를 처리합니다. 이전에 실행된 작업의 출력값 관리는 여러분이 직접 수행해야 합니다. 두 하위 옵션은 다음과 같습니다.
  • job-bookmark-from <from-value>는 이전에 마지막으로 성공한 실행까지 처리된 모든 입력을 나타내는 실행 ID이며, 지정된 실행 ID를 포함합니다. 해당하는 입력은 무시됩니다.

  • job-bookmark-to <to-value>는 이전에 마지막으로 성공한 실행까지 처리된 모든 입력을 나타내는 실행 ID이며, 지정된 실행 ID를 포함합니다. <from-value>에 의해 식별된 입력을 제외한 해당하는 입력이 작업에 의해 처리됩니다. 이 입력 이후의 입력도 처리에서 제외됩니다.

이 옵션 세트를 지정하면 작업 북마크 상태가 업데이트되지 않습니다.

하위 옵션은 선택 사항입니다. 그러나 사용할 경우 두 하위 옵션 모두 제공해야 합니다.

예를 들어, 작업 북마크를 활성화하려면 다음 인수를 전달합니다.

'--job-bookmark-option': 'job-bookmark-enable'
--job-language

스크립트 프로그래밍 언어. 이 값은 scala 또는 python이어야 합니다. 이 파라미터가 존재하지 않을 경우 기본값은 python입니다.

--python-modules-installer-option

--additional-python-modules로 모듈을 설치할 때 pip3에 전달할 옵션을 정의하는 일반 텍스트 문자열입니다. 명령줄에서와 같이 공백으로 구분되고 접두사가 대시로 된 옵션을 제공합니다. 사용에 대한 자세한 내용을 알아보려면 AWS Glue 2.0+에서 pip를 사용하여 추가 Python 모듈 설치를 참조하세요.

참고

Python 3.9를 사용하는 경우 AWS Glue 작업에는 이 옵션이 지원되지 않습니다.

--scriptLocation

ETL 스크립트가 있는 Amazon Simple Storage Service(Amazon S3) 위치입니다(s3://path/to/my/script.py 형식). 이 파라미터는 JobCommand 객체에 설정된 스크립트 위치를 재정의합니다.

--spark-event-logs-path

Amazon S3 경로를 지정합니다. Spark UI 모니터링 기능을 사용할 때 AWS Glue는 Spark UI 이벤트를 저장하기 위한 임시 디렉터리로 사용할 수 있는 버킷으로 30초마다 이 Amazon S3 경로에 대한 Spark 이벤트 로그를 플러시합니다.

--TempDir

작업의 임시 디렉터리로 사용될 수 있는 버킷에 대한 Amazon S3 경로를 지정합니다.

예를 들어, 임시 디렉터리를 설정하려면 다음 인수를 전달합니다.

'--TempDir': 's3-path-to-directory'
참고

리전에 버킷이 아직 없는 경우 AWS Glue에서 작업에 대한 임시 버킷을 생성합니다. 이 버킷은 퍼블릭 액세스를 허용할 수 있습니다. Amazon S3에서 버킷을 수정하여 퍼블릭 액세스 차단을 설정하거나 나중에 해당 리전의 모든 작업이 완료된 후 버킷을 삭제할 수 있습니다.

--use-postgres-driver

이 값을 true로 설정하면 Amazon Redshift JDBC 드라이버와의 충돌을 피하기 위해 클래스 경로에서 Postgres JDBC 드라이버의 우선순위를 지정합니다. 이 옵션은 AWS Glue 버전 2.0에서만 사용할 수 있습니다.

--user-jars-first

이 값을 true로 설정하면 클래스 경로에 있는 고객의 추가 JAR 파일의 우선순위를 지정합니다. 이 옵션은 AWS Glue 버전 2.0 이상에서만 사용할 수 있습니다.

--conf

Spark 구성 파라미터를 제어합니다. 고급 사용 사례에 해당됩니다.

--encryption-type

레거시 파라미터. 보안 구성을 사용하여 해당 동작을 구성해야 합니다. 보안 구성에 대한 자세한 내용은 AWS Glue에서 작성한 데이터 암호화 섹션을 참조하세요.

다음 인수는 AWS Glue에서 내부적으로 사용하므로 절대 사용해서는 안 됩니다.

  • --debug - AWS Glue 내부에서 사용됩니다. 설정해서는 안 됩니다.

  • --mode - AWS Glue 내부에서 사용됩니다. 설정해서는 안 됩니다.

  • --JOB_NAME - AWS Glue 내부에서 사용됩니다. 설정해서는 안 됩니다.

  • --endpoint - AWS Glue 내부에서 사용됩니다. 설정해서는 안 됩니다.

AWS Glue에서는 사이트별 사용자 지정을 수행하기 위해 sitecustomize을(를) 사용하여 Python site 모듈에서 환경을 부트스트래핑할 수 있도록 지원합니다. 자체 초기화 함수의 부트스트래핑은 고급 사용 사례에만 권장되며, AWS Glue 4.0에서 효과가 가장 뛰어납니다.

환경 변수 접두사(GLUE_CUSTOMER)는 고객 전용으로 예약되어 있습니다.