AWS Glue ETL
AWS Glue ETL은 다양한 소스에서 데이터를 추출하고, 비즈니스 요구 사항에 맞게 이를 변환하여 선택한 대상으로 로드하는 것을 지원합니다. 이 서비스는 Apache Spark 엔진을 사용하여 워커 노드 전체에 빅 데이터 워크로드를 분산하여 인 메모리 프로세싱으로 더 빠르게 변환할 수 있도록 합니다.
AWS Glue는 Amazon Simple Storage Service(Amazon S3), Amazon DynamoDB, Amazon Relational Database Service(Amazon RDS) 등 다양한 데이터 소스를 지원합니다. 지원되는 데이터 소스에 대해 자세히 알아보려면 AWS Glue의 ETL 연결 유형 및 옵션을 참조하세요.
AWS Glue에서 작성
AWS Glue는 사용자 경험과 사용 사례에 따라 ETL 작업을 작성할 수 있는 다양한 방법을 제공합니다.
-
Python 쉘 작업은 Python으로 작성된 기본 ETL 스크립트를 실행하도록 설계되었습니다. 이러한 작업은 단일 머신에서 실행되며 중소 규모의 데이터세트에 더 적합합니다.
-
Apache Spark 작업은 Python 또는 Scala로 작성할 수 있습니다. 이러한 작업은 Spark를 사용하여 여러 워커 노드에 걸쳐 워크로드를 수평적으로 규모를 조정하므로 대규모 데이터세트와 복잡한 변환을 처리할 수 있습니다.
-
AWS Glue 스트리밍 ETL은 Apache Spark Structured Streaming 엔진을 사용하여 스트리밍 데이터를 마이크로 배치 작업으로 변환하며, 정확히 한 번
처리되는 의미론을 제공합니다. AWS Glue 스트리밍 작업은 Python 또는 Scala로 작성할 수 있습니다. -
AWS Glue Studio는 Apache Spark 프로그래밍을 처음 접하는 개발자도 Spark 기반 ETL을 쉽게 사용할 수 있는 상자와 화살표 스타일의 시각적 인터페이스입니다.
데이터 처리 단위
AWS Glue는 데이터 처리 단위(DPU)를 사용하여 ETL 작업에 할당된 컴퓨팅 리소스를 측정하고 비용을 계산합니다. 각 DPU는 vCPU 4개와 16GB 메모리와 동일합니다. 작업의 복잡성과 데이터 볼륨에 따라 DPU를 AWS Glue 작업에 할당해야 합니다. 적절한 양의 DPU를 할당하면 성능 요구 사항과 비용 제약 사이에서 균형을 맞출 수 있습니다.
AWS Glue는 다양한 워크로드에 최적화된 여러 작업자 유형을 제공합니다.
-
G.1X 또는 G.2X(대부분의 데이터 변환, 조인, 쿼리에 적합)
-
G.4X 또는 G.8X(더 까다로운 데이터 변환, 집계, 조인, 쿼리에 적합)
-
G.025X(소량 및 산발적인 데이터 스트림에 적합)
-
표준(AWS Glue 버전 1.0 이전 버전용, AWS Glue 이후 버전에는 권장되지 않음)
Python 쉘 사용
Python 쉘 작업의 경우 1DPU를 사용하여 16GB 메모리를 사용하거나 0.0625DPU를 사용하여 1GB 메모리를 사용할 수 있습니다. Python 쉘은 중소 규모의 데이터세트(최대 약 10GB)를 사용하는 기본 ETL 작업에 사용됩니다.
작업자 유형 비교
다음 표는 Apache Spark 환경을 사용하는 배치, 스트리밍 및 AWS Glue Studio ETL 워크로드에 대한 다양한 AWS Glue 작업자 유형을 보여줍니다.
G.1X |
G.2X |
G.4X |
G.8X |
G.025X |
표준 |
|
vCPU |
4 |
8 |
16 |
32 |
2 |
4 |
메모리 |
16 GB |
32GB |
64GB |
128GB |
4GB |
16 GB |
디스크 공간 |
64GB |
128GB |
256GB |
512GB |
64GB |
50GB |
작업자당 실행기 |
1 |
1 |
1 |
1 |
1 |
2 |
DPU |
1 |
2 |
4 |
8 |
0.25 |
1 |
AWS Glue 버전 2.0 이상에서는 표준 작업자 유형을 사용하지 않는 것이 좋습니다. G.025X 작업자 유형은 AWS Glue 버전 3.0 이상을 사용하는 스트리밍 작업에만 사용할 수 있습니다.