Apache Iceberg용 Dataflow 관리형 I/O

관리형 I/O는 Apache Iceberg의 다음 기능을 지원합니다.

카탈로그
  • Hadoop
  • Hive
  • REST 기반 카탈로그
  • BigQuery metastore(Runner v2를 사용하지 않는 경우 Apache Beam SDK 2.62.0 이상 필요)
읽기 기능 일괄 읽기
쓰기 기능
  • 일괄 쓰기
  • 스트리밍 쓰기
  • 동적 대상
  • 동적 테이블 생성

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' 필드의 경우 사용 가능한 파티션 변환은 다음과 같습니다.
  • foo
  • truncate(foo, N)
  • bucket(foo, N)
  • hour(foo)
  • day(foo)
  • month(foo)
  • year(foo)
  • void(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 스트리밍 파이프라인의 경우 스냅샷이 생성되는 빈도를 설정합니다.

다음 단계

자세한 내용과 코드 예시는 다음 주제를 참조하세요.