AWS Glue 스트리밍 작업을 최적화하려고 합니다.
해결 방법
AWS Glue 스트리밍 작업을 최적화하려면 다음 모범 사례를 따르십시오.
- Amazon CloudWatch를 사용하여 AWS Glue 스트리밍 작업 지표를 모니터링합니다. 들어오는 데이터 속도를 관리할 수 있는 충분한 CPU, 메모리 및 실행기가 작업에 있는지 확인하십시오.
- 배치 간격이 배치 처리 시간보다 커야 합니다. 배치 처리 시간을 줄이는 방법에 대한 지침은 Apache Spark 웹사이트에서 배치 처리 시간 단축을 참조하십시오.
- AWS Glue Data Catalog를 사용하여 데이터 스키마를 저장하고 관리합니다.
- Apache Parquet과 같은 효율적인 데이터 직렬화 형식을 사용합니다. Apache Parquet에 대한 자세한 내용은 Apache Spark 웹사이트에서 Parquet 파일을 참조하십시오.
- 체크포인팅을 활성화합니다. 자세한 내용은 Apache Spark 웹사이트에서 체크포인팅을 참조하십시오.
- Apache Iceberg와 같은 오픈 테이블 형식을 사용합니다. 스트리밍 작업에서 데이터 레이크 테이블을 사용하지 않는 경우 ](https://repost.aws/ko/knowledge-center/glue-non-data-lake-to-iceberg-table)테이블을 Iceberg로 마이그레이션[하십시오. 커밋을 미세 조정하고, 오래된 스냅샷을 만료하고, 압축을 사용하여 메타데이터 파일을 정리해야 합니다. Iceberg 테이블을 유지 관리하는 방법에 대한 자세한 내용은 Apache Iceberg 웹사이트에서 권장 유지 관리를 참조하십시오.
- 오토 스케일링을 활성화합니다.
참고: 오토 스케일링은 AWS Glue 버전 3.0 이상에서만 사용할 수 있습니다.
- 추출, 전환, 적재(ETL) 작업을 사용하거나 생성할 때 모범 사례를 따릅니다.
Spark 스트리밍 조정
스트리밍을 위해 Spark 스트리밍을 조정하려면 다음 구성을 사용하십시오.
- 역압을 활성화하여 스트리밍 작업의 수신 속도를 제어하고 예약 지연 및 처리 시간을 보정하려면 spark.streaming.backpressure.enabled를 사용합니다.
- 수신기가 데이터를 수신할 수 있는 최대 속도를 높이려면 spark.streaming.receiver.maxRate를 사용합니다. 초당 레코드 수로 이 값을 설정하십시오.
- 수신기의 미리 쓰기 로그(WAL)를 활성화하려면 spark.streaming.receiver.writeAheadLog.enable을 사용합니다. WAL을 사용하면 드라이버 장애 후 데이터를 복구할 수 있습니다.
- 적은 수의 파일을 생성하는 크기 창을 정의하려면 windowSize를 사용합니다. 자세한 내용은 대화형 개발을 위한 입력 스트림 샘플링을 참조하십시오.
- 셔플 파티션을 조정하여 대규모 변환을 위해 데이터를 효율적으로 셔플링하려면 spark.sql.shuffle.partition을 사용합니다.
자세한 내용은 Apache Spark 웹사이트에서 성능 조정을 참조하십시오.
관련 정보
AWS Glue 스트리밍 작업 문제를 해결하려면 어떻게 해야 합니까?
Amazon Kinesis 연결
Kafka 연결
Docker 이미지를 사용한 개발