쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

제한된 실행을 통한 워크로드 분할

포커스 모드
제한된 실행을 통한 워크로드 분할 - AWS Glue

Spark 애플리케이션의 오류는 일반적으로 비효율적인 Spark 스크립트, 대규모 트랜스포메이션의 분산된 인메모리 실행 및 데이터 집합 이상으로 인해 발생합니다. 드라이버 또는 실행기의 메모리 부족 문제를 일으킬 수 있는 많은 이유가 있습니다(예: 데이터 왜곡, 너무 많은 객체 나열 또는 큰 데이터 셔플). 이러한 문제는 Spark로 엄청난 양의 백로그 데이터를 처리할 때 자주 발생합니다.

AWS Glue를 사용하면 OOM 문제를 해결하고 워크로드 분할을 통해 ETL 처리를 더 쉽게 할 수 있습니다. 워크로드 분할이 활성화되면 각 ETL 작업 실행은 처리되지 않은 데이터만 선택하며, 이 작업 실행으로 처리할 파일 수 또는 데이터 집합 크기에 대한 상한이 있습니다. 향후 작업 실행은 나머지 데이터를 처리합니다. 예를 들어 1,000개의 파일을 처리해야 하는 경우 파일 수를 500으로 설정하고 2개의 작업 실행으로 분리할 수 있습니다.

워크로드 분할은 Amazon S3 데이터 원본에 대해서만 지원됩니다.

워크로드 분할 사용

스크립트에서 수동으로 옵션을 설정하거나 카탈로그 테이블 속성을 추가하여 제한된 실행을 사용할 수 있습니다.

스크립트에서 제한된 실행으로 워크로드 분할을 사용하려면
  1. 데이터를 다시 처리하지 않으려면 새 작업 또는 기존 작업에서 작업 북마크를 사용합니다. 자세한 내용은 작업 북마크를 사용하여 처리된 데이터 추적을 참조하세요.

  2. 스크립트를 수정하고 AWS Glue getSource API의 추가 옵션에서 경계 제한을 설정합니다. state 요소를 저장하기 위해 작업 북마크에 대한 트랜스포메이션 컨텍스트도 설정해야 합니다. 예:

    Python

    glueContext.create_dynamic_frame.from_catalog( database = "database", table_name = "table_name", redshift_tmp_dir = "", transformation_ctx = "datasource0", additional_options = { "boundedFiles" : "500", # need to be string # "boundedSize" : "1000000000" unit is byte } )

    Scala

    val datasource0 = glueContext.getCatalogSource( database = "database", tableName = "table_name", redshiftTmpDir = "", transformationContext = "datasource0", additionalOptions = JsonOptions( Map("boundedFiles" -> "500") // need to be string //"boundedSize" -> "1000000000" unit is byte ) ).getDynamicFrame()
    val connectionOptions = JsonOptions( Map("paths" -> List(baseLocation), "boundedFiles" -> "30") ) val source = glueContext.getSource("s3", connectionOptions, "datasource0", "")
Data Catalog 테이블에서 제한된 실행으로 워크로드 분할을 사용하려면
  1. Data Catalog에서 테이블 구조의 parameters 필드에 키-값 페어를 설정합니다. 자세한 내용은 테이블 세부 정보 보기 및 편집을 참조하세요.

  2. 데이터 집합 크기 또는 처리되는 파일 수의 상한을 설정합니다.

    • boundedSize를 데이터 집합의 대상 크기(바이트)로 설정합니다. 테이블에서 대상 크기에 도달하면 작업 실행이 중지됩니다.

    • boundedFiles를 대상 파일 수로 설정합니다. 대상 파일 수를 처리한 후 작업 실행이 중지됩니다.

    참고

    하나의 경계만 지원되므로 boundedSize 또는 boundedFiles 중 하나만 설정해야 합니다.

작업을 자동으로 실행하도록 AWS Glue 트리거 설정

제한된 실행을 사용하면 작업을 자동으로 실행하고 순차적 실행에서 데이터를 증분적으로 로드하도록 AWS Glue 트리거를 설정할 수 있습니다. AWS Glue 콘솔로 이동하여 트리거를 생성하고 일정 시간을 설정하고 작업에 연결합니다. 그런 다음 자동으로 다음 작업 실행을 트리거하고 새 데이터 배치를 처리합니다.

또한 AWS Glue 워크플로로 여러 작업을 오케스트레이션하여 서로 다른 파티션의 데이터를 병렬로 처리할 수 있습니다. 자세한 내용은 AWS Glue 트리거AWS Glue 워크플로를 참조하세요.

사용 사례 및 옵션에 대한 자세한 내용은 AWS Glue에서 워크로드 분할로 Spark 애플리케이션 최적화를 참조하세요.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.