기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Firehose 스트림 설정
Apache Iceberg 테이블을 대상으로 하는 Firehose 스트림을 생성하려면 다음을 구성해야 합니다.
참고
S3 테이블 버킷의 테이블에 전달하기 위한 Firehose 스트림 설정은 Amazon S3의 Apache Iceberg 테이블과 동일합니다.
소스 및 대상 구성
Apache Iceberg 테이블에 데이터를 전송하려면 스트림의 소스를 선택합니다.
스트림에 대한 소스를 구성하려면 소스 설정 구성을 참조하세요.
그런 다음 대상으로 Apache Iceberg 테이블을 선택하고 Firehose 스트림 이름을 입력합니다.
데이터 변환 구성
수신 스트림에서 레코드를 추가하거나 수정하는 등 데이터에 대한 사용자 지정 변환을 수행하려면 Firehose 스트림에 Lambda 함수를 추가할 수 있습니다. Firehose 스트림에서 Lambda를 사용한 데이터 변환에 대한 자세한 내용은 Amazon Data Firehose에서 소스 데이터 변환 섹션을 참조하세요.
Apache Iceberg 테이블의 경우 수신 레코드를 다른 대상 테이블로 라우팅하는 방식과 수행할 작업을 지정해야 합니다. Firehose에 필요한 라우팅 정보를 제공하는 방법 중 하나는 Lambda 함수를 사용하는 것입니다.
자세한 내용은 레코드를 다른 Iceberg 테이블로 라우팅을 참조하세요.
데이터 카탈로그 연결
Apache Iceberg는 Apache Iceberg 테이블에 데이터를 쓰려면 데이터 카탈로그가 필요합니다. Firehose는 Apache Iceberg 테이블 AWS Glue Data Catalog 용와 통합됩니다.
Firehose 스트림과 AWS Glue Data Catalog 동일한 계정 또는 교차 계정 및 Firehose 스트림과 동일한 리전(기본값) 또는 다른 리전에서를 사용할 수 있습니다.
JQ 표현식 구성
Apache Iceberg 테이블의 경우 수신 레코드를 다른 대상 테이블로 라우팅하는 방식과 수행할 삽입, 업데이트, 삭제 등의 작업을 지정해야 합니다. 이 작업은 Firehose가 필요한 정보를 구문 분석하고 가져오도록 JQ 표현식을 구성하여 수행할 수 있습니다. 자세한 내용은 JSONQuery 표현식을 사용하여 Firehose에 라우팅 정보 제공 단원을 참조하십시오.
고유 키 구성
두 개 이상의 테이블에 대한 업데이트 및 삭제 - 고유 키는 소스 레코드에서 Apache Iceberg 테이블의 행을 고유하게 식별하는 하나 이상의 필드입니다. 두 개 이상의 테이블에서 삽입 작업만 수행하는 시나리오의 경우 고유 키를 구성할 필요가 없습니다. 특정 테이블에 업데이트나 삭제 작업을 수행하려면 필요한 테이블에 대한 고유 키를 구성해야 합니다. 업데이트 작업 시 테이블의 행이 누락된 경우 자동으로 행을 삽입합니다. 테이블이 하나뿐인 경우 고유 키를 구성할 수 있습니다.
Firehose 스트림 생성의 일부로 테이블당 고유 키를 구성하거나 테이블 생성 또는 테이블identifier-field-ids
를 확인하고 이를 고유 키로 사용합니다. 둘 다 구성되지 않은 경우 업데이트 및 삭제 작업이 포함된 데이터 전송이 실패합니다.
이 섹션을 구성하려면 데이터를 업데이트하거나 삭제할 테이블의 데이터베이스 이름, 테이블 이름, 고유 키를 제공합니다. 구성에서는 각 테이블에 대해 하나의 항목만 가질 수 있습니다. 선택 사항으로 다음 예시와 같이 테이블의 데이터가 전송되지 않는 경우 오류 버킷 접두사를 지정할 수도 있습니다.
[ { "DestinationDatabaseName": "MySampleDatabase", "DestinationTableName": "MySampleTable", "UniqueKeys": [ "COLUMN_PLACEHOLDER" ], "S3ErrorOutputPrefix": "OPTIONAL_PREFIX_PLACEHOLDER" } ]
재시도 기간 지정
Amazon S3에서 Firehose가 Apache Iceberg 테이블에서 데이터 쓰기 작업에 실패하는 경우 이 구성을 사용하여 재시도하는 기간을 초 단위로 지정할 수 있습니다. 재시도를 수행하는 시간의 값은 0초에서 7,200초까지 설정할 수 있습니다. Firehose는 기본값으로 300초동안 재시도합니다.
전송 또는 처리 실패 조치
재시도 기간이 만료된 후에도 스트림 처리 또는 전송에 실패하는 경우 S3 백업 버킷에 레코드를 전송하도록 Firehose를 구성해야 합니다. 이 작업을 수행하려면 콘솔의 백업 설정에서 S3 백업 버킷 및 S3 백업 버킷 오류 출력 접두사를 구성합니다.
버퍼 힌트 구성
Firehose는 수신되는 스트리밍 데이터를 메모리에 일정 크기(버퍼 크기)로 일정 시간(버퍼 간격) 동안 버퍼링한 후 Apache Iceberg 테이블로 전송합니다. 버퍼 크기는 1~128 MiBs 이고 버퍼 간격은 0~900초입니다. 버퍼 힌트 값이 높을수록 S3 쓰기 횟수가 줄어들고, 데이터 파일의 크기가 커져 압축 비용이 줄어들고, 쿼리 실행이 빨라지지만 지연 시간이 길어집니다. 버퍼 힌트 값이 낮으면 데이터 전송 시 지연 시간이 짧아집니다.
고급 설정 구성
Apache Iceberg 테이블에 대해 서버 측 암호화, 오류 로깅, 권한 및 태그를 구성할 수 있습니다. 자세한 내용은 고급 설정 구성 단원을 참조하십시오. 의 일부로 생성한 IAM 역할을 추가해야 합니다Apache Iceberg 테이블을 대상으로 사용하기 위한 사전 조건. Firehose는 AWS Glue 테이블에 액세스하고 Amazon S3 버킷에 대한 쓰기 역할을 맡게 됩니다.
Firehose 스트림 생성을 완료하는 데 몇 분 정도 걸릴 수 있습니다. Firehose 스트림을 성공적으로 생성한 후에는 데이터 수집을 시작하고 Apache Iceberg 테이블에서 데이터를 볼 수 있습니다.