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.

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.