데이터 원본에 Amazon S3의 파일 사용 - AWS Glue

데이터 원본에 Amazon S3의 파일 사용

Amazon S3를 데이터 원본으로 선택한 경우 다음 중 하나를 선택할 수 있습니다.

  • 데이터 카탈로그 데이터베이스 및 테이블.

  • Amazon S3의 버킷, 폴더 또는 파일.

Amazon S3 버킷을 데이터 원본으로 사용하는 경우 AWS Glue는 파일 중 하나에서 또는 샘플 파일로 지정한 파일을 사용하여 지정된 위치에 있는 데이터의 스키마를 탐지합니다. [스키마 추론(Infer schema)] 버튼을 사용할 때 스키마 감지가 발생합니다. Amazon S3 위치 또는 샘플 파일을 변경하는 경우 [스키마 추론(Infer schema)]을 다시 선택하여 새 정보로 스키마 감지를 수행해야 합니다.

Amazon S3의 파일에서 직접 읽는 데이터 원본 노드를 구성하려면
  1. 새 작업 또는 저장된 작업의 시각적 편집기로 이동합니다.

  2. Amazon S3 소스에 대한 작업 다이어그램에서 데이터 원본 노드를 선택합니다.

  3. [데이터 원본 속성(Data source properties)] 탭을 선택한 후 다음 정보를 입력합니다.

    • [S3 소스 유형(S3 source type)]: (Amazon S3 데이터 원본만 해당) [S3 위치(S3 location)] 옵션을 선택합니다.

    • [S3 URL]: 작업에 대한 데이터가 포함된 Amazon S3 버킷, 폴더 또는 파일의 경로를 입력합니다. [S3 찾아보기(Browse S3)]를 선택하여 계정에서 사용할 수 있는 위치에서 경로를 선택할 수 있습니다.

    • 재귀(Recursive): AWS Glue가 S3 위치에 있는 하위 폴더의 파일에서 데이터를 읽도록 하려면 이 옵션을 선택합니다.

      하위 폴더에 분할된 데이터가 포함된 경우 AWS Glue는 폴더 이름에 지정된 파티션 정보를 데이터 카탈로그에 추가하지 않습니다. 예를 들어 Amazon S3의 다음 폴더를 고려합니다.

      S3://sales/year=2019/month=Jan/day=1 S3://sales/year=2019/month=Jan/day=2

      재귀(Recursive)를 선택하고 sales 폴더를 S3 위치로 선택하면 AWS Glue는 모든 하위 폴더의 데이터를 읽지만 연도, 월 또는 일의 파티션을 생성하지 않습니다.

    • [데이터 포맷(Data format)]: 데이터가 저장되는 포맷을 선택합니다. JSON, CSV 또는 Parquet를 선택할 수 있습니다. 선택한 값은 소스 파일에서 데이터를 읽는 방법을 AWS Glue 작업에 알려줍니다.

      참고

      올바른 데이터 포맷을 선택하지 않을 경우 AWS Glue는 스키마를 올바르게 추론할 수 있지만 작업에서 소스 파일의 데이터를 올바르게 구문 분석할 수 없습니다.

      선택한 포맷에 따라 추가 구성 옵션을 입력할 수 있습니다.

      • [JSON](JavaScript Object Notation)

        • [JsonPath]: 테이블 스키마 정의에 사용하는 객체를 가리키는 JSON 경로입니다. JSON 경로 표현식은 XPath 표현식이 XML 문서와 함께 사용되는 것과 같은 방식으로 항상 JSON 구조를 참조합니다. JSON 경로의 "루트 멤버 객체"는 객체 또는 배열인 경우에도 항상 $라고 합니다. JSON 경로 작성 시 점이나 대괄호를 사용할 수 없습니다.

          JSON 경로에 대한 자세한 내용은 GitHub 웹 사이트의 JsonPath를 참조하세요.

        • [소스 파일의 레코드가 여러 줄에 걸쳐 있을 수 있음(Records in source files can span multiple lines)]: 단일 레코드가 CSV 파일의 여러 줄에 걸쳐 있을 수 있는 경우 이 옵션을 선택합니다.

      • [CSV](쉼표로 분리된 값)

        • 구분 기호: 행의 각 열 항목을 구분하는 문자(예: ; 또는 ,)를 입력합니다.

        • [이스케이프 문자(Escape character)]: 이스케이프 문자로 사용되는 문자를 입력합니다. 이 문자는 이스케이프 문자 바로 뒤에 오는 문자를 문자 그대로 사용해야 하며 구분 기호로 해석되어서는 안 됨을 나타냅니다.

        • [인용 문자(Quote character)]: 개별 문자열을 단일 값으로 그룹화하는 데 사용되는 문자를 입력합니다. 예를 들어 CSV 파일에 "This is a single value"와 같은 값이 있는 경우 [큰따옴표(")(Double quote ("))]를 선택합니다.

        • [소스 파일의 레코드가 여러 줄에 걸쳐 있을 수 있음(Records in source files can span multiple lines)]: 단일 레코드가 CSV 파일의 여러 줄에 걸쳐 있을 수 있는 경우 이 옵션을 선택합니다.

        • [소스 파일의 첫 번째 줄에 열 머리글 포함(First line of source file contains column headers)]: CSV 파일의 첫 번째 행에 데이터 대신 열 머리글이 포함된 경우 이 옵션을 선택합니다.

      • [Parquet](Apache Parquet 컬럼 방식 스토리지)

        Parquet 포맷으로 저장된 데이터에 대해 구성할 추가 설정이 없습니다.

    • [분할 조건자(Partition predicate)]: 데이터 원본에서 읽은 데이터를 분할하려면 분할 열만 포함하는 Spark SQL 기반의 부울 식을 입력합니다. 예: "(year=='2020' and month=='04')"

    • 고급 옵션(Advanced options): AWS Glue가 특정 파일을 기준으로 데이터 스키마를 탐지하도록 하려면 이 섹션을 확장합니다.

      • 스키마 추론(Schema inference): AWS Glue가 파일을 선택하도록 하는 대신 특정 파일을 사용하려면 S3에서 샘플 파일 선택(Choose a sample file from S3) 옵션을 선택합니다.

      • [자동 샘플링된 파일(Auto-sampled file)]: 스키마를 추론하는 데 사용할 Amazon S3의 파일 경로를 입력합니다.

      데이터 원본 노드를 편집하고 선택한 샘플 파일을 변경하는 경우 [스키마 다시 로드(Reload schema)]를 사용하여 새 샘플 파일로 스키마를 감지합니다.

  4. [스키마 추론(Infer schema)] 버튼을 선택하여 Amazon S3의 소스 파일에서 스키마를 감지합니다. Amazon S3 위치 또는 샘플 파일을 변경하는 경우 [스키마 추론(Infer schema)]을 다시 선택하여 새 정보로 스키마를 추론해야 합니다.