기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
스트리밍 테이블 전송 생성
Amazon Kinesis Data Streams 스트림의 레코드를 S3 테이블 버킷이 지원하는 Apache Iceberg의 스트리밍 테이블로 지속적으로 전송하는 전송을 생성합니다. AWS Management Console 또는를 사용하여 전송을 생성할 수 있습니다 AWS CLI. 전송을 생성하면 Amazon Kinesis Data Streams는 지정한 테이블 버킷에 대상 Iceberg 테이블을 생성합니다.
참고
전송을 생성하기 전에에 설명된 IAM 서비스 실행 역할을 스트리밍 테이블 시작하기포함하여의 사전 조건을 완료합니다데이터 전송을 위한 IAM 권한. 스트리밍 테이블 전송에는 스키마 레지스트리의 AWS Glue 스키마와 배달 못한 편지 대기열이 필요합니다.
사용 AWS Management Console
-
에서 Kinesis 콘솔을 엽니다https://console.aws.amazon.com/kinesis
. -
탐색 창에서 스트리밍 테이블을 선택한 다음 스트리밍 테이블 생성을 선택합니다.
-
1단계: 소스 구성. 전송 세부 정보에서 전송 이름을 입력합니다. 허용되는 문자는 대문자와 소문자, 숫자, 밑줄, 하이픈 및 마침표입니다. 소스에서 전송할 온디맨드 스트림을 선택합니다. 온디맨드 스트림만 표시됩니다. 다음을 선택합니다.
-
2단계: 대상 구성. 레코드 변환 구성에서 레코드 변환 형식을 선택합니다.
JSON - AWS Glue Schema Registry의 스키마에 대해 검증된 JSON 레코드입니다. Glue 스키마 레지스트리에 스키마 ARN을 제공합니다.
Glue 스키마 레지스트리 JSON - AWS Glue 스키마 레지스트리 JSON 스키마를 사용하여 레코드를 변환합니다.
Glue 스키마 레지스트리에서 스키마 ARN을 지정하거나 찾아보기를 선택하여 선택합니다.
-
대상 테이블에서 Amazon Kinesis Data Streams가 Iceberg 테이블을 생성하는 위치를 지정합니다.
S3 테이블 버킷 ARN - S3 테이블 버킷의 ARN입니다. S3 찾아보기를 선택하여 선택합니다.
네임스페이스 - 테이블의 네임스페이스입니다(소문자, 숫자 및 밑줄만 해당).
테이블 이름 - 생성할 테이블의 이름입니다.
열 이름 - 테이블을 시간별로 분할하는 데 사용되는 스키마의 날짜-시간 필드 이름입니다. 필드는 스키마에 날짜-시간 형식이 있는 문자열 필드여야 합니다.
압축 유형 - ZSTD, Snappy 또는 None을 선택합니다.
데이터 신선도 - 레코드가 전송되기 전 초 단위의 최대 버퍼링 시간입니다(최소 300, 최대 900).
다음을 선택합니다.
-
3단계: 추가 구성. 다음을 구성한 후 다음을 선택합니다.
암호화 구성 - 기본적으로 데이터는 기본 Amazon S3 암호화로 암호화됩니다. 고객 관리형 키를 사용하려면 암호화 설정 사용자 지정(고급)을 선택합니다.
서비스 액세스 - IAM 역할 ARN의 경우 대상에 대한 액세스 권한을 부여하는 IAM 역할을 선택하거나 생성합니다. IAM 역할 생성을 선택하여 생성합니다.
배달 못한 편지 대기열 - S3 버킷 URI에서 배달할 수 없는 레코드를 저장하는 Amazon S3 버킷을 선택합니다. 선택적으로 S3 버킷 오류 출력 접두사를 설정합니다.
로그 전송 - 선택적으로 Amazon CloudWatch Logs로 전송을 선택하여 전송 진단을 캡처합니다.
태그 - 선택적으로 키-값 태그를 추가하여 전송을 식별하고 구성합니다.
-
4단계: 검토 및 생성. 구성을 검토한 다음 스트리밍 테이블 생성을 선택합니다. 프로비저닝이 완료된 후 전송이 CREATING에서 ACTIVE로 전환됩니다.
사용 AWS CLI
create-channel 명령을 사용하여 스트리밍 테이블 전송을 생성합니다. 이 구성에는 AWS Glue Schema Registry의 스키마와 배달 못한 편지 대기열이 필요합니다.
aws kinesis create-channel \ --channel-name "my-iceberg-delivery" \ --service-execution-role-arn "arn:aws:iam::123456789012:role/my-channel-role" \ --stream-configuration-list '[ { "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream", "RecordConfiguration": { "RecordFormatType": "JSON", "GSRSchemaARN": "arn:aws:glue:us-east-1:123456789012:schema/my-registry/my-schema" } } ]' \ --s3-tables-destination-configuration '{ "DataFreshnessInSeconds": 300, "DeadLetterQueueS3Configuration": { "BucketARN": "arn:aws:s3:::my-dlq-bucket", "ExpectedBucketOwner": "123456789012", "ErrorOutputPrefix": "dlq/" }, "S3TablesConfigurationList": [ { "TableBucketARN": "arn:aws:s3tables:us-east-1:123456789012:bucket/my-table-bucket", "Namespace": "my_namespace", "TableName": "my_table", "CompressionType": "ZSTD", "PartitionSpec": { "PartitionFields": [ { "SourceName": "timestamp", "Transform": "TIME_HOUR" } ] } } ] }'
명령은 채널 ARN()을 반환합니다ChannelARN. 와 함께 사용하여 전송이 ACTIVE 상태에 도달하는지 describe-channel 확인합니다. 스트리밍 테이블 전송 설명을(를) 참조하세요.
API 참조 - Amazon Kinesis Data Streams API 참조CreateChannel의 섹션을 참조하세요.