E/S gerida do Dataflow para o Apache Iceberg

A E/S gerida suporta as seguintes capacidades para o Apache Iceberg:

Catálogos
  • Hadoop
  • Hive
  • Catálogos baseados em REST
  • Metastore do BigQuery (requer o SDK do Apache Beam 2.62.0 ou posterior se não usar o Runner v2)
Capacidades de leitura Leitura em lote
Capacidades de escrita

Para tabelas do BigQuery para o Apache Iceberg, use o conetor BigQueryIO com a API BigQuery Storage. A tabela tem de existir. A criação de tabelas dinâmicas não é suportada.

Requisitos

Os seguintes SDKs suportam a E/S gerida para o Apache Iceberg:

  • Versão 2.58.0 ou posterior do SDK do Apache Beam para Java
  • Versão 2.61.0 ou posterior do SDK do Apache Beam para Python

Configuração

A E/S gerida para o Apache Iceberg suporta os seguintes parâmetros de configuração:

ICEBERG Ler

Configuração Tipo Descrição
tabela str Identificador da tabela 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.
diminuir list[str] Um subconjunto de nomes de colunas a excluir da leitura. Se for nulo ou estiver vazio, todas as colunas são lidas.
filtrar str Predicado semelhante a SQL para filtrar dados no momento da análise. 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 a ler exclusivamente. Se for nulo ou estiver vazio, todas as colunas são lidas.

ICEBERG Escrever

Configuração Tipo Descrição
tabela str Um identificador de tabela totalmente qualificado. Também pode fornecer um modelo para escrever 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.
diminuir list[str] Uma lista de nomes de campos a remover do registo de entrada antes da escrita. É mutuamente exclusivo com "keep" e "only".
keep list[str] Uma lista de nomes de campos a manter no registo de entrada. Todos os outros campos são ignorados antes da escrita. É mutuamente exclusivo com "drop" e "only".
apenas str O nome de um único campo de registo que deve ser escrito. É mutuamente exclusivo com "keep" e "drop".
partition_fields list[str] Campos usados para criar uma especificação de partição que é 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 as transformações de partições, visite https://iceberg.apache.org/spec/#partition-transforms.

table_properties map[str, str] Propriedades da tabela Iceberg a definir na tabela quando é criada. Para mais informações sobre as propriedades das tabelas, visite 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 instantâneos são produzidos.

O que se segue?

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