A E/S gerenciada oferece suporte aos seguintes recursos do Apache Iceberg:
| Catálogos |
|
|---|---|
| Ler recursos | 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 dinamicamente.
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 Lidos
| Configuração | Tipo | Descrição |
|---|---|---|
| table |
str
|
Identificador da tabela do Iceberg. |
| catalog_name |
str
|
O 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 para a 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 Gravação
| 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`. |
| fragmentação automática |
boolean
|
Ativa o fragmentação dinâmica para ajustar automaticamente o número de gravadores paralelos com base no volume de dados. Ele processa o desvio de dados subdividindo ainda mais as partições em vários fragmentos para evitar gargalos durante gravações de alta taxa de transferência. Disponível apenas com o modo de distribuição "hash". |
| catalog_name |
str
|
O 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 para a configuração do Hadoop. |
| direct_write_byte_limit |
int32
|
Em um pipeline de streaming, define o limite para elevar pacotes para o caminho de gravação direta. |
| distribution_mode |
str
|
Define a distribuição dos dados de gravação. Distribuições compatíveis: - nenhuma: não embaralha as linhas (padrão) - hash: embaralha as linhas por chave de partição antes de gravar os dados |
| 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 deve ser gravado. É 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:
Para mais informações sobre transformações de partição, acesse https://iceberg.apache.org/spec/#partition-transforms. |
| sort_fields |
list[str]
|
Campos usados para definir a ordem de classificação da tabela, aplicada quando ela é criada. Cada entrada tem o formato <term> [asc|desc] [nulls first|nulls last], em que <term> é um nome de campo ou uma das transformações de partição (por exemplo, bucket(col, 4), day(ts)). A direção padrão é crescente. A ordem nula padrão é "nulos primeiro" para crescente e "nulos por último" para decrescente. Observação: isso define a ordem de classificação declarada da tabela como metadados. Não faz com que o Beam classifique fisicamente os registros antes de gravar.
Para mais informações sobre ordens de classificação, acesse https://iceberg.apache.org/spec/#sort-orders.
|
| table_properties |
map[str, str]
|
Propriedades da tabela do Iceberg que serão definidas nela 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: