AWS Glue Studio를 사용하여 ETL 작업 관리 - AWS Glue

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

AWS Glue Studio를 사용하여 ETL 작업 관리

AWS Glue Studio의 간단한 그래픽 인터페이스를 사용하여 ETL 작업을 관리할 수 있습니다. 탐색 메뉴를 사용하여 [작업(Jobs)]을 선택하여 [작업(Jobs)] 페이지를 봅니다. 이 페이지에서 AWS Glue Studio 또는 AWS Glue 콘솔로 생성한 모든 작업을 볼 수 있습니다. 이 페이지에서 작업을 보고, 관리하고, 실행할 수 있습니다.

작업 실행 시작

AWS Glue Studio에서 온디맨드로 작업을 실행할 수 있습니다. 작업은 여러 번 실행할 수 있으며 작업을 실행할 때마다 AWS Glue는 작업 활동 및 성능에 대한 정보를 수집합니다. 이 정보를 작업 실행이라고 하며 작업 실행 ID로 식별됩니다.

다음과 같은 방법으로 AWS Glue Studio에서 작업 실행을 시작할 수 있습니다.

  • [작업(Jobs)] 페이지에서 시작할 작업을 선택한 다음 [작업 실행(Run job)] 버튼을 선택합니다.

  • 비주얼 편집기에서 작업을 보고 있고 작업이 저장된 경우 [실행(Run)] 버튼을 선택하여 작업 실행을 시작할 수 있습니다.

작업 실행에 대한 자세한 내용은 AWS Glue Developer GuideWorking with Jobs on the AWS Glue Console을 참조하세요.

작업 실행 예약

AWS Glue Studio에서 특정 시간에 작업이 실행되도록 일정을 생성할 수 있습니다. 작업이 실행되는 횟수, 실행되는 요일 및 실행되는 시간과 같은 제약 조건을 지정할 수 있습니다. 이러한 제약 조건은 cron을 기준으로 하며 cron과 동일한 제약 조건을 갖습니다. 예를 들어, 매월 31일에 작업을 실행하고자 한다면 매월 31일이 없다는 점을 유의하기 바랍니다. cron에 대한 자세한 내용은 AWS Glue Developer GuideCron Expressions를 참조하세요.

일정에 따라 작업을 실행하려면
  1. 다음 방법 중 하나를 사용하여 작업 일정을 생성합니다.

    • [작업(Jobs)] 페이지에서 일정을 생성할 작업을 선택하고 [작업(Actions)]을 선택한 다음 [작업 예약(Schedule job)]을 선택합니다.

    • 시각적 편집기에서 작업을 보고 있고 작업이 저장된 경우 [일정(Schedules)] 탭을 선택합니다. 그런 다음 [일정 생성(Create Schedule)]을 선택합니다.

  2. [작업 실행 예약(Schedule job run)] 페이지에서 다음 정보를 입력합니다.

    • [이름(Name)]: 작업 예약의 이름을 입력합니다.

    • [빈도(Frequency)]: 작업 일정의 빈도를 입력합니다. 다음을 선택할 수 있습니다.

      • [매시간(Hourly)]: 작업이 특정 분에 시작하여 매시간 실행됩니다. 작업을 실행해야 하는 [분(Minute)]을 지정할 수 있습니다. 기본적으로 매시간을 선택하면 작업이 시작 시간(0분)에 실행됩니다.

      • [매일(Daily)]: 작업이 특정 시간에 시작하여 매일 실행됩니다. 작업을 실행해야 하는 [분(Minute)]과 작업의 [시작 시간(Start hour)]을 지정할 수 있습니다. 시간은 23시간제를 사용하여 지정되며 오후 시간에는 13~23의 숫자를 사용합니다. 분 및 시간의 기본값은 0입니다. 즉, [매일(Daily)]을 선택하면 기본적으로 작업이 자정에 실행됩니다.

      • [매주(Weekly)]: 작업이 매주 하나 이상의 요일에 실행됩니다. 매일에 대해 앞에서 설명한 것과 동일한 설정 외에도 작업을 실행할 요일을 선택할 수 있습니다. 하루 이상을 선택할 수 있습니다.

      • [매월(Monthly)]: 작업이 매월 특정 날짜에 실행됩니다. 매일에 대해 앞에서 설명한 것과 동일한 설정 외에도 작업을 실행할 날짜를 선택할 수 있습니다. 1~31의 숫자 값으로 날짜를 지정합니다. 존재하지 않는 날짜(예: 2월 30일)를 선택하면 해당 달에 작업이 실행되지 않습니다.

      • [사용자 정의(Custom)]: cron 구문을 사용하여 작업 일정에 대한 표현식을 입력합니다. Cron 표현식을 사용하면 매월 말일(특정 날짜 대신) 또는 3개월마다 해당 월의 7일과 21일 같은 더 복잡한 일정을 생성할 수 있습니다.

        AWS Glue Developer GuideCron Expressions를 참조하세요.

    • [설명(Description)]: 선택적으로 작업 일정에 대한 설명을 입력할 수 있습니다. 여러 작업에 대해 동일한 일정을 사용하려는 경우 설명이 있으면 작업 일정이 수행하는 작업을 더 쉽게 결정할 수 있습니다.

  3. [일정 생성(Create schedule)]을 선택하여 작업 일정을 저장합니다.

  4. 일정을 생성하면 콘솔 페이지 상단에 성공 메시지가 나타납니다. 이 배너에서 [작업 세부 정보(Job details)]를 선택하여 작업 세부 정보를 볼 수 있습니다. 그러면 [일정(Schedules)] 탭이 선택된 상태로 시각적 작업 편집기 페이지가 열립니다.

작업 일정 관리

작업에 대한 일정을 생성한 후 시각적 편집기에서 작업을 열고 [일정(Schedules)] 탭을 선택하여 일정을 관리할 수 있습니다.

시각적 편집기의 [일정(Schedules)] 탭에서 다음 태스크를 수행할 수 있습니다.

  • 새 예약을 생성합니다.

    [일정 생성(Create schedule)]을 선택하고 작업 실행 예약에 설명된 대로 일정 정보를 입력합니다.

  • 기존 일정을 편집합니다.

    편집할 일정을 선택한 다음 [작업(Action)]과 [일정 편집(Edit schedule)]을 차례로 선택합니다. 기존 일정을 편집하도록 선택하면 [빈도(Frequency)]가 [사용자 정의(Custom)]로 표시되고 일정이 cron 표현식으로 표시됩니다. cron 표현식을 수정하거나 [빈도(Frequency)] 버튼을 사용하여 새 일정을 지정할 수 있습니다. 변경을 마쳤으면 [예약 업데이트(Update schedule)]를 선택합니다.

  • 활성 일정을 일시 중지합니다.

    활성 일정을 선택한 다음 [작업(Action)]과 [일정 일시 중지(Pause schedule)]를 차례로 선택합니다. 일정이 즉시 비활성화됩니다. 새로 고침(다시 로드) 단추를 선택하여 업데이트된 작업 일정 상태를 봅니다.

  • 일시 중지된 일정을 재개합니다.

    비활성화된 일정을 선택한 다음 [작업(Action)]과 [일정 재개(Resume schedule)]를 차례로 선택합니다. 일정이 즉시 활성화됩니다. 새로 고침(다시 로드) 단추를 선택하여 업데이트된 작업 일정 상태를 봅니다.

  • 일정을 삭제합니다.

    제거할 일정을 선택한 다음 [작업(Action)]과 [일정 삭제(Delete schedule)]를 차례로 선택합니다. 일정이 즉시 삭제됩니다. 새로 고침(다시 로드) 단추를 선택하여 업데이트된 작업 일정 목록을 봅니다. 일정은 완전히 제거될 때까지 [삭제 중(Deleting)] 상태로 표시됩니다.

작업 실행 중지

작업 실행이 완료되기 전에 작업을 중지할 수 있습니다. 작업이 제대로 구성되지 않았거나 작업을 완료하는 데 너무 오래 걸리는 경우 이 옵션을 선택할 수 있습니다.

[모니터링(Monitoring)] 페이지의 [작업 실행(Job runs)] 목록에서 중지할 작업을 선택하고 [작업(Actions)]을 선택한 다음 [실행 중지(Stop run)]를 선택합니다.

작업 보기

[작업(Jobs)] 페이지에서 모든 작업을 볼 수 있습니다. 탐색 창에서 [작업(Jobs)]을 선택하여 이 페이지에 액세스할 수 있습니다.

[작업(Jobs)] 페이지에서 계정에 생성된 모든 작업을 볼 수 있습니다. [작업(Your jobs)] 목록에는 작업 이름, 유형, 해당 작업의 마지막 실행 상태 및 작업이 생성되고 마지막으로 수정된 날짜가 표시됩니다. 작업의 이름을 선택하여 해당 작업에 대한 자세한 정보를 볼 수 있습니다.

모니터링 대시보드를 사용하여 모든 작업을 볼 수도 있습니다. 탐색 창에서 [모니터링(Monitoring)]을 선택하여 대시보드에 액세스할 수 있습니다.

작업 표시 사용자 지정

[작업(Jobs)] 페이지의 [작업(Your jobs)] 섹션에 작업이 표시되는 방식을 사용자 지정할 수 있습니다. 또한 검색 텍스트 필드에 텍스트를 입력하여 해당 텍스트가 포함된 이름의 작업만 표시할 수 있습니다.

작업(Your jobs) 섹션에서 설정 아이콘( 
            A gear symbol
          )을 선택한 경우 AWS Glue Studio가 테이블에 정보를 표시하는 방식을 사용자 지정할 수 있습니다. 표시에서 텍스트 줄 바꿈을 선택하고, 페이지에 표시되는 작업 수를 변경하고, 표시할 열을 지정할 수 있습니다.

최근 작업 실행에 대한 정보 보기

소스 위치에 새 데이터가 추가되면 작업이 여러 번 실행될 수 있습니다. 작업이 실행될 때마다 작업 실행에 고유한 ID가 할당되고 해당 작업 실행에 대한 정보가 수집됩니다. 다음 방법을 사용하여 이 정보를 볼 수 있습니다.

  • 현재 표시된 작업에 대한 작업 실행 정보를 보려면 시각적 편집기의 [실행(Runs)] 탭을 선택합니다.

    [실행(Runs)] 탭([최근 작업 실행(Recent job runs)] 페이지)에는 각 작업 실행에 대한 카드가 있습니다. [실행(Runs)] 탭에 표시되는 정보는 다음과 같습니다.

    • 작업 실행 ID

    • 이 작업을 실행하려는 시도 횟수

    • 작업 실행 상태

    • 작업 실행의 시작 및 종료 시간

    • 작업 실행을 위한 런타임

    • 작업 로그 파일에 대한 링크

    • 작업 오류 로그 파일에 대한 링크

    • 실패한 작업에 대해 반환된 오류

  • 작업 실행을 선택하면 다음을 포함하여 작업에 대한 추가 정보를 볼 수 있습니다.

세부 정보 보기를 선택하여 작업 실행 세부 정보 페이지에서 유사한 정보를 볼 수 있습니다. 모니터링 페이지를 통해 작업 실행 세부 정보 페이지로 이동할 수도 있습니다. 탐색 창에서 모니터링을 선택합니다. [작업 실행(Job runs)] 목록까지 아래로 스크롤합니다. 작업을 선택한 후 [실행 세부 정보 보기(View run details)]를 선택합니다. 내용은 작업 실행의 세부 정보 보기에 설명되어 있습니다.

작업 로그에 대한 자세한 내용은 작업 실행 로그 보기 섹션을 참조하세요.

작업 스크립트 보기

작업의 모든 노드에 대한 정보를 제공하면 AWS Glue Studio는 작업이 소스에서 데이터를 읽고, 데이터를 변환하고, 대상 위치에 데이터를 쓰는 데 사용하는 스크립트를 생성합니다. 작업을 저장하면 이 스크립트를 언제든지 볼 수 있습니다.

작업에 대해 생성된 스크립트를 보려면
  1. 탐색 창에서 [작업(Jobs)]을 선택합니다.

  2. [작업(Jobs)] 페이지의 [작업 목록(Your Jobs)]에서 검토할 작업의 이름을 선택합니다. 또는 목록에서 작업을 선택하고 [작업(Actions)] 메뉴를 선택한 다음 [작업 편집(Edit job)]을 선택할 수 있습니다.

  3. 시각적 편집기 페이지에서 맨 위에 있는 [스크립트(Script)] 탭을 선택하여 작업 스크립트를 봅니다.

    작업 스크립트를 편집하려면 AWS Glue 프로그래밍 안내서 섹션을 참조하세요.

작업 속성 수정

작업 다이어그램의 노드는 작업에 의해 수행되는 작업을 정의하지만 작업에 대해 구성 할 수있는 몇 가지 속성도 있습니다. 이러한 속성은 작업이 실행되는 환경, 작업이 사용하는 리소스, 임곗값 설정, 보안 설정 등을 결정합니다.

작업 실행 환경을 사용 지정하려면
  1. 탐색 창에서 [작업(Jobs)]을 선택합니다.

  2. [작업(Jobs)] 페이지의 [작업 목록(Your Jobs)]에서 검토할 작업의 이름을 선택합니다.

  3. 시각적 편집기 페이지에서 작업 편집 창 상단의 [작업 세부 정보(Job details)] 탭을 선택합니다.

  4. 필요에 따라 작업 속성을 수정합니다.

    작업 속성에 대한 자세한 내용은 AWS Glue Developer GuideDefining Job Properties를 참조하세요.

  5. 다음과 같은 추가 작업 속성을 지정해야 하는 경우 [고급 속성(Advanced properties)] 섹션을 확장합니다.

    • [스크립트 파일 이름(Script filename)] - Amazon S3에 작업 스크립트를 저장하는 파일의 이름입니다.

    • [스크립트 경로(Script path)] - 작업 스크립트가 저장되는 Amazon S3 위치입니다.

    • [작업 지표(Job metrics)] - (Python 셸 작업에는 사용할 수 없음) 이 작업이 실행될 때 Amazon CloudWatch 지표 생성을 설정합니다.

    • [연속 로깅(Continuous logging)] - (Python 셸 작업에는 사용할 수 없음) CloudWatch에 대한 연속 로깅을 설정하여 작업이 완료되기 전에 로그를 볼 수 있습니다.

    • [Spark UI] 및 [Spark UI 로그 경로(Spark UI logs path)] - (Python 셸 작업에는 사용할 수 없음) 이 작업을 모니터링하기 위해 Spark UI를 사용하도록 설정하고 Spark UI 로그의 위치를 지정합니다.

    • [최대 동시성(Maximum concurrency)] - 이 작업에 허용된 최대 동시 실행 수를 설정합니다.

    • [임시 경로(Temporary path)] – AWS Glue가 스크립트를 실행할 때 임시 중간 결과가 작성된 Amazon S3의 작업 디렉터리의 위치를 제공합니다.

    • [지연 알림 임곗값(분)(Delay notification threshold (minutes))] - 작업에 대한 지연 임곗값을 지정합니다. 작업이 임곗값에 지정된 시간보다 오래 실행되면 AWS Glue는 작업에 대한 지연 알림을 CloudWatch로 보냅니다.

    • [보안 구성(Security configuration)] 및 [서버 측 암호화(Server-side encryption)] - 이 필드를 사용하여 작업에 대한 암호화 옵션을 선택합니다.

    • [Glue Data Catalog를 Hive 메타스토어로 사용(Use Glue Data Catalog as the Hive metastore)] - Apache Hive Metastore의 대안으로 AWS Glue Data Catalog를 사용하려면 이 옵션을 선택합니다.

    • [추가 네트워크 연결(Additional network connection)] – VPC의 데이터 원본에 대해 Network 유형의 연결을 지정하여 작업이 VPC를 통해 데이터에 액세스할 수 있도록 할 수 있습니다.

    • [Python 라이브러리 경로(Python library path)], [종속 jar 경로(Dependent jars path)](Python 셸 작업에는 사용할 수 없음) 또는 [참조된 파일 경로(Referenced files) path] – 이 필드를 사용하여 스크립트를 실행할 때 작업에서 사용하는 추가 파일의 위치를 지정합니다.

    • [작업 파라미터(Job Parameters)] – 이름이 지정된 파라미터로 작업 스크립트에 전달되는 키-값 페어의 집합을 추가할 수 있습니다. Python은 AWS Glue API를 호출할 경우, 파라미터를 이름에 따라 정확하게 통과하는 것이 최선의 방법입니다. 작업 스크립트에서 파라미터 사용에 대한 자세한 내용은 AWS Glue Developer GuidePassing and Accessing Python Parameters in AWS Glue를 참조하세요.

    • [태그(Tags)] - 작업에 태그를 추가하면 태그를 구성하고 식별하는 데 도움이 됩니다.

  6. 작업 속성을 수정한 후 작업을 저장합니다.

Amazon S3에 Spark 셔플 파일 저장

일부 ETL 작업은 예를 들어 조인 변환을 사용할 때 여러 파티션에서 정보를 읽고 결합해야 합니다. 이 작업을 셔플링이라고 합니다. 셔플 중에 데이터가 디스크에 기록되고 네트워크를 통해 전송됩니다. AWS Glue 버전 3.0을 사용하면 Amazon S3를 이러한 파일의 저장 위치로 구성할 수 있습니다. AWS Glue는 Amazon S3에서 셔플 파일을 쓰고 읽는 셔플 관리자를 제공합니다. Amazon S3에서 셔플 파일 쓰기 및 읽기는 로컬 디스크(또는 Amazon EC2에 크게 최적화된 Amazon EBS)에 비해 느립니다(5~20%). 그러나 Amazon S3는 무제한 스토리지 용량을 제공하므로 작업을 실행할 때 "No space left on device" 오류에 대해 걱정할 필요가 없습니다.

셔플 파일에 Amazon S3를 사용하도록 작업을 구성하려면
  1. [작업(Jobs)] 페이지의 [작업 목록(Your Jobs)]에서 수정할 작업의 이름을 선택합니다.

  2. 시각적 편집기 페이지에서 작업 편집 창 상단의 [작업 세부 정보(Job details)] 탭을 선택합니다.

    [작업 파라미터(Job parameters)] 섹션으로 스크롤을 내립니다.

  3. 다음 키-값 페어를 지정합니다.

    • --write-shuffle-files-to-s3true

      AWS Glue의 셔플 관리자가 Amazon S3 버킷을 사용하여 셔플 데이터를 쓰고 읽도록 구성하는 주요 파라미터입니다. 이 파라미터의 기본값은 false입니다.

    • (선택 사항) --write-shuffle-spills-to-s3 - true

      이 파라미터를 사용하면 유출 파일을 Amazon S3 버킷으로 오프로드할 수 있으므로 AWS Glue에서 Spark 작업에 대한 추가 복원력을 제공합니다. 이는 많은 데이터를 디스크로 유출하는 대규모 워크로드에만 필요합니다. 이 파라미터의 기본값은 false입니다.

    • (선택 사항) --conf spark.shuffle.glue.s3ShuffleBucket - S3://<shuffle-bucket>

      이 파라미터는 셔플 파일을 작성할 때 사용할 Amazon S3 버킷을 지정합니다. 이 파라미터를 설정하지 않으면 위치는 [임시 경로(Temporary path)](--TempDir)에 지정된 위치의 shuffle-data 폴더입니다.

      참고

      셔플 버킷의 위치가 작업이 실행되는 동일한 AWS 리전에 있는지 확인합니다.

      또한 셔플 서비스는 작업 실행이 완료된 후 파일을 정리하지 않으므로 셔플 버킷 위치에서 Amazon S3 스토리지 수명 주기 정책을 구성해야 합니다. 자세한 내용은 Amazon S3 사용 설명서스토리지 수명 주기 관리를 참조하세요.

작업 저장

작업을 저장할 때까지 빨간색 [작업이 저장되지 않음(Job has not been saved)] 설명선이 [저장(Save)] 버튼 왼쪽에 표시됩니다.


        [저장(Save)] 버튼 왼쪽의 "작업이 저장되지 않음(Job has not been saved)"이라는 레이블이 있는 빨간색 타원.
작업을 저장하려면
  1. [시각적(Visual)] 및 [작업 세부 정보(Job details)] 탭에 필요한 모든 정보를 제공합니다.

  2. 저장 버튼을 선택합니다.

    작업을 저장한 후 '저장되지 않음(not saved)' 설명선이 변경되어 작업이 마지막으로 저장된 시간과 날짜를 표시합니다.

작업을 저장하기 전에 AWS Glue Studio를 종료하면 다음에 AWS Glue Studio에 로그인할 때 알림이 표시됩니다. 알림은 저장되지 않은 작업이 있음을 나타내며 복원할 것인지 묻습니다. 작업을 복원하도록 선택한 경우 작업을 계속 편집할 수 있습니다.

작업 저장 시 발생하는 오류 문제 해결

[저장(Save)] 버튼을 선택했지만 작업에 일부 필수 정보가 누락된 경우 정보가 누락된 탭에 빨간색 설명선이 나타납니다. 설명선의 숫자는 감지된 누락된 필드 수를 나타냅니다.


          "제목 없는 작업"이라는 작업에 대한 시각적 편집기 창의 탭을 보여주는 스크린샷은 시각적 탭에 2로 레이블이 지정된 설명선과 작업 세부 정보 탭에 1로 레이블이 지정된 설명선이 있습니다.
  • 시각적 편집기의 노드가 올바르게 구성되지 않은 경우 [시각적(Visual)] 탭은 빨간색 설명선을 표시하고 오류가 있는 노드는 경고 기호 
                A red triangle with an exclamation point in the center
              를 표시합니다.

    1. 노드를 선택합니다. 노드 세부 정보 패널에서 누락되거나 잘못된 정보가 있는 탭에 빨간색 설명선이 나타납니다.

    2. 노드 세부 정보 패널에서 빨간색 설명선이 표시된 탭을 선택한 다음 강조 표시된 문제 필드를 찾습니다. 필드 아래의 오류 메시지는 문제에 대한 추가 정보를 제공합니다.

      
                  작업 편집기의 [시각적(Visual)] 탭을 보여주는 스크린샷. 2라는 레이블이 붙은 설명선이 있음. 경고 레이블이 표시된 데이터 원본 노드가 선택되었습니다. 노드 세부 정보 패널의 데이터 원본 속성 탭은 2라는 레이블이 붙은 설명선이 있으며 선택되어 있습니다. [데이터베이스(Database)] 및 [테이블(Table)]의 두 필드는 빨간색 윤곽선으로 표시되며 해당 필드에 값이 필요함을 나타내는 메시지가 그 아래에 있습니다.
  • 작업 속성에 문제가 있는 경우 [작업 세부 정보(Job details)] 탭에 빨간색 설명선이 표시됩니다. 해당 탭을 선택하고 강조 표시된 문제 필드를 찾습니다. 필드 아래의 오류 메시지는 문제에 대한 추가 정보를 제공합니다.

    
              작업 편집기의 [작업 세부 정보(Job details)] 탭을 보여주는 스크린샷. 1이라는 레이블이 붙은 설명선이 있음. "IAM Role(IAM 역할)" 필드는 빨간색 윤곽선으로 표시되며 그 아래에 값이 필요함을 나타내는 메시지가 있습니다.

작업 복제

[작업 복제(Clone job)] 작업을 사용하여 기존 작업을 새 작업으로 복사할 수 있습니다.

기존 작업을 복사하여 새 작업을 생성하려면
  1. [작업(Jobs)] 페이지의 [작업 목록(Your jobs)]에서 복제할 작업을 선택합니다.

  2. [작업(Actions)] 메뉴에서 [작업 복제(Clone job)]를 선택합니다.

  3. 새 작업의 이름을 입력합니다. 그런 다음 작업을 저장하거나 편집할 수 있습니다.

작업 삭제

더 이상 필요 없는 작업을 제거할 수 있습니다. 단일 작업으로 하나 이상의 작업을 삭제할 수 있습니다.

AWS Glue Studio에서 작업을 제거하려면
  1. [작업(Jobs)] 페이지의 [작업 목록(Your jobs)]에서 삭제할 작업을 선택합니다.

  2. [작업(Actions)] 메뉴에서 [작업 삭제(Delete job)]를 선택합니다.

  3. delete를 입력하여 작업 삭제를 확인합니다.

시각적 편집기에서 해당 작업에 대한 [작업 세부 정보(Job details)] 탭을 볼 때 저장된 작업을 삭제할 수도 있습니다.