AWS Glue Studio에서 Hudi 프레임워크 사용 - AWS Glue

AWS Glue Studio에서 Hudi 프레임워크 사용

작업을 생성하거나 편집할 때 AWS Glue Studio는 사용 중인 AWS Glue의 버전에 따라 해당하는 Hudi 라이브러리를 자동으로 추가합니다. 자세한 내용은 AWS Glue에서 Hudi 프레임워크 사용을 참조하세요.

데이터 카탈로그 데이터 소스에서 Apache Hudi 프레임워크 사용

작업에 Hudi 데이터 소스 형식을 추가하려면
  1. 소스 메뉴에서 AWS Glue Studio 데이터 카탈로그를 선택합니다.

  2. 데이터 소스 속성 탭에서 데이터베이스와 테이블을 선택합니다.

  3. AWS Glue Studio는 형식 유형을 Apache Hudi와 Amazon S3 URL로 표시합니다.

    스크린샷은 데이터 카탈로그 소스 노드의 데이터 소스 속성 탭을 보여줍니다.

Amazon S3 데이터 소스에서 Hudi 프레임워크 사용

  1. 소스 메뉴에서 Amazon S3를 선택합니다.

  2. Amazon S3 소스 유형으로 데이터 카탈로그 테이블을 선택한 경우 데이터베이스와 테이블을 선택합니다.

  3. AWS Glue Studio는 형식을 Apache Hudi와 Amazon S3 URL로 표시합니다.

  4. Amazon S3 소스 유형으로 Amazon S3 위치를 선택한 경우 Amazon S3 찾아보기를 클릭하여 Amazon S3 URL을 선택합니다.

  5. 데이터 형식에서 Apache Hudi를 선택합니다.

    참고

    AWS Glue Studio가 선택한 Amazon S3 폴더 또는 파일에서 스키마를 유추할 수 없는 경우 추가 옵션을 선택하여 새 폴더 또는 파일을 선택합니다.

    추가 옵션스키마 추론 아래에서 다음 옵션을 선택합니다.

    • AWS Glue Studio에서 통해 샘플 파일을 자동으로 선택하도록 하겠습니다. AWS Glue Studio는 스키마를 추론할 수 있도록 Amazon S3 위치에서 샘플 파일을 선택합니다. 자동 샘플링된 파일 필드에서 자동으로 선택된 파일을 볼 수 있습니다.

    • Amazon S3에서 샘플 파일을 선택합니다. Amazon S3 찾아보기를 클릭하여 사용할 Amazon S3 파일을 선택합니다.

  6. 스키마 추론을 클릭합니다. 그런 다음 출력 스키마 탭을 클릭하여 출력 스키마를 볼 수 있습니다.

  7. 키-값 페어를 입력하려면 추가 옵션을 선택합니다.

    이 스크린샷은 Amazon S3 데이터 소스 노드의 데이터 소스 속성 탭에 있는 추가 옵션 섹션을 보여줍니다.

데이터 대상에서 Apache Hudi 프레임워크 사용

데이터 카탈로그 데이터 대상에서 Apache Hudi 프레임워크 사용

  1. 대상 메뉴에서 AWS Glue Studio 데이터 카탈로그를 선택합니다.

  2. 데이터 소스 속성 탭에서 데이터베이스와 테이블을 선택합니다.

  3. AWS Glue Studio는 형식 유형을 Apache Hudi와 Amazon S3 URL로 표시합니다.

Amazon S3 데이터 대상에서 Apache Hudi 프레임워크 사용

값을 입력하거나 사용 가능한 옵션 중에서 선택하여 Apache Hudi 형식을 구성합니다. Apache Hudi에 대한 자세한 내용은 Apache Hudi 설명서를 참조하세요.

이 스크린샷은 Amazon S3 데이터 소스 노드의 데이터 소스 속성 탭에 있는 추가 옵션 섹션을 보여줍니다.
  • Hudi 테이블 이름 - HUDI 테이블의 이름입니다.

  • Hudi 스토리지 유형 - 다음 두 가지 옵션 중에서 선택합니다.

    • 쓸 때 복사 - 읽기 성능을 최적화하기 위해 권장됩니다. Hudi 스토리지의 기본 유형입니다. 업데이트할 때마다 쓰기 중에 새 버전의 파일이 생성됩니다.

    • 읽을 때 병합 - 쓰기 지연 시간을 최소화하기 위해 권장됩니다. 업데이트는 행 기반 delta 파일에 기록되며 새 버전의 열 형식 파일을 작성할 때 필요에 따라 압축됩니다.

  • Hudi 쓰기 작업 - 다음 옵션 중에서 선택합니다.

    • Upsert - 인덱스를 조회하여 입력 레코드를 먼저 삽입 또는 업데이트로 태깅하는 기본 작업입니다. 기존 데이터를 업데이트하는 경우에 권장됩니다.

    • 삽입 - 레코드를 삽입하지만 기존 레코드를 확인하지 않으므로 중복이 발생할 수 있습니다.

    • 대량 삽입 - 레코드를 삽입하며 대량의 데이터에 권장됩니다.

  • Hudi 레코드 키 필드 - 검색 창을 사용하여 기본 레코드 키를 검색하고 선택합니다. Hudi의 레코드는 한 쌍의 레코드 키와 해당 레코드가 속한 파티션 경로인 프라이머리 키로 식별됩니다.

  • Hudi 사전 결합 필드 - 실제 쓰기 전에 사전 결합에 사용되는 필드입니다. 두 레코드에 동일한 키 값이 있는 경우 AWS Glue Studio는 사전 결합 필드에 대해 가장 큰 값을 가진 레코드를 선택합니다. 증분 값(예: updated_at)이 속한 필드를 설정합니다.

  • 압축 유형 - 압축 유형 옵션(비압축, GZIP, LZO 또는 Snappy) 중 하나를 선택합니다.

  • Amazon S3 대상 위치 - S3 찾아보기를 클릭하여 Amazon S3 대상 위치를 선택합니다.

  • 데이터 카탈로그 업데이트 옵션 - 다음 옵션 중에 선택합니다.

    • [데이터 카탈로그 업데이트 안 함(Do not update the Data Catalog)]: (기본값) 스키마가 변경되거나 새 파티션이 추가된 경우에도 작업에서 데이터 카탈로그를 업데이트하지 않으려면 이 옵션을 선택합니다.

    • 데이터 카탈로그에 테이블 생성, 후속 실행 시 스키마 업데이트 및 새 파티션 추가: 이 옵션을 선택하면 작업이 처음 실행될 때 데이터 카탈로그에 테이블이 생성됩니다. 후속 작업 실행 시 스키마가 변경되거나 새 파티션이 추가되면 작업이 데이터 카탈로그 테이블을 업데이트합니다.

      또한 데이터 카탈로그에서 데이터베이스를 선택하고 테이블 이름을 입력해야 합니다.

    • [데이터 카탈로그에 테이블 생성, 기존 스키마 유지 및 새 파티션 추가(Create a table in the Data Catalog and on subsequent runs, keep existing schema and add new partitions)]: 이 옵션을 선택하면 작업이 처음 실행될 때 데이터 카탈로그에 테이블이 생성됩니다. 후속 작업 실행 시 작업은 새 파티션을 추가하기 위해서만 데이터 카탈로그 테이블을 업데이트합니다.

      또한 데이터 카탈로그에서 데이터베이스를 선택하고 테이블 이름을 입력해야 합니다.

  • [파티션 키(Partition keys)]: 출력에서 파티션 키로 사용할 열을 선택합니다. 파티션 키를 더 추가하려면 [파티션 키 추가(Add a partition key)]를 선택합니다.

  • 추가 옵션 - 필요에 따라 키-값 페어를 입력합니다.

AWS Glue Studio를 통해 코드 생성

작업이 저장될 때 Hudi 소스 또는 대상이 감지되면 다음 작업 파라미터가 작업에 추가됩니다.

  • --datalake-formats - 시각적 작업에서 감지된 데이터 레이크 형식의 개별 목록('형식'을 선택하여 직접적으로 또는 데이터 레이크가 지원하는 카탈로그 테이블을 선택하여 간접적으로)

  • --conf - --datalake-formats의 값을 기반으로 생성됩니다. 예를 들어, --datalake-formats의 값이 'hudi'인 경우 AWS Glue에 이 파라미터에 대한 spark.serializer=org.apache.spark.serializer.KryoSerializer —conf spark.sql.hive.convertMetastoreParquet=false 값이 생성됩니다.

AWS Glue 제공 라이브러리 재정의

AWS Glue에서 지원하지 않는 Hudi 버전을 사용하려는 경우 자체 Hudi 라이브러리 JAR 파일을 지정하면 됩니다. 자체 JAR 파일을 사용하려면:

  • --extra-jars 작업 파라미터를 사용합니다. 예: '--extra-jars': 's3pathtojarfile.jar'. 자세한 내용을 알아보려면 AWS Glue 작업 파라미터를 참조하세요.

  • --datalake-formats 작업 파라미터의 값으로 hudi를 포함하지 마세요. 빈 문자열을 값으로 입력하면 AWS Glue에서 데이터 레이크 라이브러리를 자동으로 제공하지 않습니다. 자세한 내용은 AWS Glue에서 Hudi 프레임워크 사용을 참조하세요.