E/S gerenciada pelo Dataflow

O conector de E/S gerenciado é uma transformação do Apache Beam que fornece uma API comum para criar origens e coletores.

Visão geral

O conector de E/S gerenciado é criado usando o código do Apache Beam, assim como qualquer outro conector de E/S. Especifique uma origem ou um coletor para instanciar e transmitir um conjunto de parâmetros de configuração. Também é possível colocar os parâmetros de configuração em um arquivo YAML e fornecer um URL para o arquivo.

No back-end, o Dataflow trata o conector de E/S gerenciado como um serviço, o que permite que o Dataflow gerencie operações de ambiente de execução para o conector. Assim, é possível se concentrar na lógica de negócios do pipeline, em vez de gerenciar esses detalhes.

Para mais informações sobre a API E/S gerenciada, consulte Managed na documentação do SDK do Apache Beam para Java.

Apache Iceberg

No Apache Iceberg, a E/S gerenciada usa os seguintes parâmetros de configuração:

Nome Tipo de dados Descrição
table string O identificador da tabela do Apache Iceberg. Exemplo: "db.table1".
catalog_name string O nome do catálogo. Exemplo: "local".
catalog_properties mapa Mapa das propriedades de configuração do Apache Iceberg no seu catálogo. As propriedades obrigatórias dependem do catálogo. Para mais informações, consulte CatalogUtil na documentação do Apache Iceberg.
config_properties mapa Um conjunto opcional de propriedades de configuração do Hadoop. Para mais informações, consulte CatalogUtil na documentação do Apache Iceberg.
triggering_frequency_seconds número inteiro Para pipelines de gravação de streaming, a frequência com que o sink tenta produzir snapshots, em segundos.

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

Apache Kafka

Para o Apache Kafka, o Managed I/O usa os seguintes parâmetros de configuração.

Ler e gravar configuração Tipo de dado Descrição
bootstrap_servers string Obrigatório. Uma lista separada por vírgulas de servidores de inicialização Kafka. Exemplo: localhost:9092.
topic string Obrigatório. O tópico do Kafka a ser lido.
file_descriptor_path string O caminho para um conjunto de descritores de arquivos de buffer de protocolo. Aplicável apenas se data_format for "PROTO".
data_format string O formato das mensagens. Valores aceitos: "AVRO", "JSON", "PROTO", "RAW". O valor padrão é "RAW", que lê ou grava os bytes brutos do payload da mensagem.
message_name string O nome da mensagem do buffer de protocolo. Obrigatório se data_format for "PROTO".
schema string

O esquema de mensagem do Kafka. O tipo de esquema esperado depende do formato de dados:

Para pipelines de leitura, esse parâmetro é ignorado se confluent_schema_registry_url estiver definido.

Ler configuração
auto_offset_reset_config string

Especifica o comportamento quando não há um deslocamento inicial ou o deslocamento atual não existe mais no servidor Kafka. Os valores a seguir são compatíveis:

  • "earliest": redefinir o deslocamento para o valor mais antigo.
  • "latest": redefine o deslocamento para o mais recente.

O valor padrão é "latest".

confluent_schema_registry_subject string O assunto de um registro de esquema do Confluent. Obrigatório se confluent_schema_registry_url for especificado
confluent_schema_registry_url string O URL de um registro de esquema do Confluent. Se especificado, o parâmetro schema será ignorado.
consumer_config_updates mapa Define parâmetros de configuração para o consumidor do Kafka. Para mais informações, consulte Configurações do consumidor na documentação do Kafka. É possível usar esse parâmetro para personalizar o consumidor do Kafka.
max_read_time_seconds int O tempo máximo de leitura, em segundos. Essa opção produz um PCollection limitado e é destinada principalmente a testes ou outros cenários que não são de produção.
Gravar configuração
producer_config_updates mapa Define parâmetros de configuração para o produtor do Kafka. Para mais informações, consulte Configurações do produtor na documentação do Kafka. É possível usar esse parâmetro para personalizar o produtor do Kafka.

Para ler mensagens Avro ou JSON, você precisa especificar um esquema de mensagem. Para definir um esquema diretamente, use o parâmetro schema. Para fornecer o esquema por um registro de esquema do Confluent, defina os parâmetros confluent_schema_registry_url e confluent_schema_registry_subject.

Para ler ou gravar mensagens do buffer de protocolo, especifique um esquema de mensagem ou defina o parâmetro file_descriptor_path.