스트리밍 데이터에 대해 스키마 검색 기능 사용 - SQL애플리케이션용 Amazon Kinesis Data Analytics 개발자 가이드

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

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

스트리밍 데이터에 대해 스키마 검색 기능 사용

참고

2023년 9월 12일 이후에는 Kinesis Data Analytics for SQL의 기존 사용자가 아닌 경우, Kinesis Data Firehose를 소스로 사용하여 새 애플리케이션을 생성할 수 없습니다. 자세한 설명은 제한을 참조하세요.

스트리밍 입력 상의 레코드가 어떻게 애플리케이션 내 스트림으로 매핑되는지 설명하는 입력 스키마를 제공하는 것은 복잡하고 오류가 발생하기 쉽습니다. DiscoverInputSchemaAPI(검색 API)를 사용하여 스키마를 유추할 수 있습니다. API는 스트리밍 소스 상의 랜덤 레코드 샘플을 사용하여 스키마를 유추할 수 있습니다(즉, 열 명칭, 데이터 유형, 수신 데이터에서의 데이터 요소 위치).

참고

검색 API를 사용하여 Amazon S3에 저장된 파일에서 스키마를 생성하려면 정적 데이터에 대해 스키마 검색 기능 사용을 참조하십시오.

콘솔은 검색 API를 사용하여 지정된 스트리밍 소스에 대한 스키마를 생성합니다. 콘솔을 사용하면 열 추가 또는 삭제, 열 명칭 또는 데이터 유형 변경 등을 포함하여 스키마를 업데이트할 수 있습니다. 그러나 유효하지 않은 스키마를 생성하지 않도록 주의하여 변경합니다.

애플리케이션 내 스트림에 대한 스키마를 완료한 후에 문자열 및 날짜/시간 값을 조작하는 데 사용할 수 있는 함수가 있습니다. 결과로 얻은 애플리케이션 내 스트림에서 열 작업을 수행할 때 이들 함수를 애플리케이션 코드에서 사용할 수 있습니다. 자세한 설명은 예: 값 변환 DateTime 섹션을 참조하세요.

스키마 검색 시 열 명칭 지정

스키마 검색 시에 Amazon Kinesis Data Analytics는 다음의 경우를 제외하고 스트리밍 입력 소스로부터 원래 열 명칭을 최대한 많이 보존하려 시도합니다:

  • 소스 스트림 열 명칭은 예약된 SQL 키워드(TIMESTAMP, USER, VALUES 또는 YEAR)입니다.

  • 소스 스트림 열 명칭은 지원되지 않는 문자를 포함합니다. 글자, 숫자 및 밑줄 문자( _ )만 지원됩니다.

  • 소스 스트림 열 명칭은 숫자로 시작합니다.

  • 소스 스트림 열 명칭은 100자보다 더 깁니다.

열의 명칭이 재지정되는 경우 재지정된 스키마 열 명칭은 COL_로 시작합니다. 일부 경우, 예를 들어 명칭 전체가 지원되지 않는 문자인 경우 원래 열 명칭 중 어느 것도 유지되지 않을 수 있습니다. 그와 같은 경우 열의 명칭이 COL_#로 지정되는데, 여기서 #는 열 순서에서 열의 자리를 나타내는 숫자입니다.

검색이 완료된 후 콘솔을 사용하여 열 추가 또는 삭제, 열 명칭, 데이터 유형 또는 데이터 크기 변경 등을 포함하여 스키마를 업데이트할 수 있습니다.

검색의 예-열 명칭 제안

소스 스트림 열 명칭 검색-열 명칭 제안

USER

COL_USER

USER@DOMAIN

COL_USERDOMAIN

@@

COL_0

스키마 검색 문제

Kinesis Data Analytics가 특정 스트리밍 소스에 대한 스키마를 유추할 수 없다면 어떻게 되는가?

Kinesis Data Analytics는 UTF-8 인코딩된 CSV 및 JSON과 같은 일반적인 형식에 대해 스키마를 유추합니다. Kinesis Data Analytics는 맞춤 열 및 행 구분자를 사용하여 모든 UTF-8 인코딩 레코드 (애플리케이션 로그 및 레코드와 같은 원시 텍스트 포함) 를 지원합니다. Kinesis Data Analytics가 스키마를 유추하지 못한다면 콘솔에서 스키마 편집기를 사용하거나 API를 사용하여 스키마를 수동으로 정의할 수 있습니다.

(데이터가 스키마 편집기를 사용하여 지정할 수 있는) 패턴에 따르지 않는 경우, 스키마를 단일 유형 열 VARCHAR(N)로 정의할 수 있습니다. 여기서 N은 레코드가 포함할 것으로 예상하는 최대 문자 수입니다. 거기에서 문자열 및 날짜 시간 조작을 통해 데이터가 애플리케이션 내 스트림 안에 포함된 후에 데이터를 구성할 수 있습니다. 예를 보려면 예: 값 변환 DateTime 섹션을 참조하십시오.