관리형 I/O는 Apache Iceberg의 다음 기능을 지원합니다.
| 카탈로그 | 
 | 
|---|---|
| 읽기 기능 | 일괄 읽기 | 
| 쓰기 기능 | 
 | 
Apache Iceberg용 BigQuery 테이블의 경우 BigQuery Storage API와 함께 BigQueryIO 커넥터를 사용합니다. 테이블이 이미 있어야 합니다. 동적 테이블을 만들 수 없습니다.
요구사항
다음 SDK는 Apache Iceberg용 관리형 I/O를 지원합니다.
- Java용 Apache Beam SDK 버전 2.58.0 이상
- Python용 Apache Beam SDK 버전 2.61.0 이상
구성
Apache Iceberg용 관리형 I/O는 다음 구성 파라미터를 지원합니다.
ICEBERG 읽기
| 구성 | 유형 | 설명 | 
|---|---|---|
| 표 | str | Iceberg 테이블의 식별자입니다. | 
| catalog_name | str | 테이블이 포함된 카탈로그의 이름입니다. | 
| catalog_properties | map[str, str] | Iceberg 카탈로그를 설정하는 데 사용되는 속성입니다. | 
| config_properties | map[str, str] | Hadoop 구성에 전달된 속성입니다. | 
| 드롭 | list[str] | 읽기에서 제외할 열 이름의 하위 집합입니다. null이거나 비어 있으면 모든 열이 읽힙니다. | 
| 필터 | str | 스캔 시 데이터를 필터링하는 SQL 유사 조건자입니다. 예: 'id > 5 AND status = 'ACTIVE'' Apache Calcite 구문을 사용합니다(https://calcite.apache.org/docs/reference.html). | 
| Keep | list[str] | 독점적으로 읽을 열 이름의 하위 집합입니다. null이거나 비어 있으면 모든 열이 읽힙니다. | 
ICEBERG 쓰기
| 구성 | 유형 | 설명 | 
|---|---|---|
| 표 | str | 정규화된 테이블 식별자입니다. 템플릿을 제공하여 `dataset.my_{col1}_{col2.nested}_table`과 같이 여러 동적 대상에 쓸 수도 있습니다. | 
| catalog_name | str | 테이블이 포함된 카탈로그의 이름입니다. | 
| catalog_properties | map[str, str] | Iceberg 카탈로그를 설정하는 데 사용되는 속성입니다. | 
| config_properties | map[str, str] | Hadoop 구성에 전달된 속성입니다. | 
| 드롭 | list[str] | 쓰기 전에 입력 레코드에서 삭제할 필드 이름 목록입니다. 'keep' 및 'only'와 상호 배타적입니다. | 
| Keep | list[str] | 입력 레코드에 유지할 필드 이름 목록입니다. 다른 모든 필드는 쓰기 전에 삭제됩니다. 'drop' 및 'only'와 상호 배타적입니다. | 
| only | str | 작성해야 하는 단일 레코드 필드의 이름입니다. 'keep' 및 'drop'과 상호 배타적입니다. | 
| partition_fields | list[str] | 테이블이 생성될 때 적용되는 파티션 사양을 만드는 데 사용되는 필드입니다. 'foo' 필드의 경우 사용 가능한 파티션 변환은 다음과 같습니다. 
 파티션 변환에 대한 자세한 내용은 https://iceberg.apache.org/spec/#partition-transforms를 참고하세요. | 
| table_properties | map[str, str] | 테이블이 생성될 때 테이블에 설정할 Iceberg 테이블 속성입니다. 테이블 속성에 대한 자세한 내용은 https://iceberg.apache.org/docs/latest/configuration/#table-properties를 참고하세요. | 
| triggering_frequency_seconds | int32 | 스트리밍 파이프라인의 경우 스냅샷이 생성되는 빈도를 설정합니다. | 
다음 단계
자세한 내용과 코드 예시는 다음 주제를 참조하세요.