

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

# 스트리밍 테이블의 Iceberg 동작
<a name="data-delivery-st-iceberg"></a>

 이 주제를 사용하여 스트리밍 테이블이 유형 매핑, 필드 처리, 테이블 유지 관리 및 형식 사양을 포함하여 AWS Glue Schema Registry 스키마의 데이터를 Apache Iceberg 테이블로 매핑하는 방법을 알아봅니다.

## AWS Glue 스키마 레지스트리와 Iceberg 유형 매핑
<a name="data-delivery-iceberg-type-mapping"></a>

 스트리밍 테이블은 다음과 같이 Schema Registry의 JSON AWS Glue 스키마 유형을 Apache Iceberg 유형으로 매핑합니다.


**스키마 레지스트리와 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 | 문자열로 저장된 열거형 값입니다. | 

## 필수 열
<a name="data-delivery-iceberg-required-columns"></a>

 JSON 스키마 `required` 배열에 나열된 필드는 Iceberg 테이블에서 필수(null할 수 없는) 열이 됩니다. 레코드에서 필수 필드가 누락된 경우 레코드는 배달 못한 편지 대기열로 전송됩니다.

## 파티션 키 열
<a name="data-delivery-iceberg-partition-key"></a>

 테이블에는 시간 기반 파티셔닝(`TIME_HOUR`변환)에 사용할 수 있는 `timestamptz` 열이 포함되어야 합니다. Schema Registry 스키마에서 AWS Glue Iceberg `timestamptz` 유형에 매핑되는 `date-time` 형식의 `string` 필드입니다.

 파티션에서 참조하는 소스 열은 스키마의 `required` 배열에 나타나는지 여부에 관계없이 자동으로 필수로 표시됩니다. 파티션 키 값이 누락된 레코드는 배달 못한 편지 대기열로 전송됩니다.

 테이블의 파티션 열을 기반으로 Amazon S3 Tables 레코드 만료 작업을 활성화할 수 있습니다. 자세한 내용은 [레코드 만료](#data-delivery-iceberg-record-expiration) 단원을 참조하십시오.

## 필드 처리
<a name="data-delivery-iceberg-field-handling"></a>

 스트리밍 테이블은 다음과 같이 수신 레코드와 Iceberg 테이블 스키마 간의 불일치를 처리합니다.
+ **추가 필드** - 레코드에 있지만 스키마에 정의되지 않은 필드는 삭제되고 Iceberg 테이블에 기록되지 않습니다.
+ **선택적 필드 누락** - 레코드에 없는 선택적 필드는 Iceberg 테이블`null`과 같이 기록됩니다.
+ **필수 필드 누락** - 레코드에서 필수 필드가 누락된 경우 전체 레코드가 배달 못한 편지 대기열로 전송됩니다.

## 중첩 제한
<a name="data-delivery-iceberg-nesting"></a>

 스트리밍 테이블은 복잡한 유형(구조, 맵 및 목록)에 대해 최대 16개 수준의 중첩 깊이를 지원합니다. 중첩 수준이 16개를 초과하는 스키마는 전송 생성 시 거부됩니다.

## 관리형 테이블 속성
<a name="data-delivery-iceberg-table-properties"></a>

 스트리밍 테이블은 Iceberg 테이블 속성을 자동으로 관리합니다. 이러한 속성은 테이블이 생성될 때 설정되며 외부에서 수정해서는 안 됩니다. 스트리밍 테이블은 이러한 속성을 사용하여 쓰기 동작, 압축 및 메타데이터 관리를 제어합니다.

 테이블은 Amazon Kinesis Data Streams에서 관리하므로 스키마를 업데이트하거나 테이블 속성을 수정하거나 데이터에 직접 쓰거나 삭제해서는 안 됩니다. AWS 분석 서비스 및 호환되는 Apache Iceberg 쿼리 엔진을 사용하여 테이블을 쿼리할 수 있습니다. 관리형 테이블 버킷에 대한 자세한 내용은 *Amazon S3 사용 설명서*의 [AWS 관리형 테이블 버킷 사용을 참조하세요](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-aws-managed-buckets.html).

## S3 Tables 유지 관리
<a name="data-delivery-iceberg-maintenance"></a>

 S3 Tables에서 지원하는 Apache Iceberg의 스트리밍 테이블로 전송할 때 다음 유지 관리 작업이 자동으로 처리됩니다.
+ **압축** - 작은 데이터 파일은 쿼리 성능을 개선하고 메타데이터 오버헤드를 줄이기 위해 주기적으로 더 큰 파일로 압축됩니다.
+ **스냅샷 만료 **- 만료된 스냅샷은 메타데이터 스토리지를 회수하고 테이블 메타데이터 크기를 줄이기 위해 정리됩니다.
+ **참조되지 않은 파일 정리** - 스냅샷에서 더 이상 참조하지 않는 분리된 데이터 파일은 스토리지를 회수하기 위해 제거됩니다.

## 레코드 만료
<a name="data-delivery-iceberg-record-expiration"></a>

 Iceberg 테이블에 대한 레코드 만료 기간을 구성할 수 있습니다. 활성화되면 Amazon S3 Tables는 테이블의 `timestamptz` 파티션 열을 기반으로 유지 관리 작업 중에 지정된 보존 기간보다 오래된 레코드를 자동으로 제거합니다. 자세한 내용은 [ Amazon S3 사용 설명서의 Amazon S3 Tables 레코드 만료 관리를](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-record-expiration.html) 참조하세요. *Amazon S3 * 

## 형식 사양
<a name="data-delivery-iceberg-format"></a>

 스트리밍 테이블은 Iceberg 테이블에 대해 다음 형식 사양을 사용합니다.
+ **Iceberg 형식 버전** – v2
+ **Iceberg 사양 버전** – 1.9.0
+ **파일 형식** - Apache Parquet