기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
스트리밍 테이블의 Iceberg 동작
이 주제를 사용하여 스트리밍 테이블이 유형 매핑, 필드 처리, 테이블 유지 관리 및 형식 사양을 포함하여 AWS Glue Schema Registry 스키마의 데이터를 Apache Iceberg 테이블로 매핑하는 방법을 알아봅니다.
AWS Glue 스키마 레지스트리와 Iceberg 유형 매핑
스트리밍 테이블은 다음과 같이 Schema Registry의 JSON AWS Glue 스키마 유형을 Apache Iceberg 유형으로 매핑합니다.
| JSON 스키마 유형 | Iceberg 형식 | 참고 |
|---|---|---|
string (일반) |
string |
기본 문자열 매핑. |
string 형식 포함 date-time |
timestamptz |
시간대가 있는 타임스탬프입니다. |
string 형식 포함 date |
date |
달력 날짜입니다. |
string 형식 포함 time |
time |
시간. |
string 형식 포함 uuid |
uuid |
범용 고유 식별자입니다. |
string 인코딩 byte 또는를 사용하는 base64 |
binary |
base64로 인코딩된 이진 데이터입니다. |
integer (32비트 이하) |
int |
최대값 또는 exclusiveMaximum <= 2^31인 값입니다. |
integer (32비트 초과) |
long |
32비트 범위를 초과하는 값입니다. |
number가 있는 multipleOf |
decimal |
multipleOf에서 파생된 정밀도가 있는 고정점 십진수입니다. |
number (일반) |
double |
IEEE 754 배정밀도 부동 소수점. |
boolean |
boolean |
True 또는 false입니다. |
object 명명된 속성 포함 |
struct |
명명된 필드는 구조체 필드에 매핑됩니다. |
object가 있는 additionalProperties |
map |
문자열 키가 있는 키-값 맵입니다. |
array |
list |
정렬된 요소 모음입니다. |
enum |
string |
문자열로 저장된 열거형 값입니다. |
필수 열
JSON 스키마 required 배열에 나열된 필드는 Iceberg 테이블에서 필수(null할 수 없는) 열이 됩니다. 레코드에서 필수 필드가 누락된 경우 레코드는 배달 못한 편지 대기열로 전송됩니다.
파티션 키 열
테이블에는 시간 기반 파티셔닝(TIME_HOUR변환)에 사용할 수 있는 timestamptz 열이 포함되어야 합니다. Schema Registry 스키마에서 AWS Glue Iceberg timestamptz 유형에 매핑되는 date-time 형식의 string 필드입니다.
파티션에서 참조하는 소스 열은 스키마의 required 배열에 나타나는지 여부에 관계없이 자동으로 필수로 표시됩니다. 파티션 키 값이 누락된 레코드는 배달 못한 편지 대기열로 전송됩니다.
테이블의 파티션 열을 기반으로 Amazon S3 Tables 레코드 만료 작업을 활성화할 수 있습니다. 자세한 내용은 레코드 만료 단원을 참조하십시오.
필드 처리
스트리밍 테이블은 다음과 같이 수신 레코드와 Iceberg 테이블 스키마 간의 불일치를 처리합니다.
-
추가 필드 - 레코드에 있지만 스키마에 정의되지 않은 필드는 삭제되고 Iceberg 테이블에 기록되지 않습니다.
-
선택적 필드 누락 - 레코드에 없는 선택적 필드는 Iceberg 테이블
null과 같이 기록됩니다. -
필수 필드 누락 - 레코드에서 필수 필드가 누락된 경우 전체 레코드가 배달 못한 편지 대기열로 전송됩니다.
중첩 제한
스트리밍 테이블은 복잡한 유형(구조, 맵 및 목록)에 대해 최대 16개 수준의 중첩 깊이를 지원합니다. 중첩 수준이 16개를 초과하는 스키마는 전송 생성 시 거부됩니다.
관리형 테이블 속성
스트리밍 테이블은 Iceberg 테이블 속성을 자동으로 관리합니다. 이러한 속성은 테이블이 생성될 때 설정되며 외부에서 수정해서는 안 됩니다. 스트리밍 테이블은 이러한 속성을 사용하여 쓰기 동작, 압축 및 메타데이터 관리를 제어합니다.
테이블은 Amazon Kinesis Data Streams에서 관리하므로 스키마를 업데이트하거나 테이블 속성을 수정하거나 데이터에 직접 쓰거나 삭제해서는 안 됩니다. AWS 분석 서비스 및 호환되는 Apache Iceberg 쿼리 엔진을 사용하여 테이블을 쿼리할 수 있습니다. 관리형 테이블 버킷에 대한 자세한 내용은 Amazon S3 사용 설명서의 AWS 관리형 테이블 버킷 사용을 참조하세요.
S3 Tables 유지 관리
S3 Tables에서 지원하는 Apache Iceberg의 스트리밍 테이블로 전송할 때 다음 유지 관리 작업이 자동으로 처리됩니다.
-
압축 - 작은 데이터 파일은 쿼리 성능을 개선하고 메타데이터 오버헤드를 줄이기 위해 주기적으로 더 큰 파일로 압축됩니다.
-
스냅샷 만료 - 만료된 스냅샷은 메타데이터 스토리지를 회수하고 테이블 메타데이터 크기를 줄이기 위해 정리됩니다.
-
참조되지 않은 파일 정리 - 스냅샷에서 더 이상 참조하지 않는 분리된 데이터 파일은 스토리지를 회수하기 위해 제거됩니다.
레코드 만료
Iceberg 테이블에 대한 레코드 만료 기간을 구성할 수 있습니다. 활성화되면 Amazon S3 Tables는 테이블의 timestamptz 파티션 열을 기반으로 유지 관리 작업 중에 지정된 보존 기간보다 오래된 레코드를 자동으로 제거합니다. 자세한 내용은 Amazon S3 사용 설명서의 Amazon S3 Tables 레코드 만료 관리를 참조하세요. Amazon S3
형식 사양
스트리밍 테이블은 Iceberg 테이블에 대해 다음 형식 사양을 사용합니다.
-
Iceberg 형식 버전 – v2
-
Iceberg 사양 버전 – 1.9.0
-
파일 형식 - Apache Parquet