Entrada/salida gestionada de Dataflow para Apache Iceberg

Gestión de E/S admite las siguientes funciones de Apache Iceberg:

Catálogos
  • Hadoop
  • Hive
  • Catálogos basados en REST
  • Metastore de BigQuery (requiere el SDK de Apache Beam 2.62.0 o una versión posterior si no se usa Runner v2)
Funciones de lectura Lectura por lotes
Funciones de escritura

En el caso de las tablas de BigQuery para Apache Iceberg, usa el conector BigQueryIO con la API Storage de BigQuery. La tabla ya debe existir. No se admite la creación de tablas dinámicas.

Requisitos

Los siguientes SDKs admiten la entrada/salida gestionada para Apache Iceberg:

  • Versión 2.58.0 o posterior del SDK de Apache Beam para Java
  • Versión 2.61.0 o posterior del SDK de Apache Beam para Python

Configuración

La E/S gestionada de Apache Iceberg admite los siguientes parámetros de configuración:

ICEBERG Leer

Configuración Tipo Descripción
tabla str Identificador de la tabla Iceberg.
catalog_name str Nombre del catálogo que contiene la tabla.
catalog_properties map[str, str] Propiedades usadas para configurar el catálogo de Iceberg.
config_properties map[str, str] Propiedades transferidas a la configuración de Hadoop.
drop list[str] Un subconjunto de nombres de columnas que se excluirán de la lectura. Si es nulo o está vacío, se leerán todas las columnas.
filtrar str Predicado similar a SQL para filtrar datos en el momento del análisis. Por ejemplo: "id > 5 AND status = 'ACTIVE'". Usa la sintaxis de Apache Calcite: https://calcite.apache.org/docs/reference.html.
keep list[str] Un subconjunto de nombres de columnas que se leerán exclusivamente. Si es nulo o está vacío, se leerán todas las columnas.

ICEBERG Escribir

Configuración Tipo Descripción
tabla str Identificador de tabla completo. También puede proporcionar una plantilla para escribir en varios destinos dinámicos, por ejemplo: `dataset.my_{col1}_{col2.nested}_table`.
catalog_name str Nombre del catálogo que contiene la tabla.
catalog_properties map[str, str] Propiedades usadas para configurar el catálogo de Iceberg.
config_properties map[str, str] Propiedades transferidas a la configuración de Hadoop.
drop list[str] Lista de nombres de campos que se van a eliminar del registro de entrada antes de escribir. Se excluye mutuamente con "keep" y "only".
keep list[str] Lista de nombres de campos que se conservarán en el registro de entrada. El resto de los campos se descartan antes de escribir. Se excluye mutuamente con "drop" y "only".
solo str Nombre de un campo de registro que se debe escribir. Se excluye mutuamente con "keep" y "drop".
partition_fields list[str] Campos que se usan para crear una especificación de partición que se aplica cuando se crean tablas. En el caso del campo "foo", las transformaciones de partición disponibles son las siguientes:
  • foo
  • truncate(foo, N)
  • bucket(foo, N)
  • hour(foo)
  • day(foo)
  • month(foo)
  • year(foo)
  • void(foo)

Para obtener más información sobre las transformaciones de partición, visita https://iceberg.apache.org/spec/#partition-transforms.

table_properties map[str, str] Propiedades de la tabla Iceberg que se definirán en la tabla cuando se cree. Para obtener más información sobre las propiedades de las tablas, visita https://iceberg.apache.org/docs/latest/configuration/#table-properties.
triggering_frequency_seconds int32 En el caso de una canalización de streaming, define la frecuencia con la que se generan las instantáneas.

Siguientes pasos

Para obtener más información y ejemplos de código, consulta los siguientes temas: