애플리케이션 출력을 외부 대상에 유지하기 위한 전송 모델 - SQL애플리케이션용 Amazon Kinesis Data Analytics 개발자 가이드

새 프로젝트의 경우 애플리케이션용 Kinesis Data Analytics보다 Apache Flink Studio용 새로운 관리형 서비스를 사용하는 것이 좋습니다. SQL Managed Service for Apache Flink Studio는 사용 편의성과 고급 분석 기능을 결합하여 정교한 스트림 처리 애플리케이션을 몇 분 만에 구축할 수 있도록 합니다.

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

애플리케이션 출력을 외부 대상에 유지하기 위한 전송 모델

Amazon Kinesis Data Analytics에서는 구성할 애플리케이션 출력에 대해 "최소 1회" 전송 모델을 적용합니다. 애플리케이션을 실행 중일 때 Kinesis Data Analytics에서는 내부 체크포인트를 사용합니다. 이러한 체크포인트는 출력 레코드가 데이터 손실 없이 대상으로 전송된 시점입니다. Kinesis Analytics에서는 필요에 따라 체크포인트를 사용하여 애플리케이션 출력이 구성된 대상으로 최소한 한번은 전달되도록 합니다.

정상적인 상황에서 애플리케이션은 들어오는 데이터를 지속적으로 처리합니다. Kinesis Data Analytics는 Kinesis 데이터 스트림 또는 Firehose 전송 스트림과 같은 구성된 대상에 출력을 기록합니다. 하지만 애플리케이션은 경우에 따라 중단될 수 있습니다. 예:

  • 애플리케이션을 중단하고 나중에 재시작하도록 선택하는 경우.

  • Kinesis Data Analytics이 애플리케이션 출력을 구성된 목적지에 작성할 필요가 있는 IAM 역할을 삭제하는 경우. IAM 역할이 없다면 Kinesis Data Analytics는 귀하를 대신하여 외부 대상에 작성할 수 있는 권한이 없습니다.

  • 네트워크 중단 또는 기타 내부 서비스 결함으로 인해 애플리케이션의 실행이 일시적으로 중지됩니다.

애플리케이션이 다시 시작될 경우 Kinesis Data Analytics는 실패가 발생할 때 또는 그 이전 시점부터 출력을 계속 처리 및 기록합니다. 따라서 애플리케이션 출력이 구성된 대상으로 확실하게 전송됩니다.

동일한 애플리케이션 내 스트림에서 여러 대상을 구성했다고 가정해 보겠습니다. 애플리케이션이 실패에서 복구되면 Kinesis Data Analytics는 가장 느린 목적지로 전송된 마지막 레코드부터 구성된 목적지로 출력을 계속 유지합니다. 이렇게 할 경우 동일한 출력 레코드가 다른 목적지로 두 번 이상 전송될 수 있습니다. 이 경우 대상에서의 잠재적 중복을 외부적으로 처리해야 합니다.