E/S gerenciada pelo Dataflow para o Apache Iceberg

A E/S gerenciada oferece suporte aos seguintes recursos do Apache Iceberg:

Catálogos
  • Hadoop
  • Hive
  • Catálogos baseados em REST
  • Metastore do BigQuery (requer o SDK do Apache Beam 2.62.0 ou mais recente se não estiver usando o Runner v2)
Recursos de leitura Leitura em lote
Recursos de gravação

Para tabelas do BigQuery para Apache Iceberg, use o conector BigQueryIO com a API BigQuery Storage. A tabela já precisa existir. Não é possível criar tabelas dinâmicas.

Requisitos

Os seguintes SDKs são compatíveis com E/S gerenciada para o Apache Iceberg:

  • SDK do Apache Beam para Java versão 2.58.0 ou mais recente
  • SDK do Apache Beam para Python versão 2.61.0 ou mais recente

Configuração

A E/S gerenciada para Apache Iceberg é compatível com os seguintes parâmetros de configuração:

ICEBERG Ler

Configuração Tipo Descrição
table str Identificador da tabela do Iceberg.
catalog_name str Nome do catálogo que contém a tabela.
catalog_properties map[str, str] Propriedades usadas para configurar o catálogo do Iceberg.
config_properties map[str, str] Propriedades transmitidas à configuração do Hadoop.
drop list[str] Um subconjunto de nomes de colunas a serem excluídos da leitura. Se for nulo ou vazio, todas as colunas serão lidas.
filtrar str Predicado semelhante a SQL para filtrar dados no momento da verificação. Exemplo: "id > 5 AND status = 'ACTIVE'". Usa a sintaxe do Apache Calcite: https://calcite.apache.org/docs/reference.html
keep list[str] Um subconjunto de nomes de colunas para leitura exclusiva. Se for nulo ou vazio, todas as colunas serão lidas.

ICEBERG Gravar

Configuração Tipo Descrição
table str Um identificador de tabela totalmente qualificado. Você também pode fornecer um modelo para gravar em vários destinos dinâmicos, por exemplo: `dataset.my_{col1}_{col2.nested}_table`.
catalog_name str Nome do catálogo que contém a tabela.
catalog_properties map[str, str] Propriedades usadas para configurar o catálogo do Iceberg.
config_properties map[str, str] Propriedades transmitidas à configuração do Hadoop.
drop list[str] Uma lista de nomes de campos a serem descartados do registro de entrada antes da gravação. É mutuamente exclusivo com "keep" e "only".
keep list[str] Uma lista de nomes de campos a serem mantidos no registro de entrada. Todos os outros campos são descartados antes da gravação. É mutuamente exclusivo com "drop" e "only".
apenas str O nome de um único campo de registro que precisa ser gravado. É mutuamente exclusivo com "keep" e "drop".
partition_fields list[str] Campos usados para criar uma especificação de partição aplicada quando as tabelas são criadas. Para um campo "foo", as transformações de partição disponíveis são:
  • foo
  • truncate(foo, N)
  • bucket(foo, N)
  • hour(foo)
  • day(foo)
  • month(foo)
  • year(foo)
  • void(foo)

Para mais informações sobre transformações de partição, acesse https://iceberg.apache.org/spec/#partition-transforms.

table_properties map[str, str] Propriedades da tabela Iceberg a serem definidas na tabela quando ela for criada. Para mais informações sobre propriedades de tabela, acesse https://iceberg.apache.org/docs/latest/configuration/#table-properties.
triggering_frequency_seconds int32 Para um pipeline de streaming, define a frequência com que os snapshots são produzidos.

A seguir

Para mais informações e exemplos de código, consulte os seguintes tópicos: