오류 처리 - Amazon Kinesis Data Analytics for SQL 애플리케이션 개발자 안내서

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

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

오류 처리

Amazon Kinesis Data Analytics는 API 또는 SQL 오류를 사용자에게 직접 반환합니다. API 작업에 대한 자세한 설명은 작업 섹션을 참조하십시오. SQL 오류 처리에 대한 자세한 설명은 Amazon Kinesis Data Analytics SQL 참조를 참고하십시오.

Amazon Kinesis Data Analytics는 error_stream이라고 하는 애플리케이션 내 오류 스트림을 사용하여 런타임 오류를 보고합니다.

애플리케이션 내 오류 스트림을 사용한 오류 보고

Amazon Kinesis Data Analytics는 error_stream이라고 하는 애플리케이션 내 오류 스트림에 런타임 오류를 보고합니다. 다음은 발생할 수 있는 오류의 예입니다:

  • 스트리밍 소스로부터 읽은 레코드가 입력 스키마에 부합하지 않습니다.

  • 애플리케이션 코드가 0으로 나누기를 지정했습니다.

  • 행이 순서에 벗어난 상태입니다(예: 레코드의 순서 이탈을 야기하는 사용자가 수정한 ROWTIME 값을 지닌 스트림 상에 레코드가 나타나는 경우).

  • 소스 스트림에 있는 데이터가 스키마에 지정된 데이터 유형으로 변환되지 않습니다(강제 변환 오류). 변환 가능한 데이터 유형에 관한 정보는 JSON 데이터 유형을 SQL 데이터 유형으로 매핑하기 섹션을 참조하십시오.

SQL 코드에서 이러한 오류를 프로그래밍 방식으로 처리하거나 오류 스트림 상의 데이터를 외부 대상에 유지하는 것이 좋습니다. 이를 위해서는 애플리케이션에 출력 구성을 추가해야 합니다(애플리케이션 출력 구성 참조). 애플리케이션 내 오류 스트림 작동 방식의 예는 예: 애플리케이션 내 오류 스트림 탐색 섹션을 참조하십시오.

참고

시스템 계정을 사용하여 오류 스트림이 생성되었기 때문에 Kinesis Data Analytics 애플리케이션은 오류 스트림을 프로그래밍 방식으로 액세스하거나 수정할 수 없습니다. 오류 출력을 사용하여 애플리케이션에서 발생할 수 있는 에러가 무엇인지 판단해야 합니다. 그런 다음 애플리케이션의 SQL 코드를 작성하여 예상되는 오류 상태를 처리합니다.

오류 스트림 스키마

오류 스트림의 스키마는 다음과 같습니다.

필드

데이터 형식

참고

ERROR_TIME

TIMESTAMP

오류 발생 시간

ERROR_LEVEL

VARCHAR(10)

ERROR_NAME

VARCHAR(32)

MESSAGE

VARCHAR(4096)

DATA_ROWTIME

TIMESTAMP

수신 레코드의 ROW TIME

DATA_ROW

VARCHAR(49152)

기존 행에 있는 16진수 인코딩 데이터. 표준 라이브러리를 사용하여 이 값을 16진수로 디코딩하거나 이 16진수 - 문자열 변환기 같은 웹 리소스를 사용할 수 있습니다.

PUMP_NAME

VARCHAR(128)

CREATE PUMP로 정의된 원본 펌프