I/O gestite da Dataflow

Il connettore I/O gestito è una trasformazione Apache Beam che fornisce un'API comune per la creazione di origini e sink.

Panoramica

Puoi creare il connettore I/O gestito utilizzando il codice Apache Beam, come qualsiasi altro connettore I/O. Specifica un'origine o una destinazione da istanziare e passa un insieme di parametri di configurazione. Puoi anche inserire i parametri di configurazione in un file YAML e fornire un URL al file.

Sul backend, Dataflow tratta il connettore I/O gestito come un servizio, il che consente a Dataflow di gestire le operazioni di runtime per il connettore. In questo modo, puoi concentrarti sulla logica di business nella pipeline anziché gestire questi dettagli.

Per ulteriori informazioni sull'API I/O gestita, consulta Managed nella documentazione dell'SDK Apache Beam Java.

Apache Iceberg

I/O gestita supporta le seguenti funzionalità per Apache Iceberg:

Catalogo Lettura batch Scrittura batch Scrittura in streaming Creazione di tabelle dinamiche Destinazioni dinamiche
Hadoop Supportato Supportato Supportato Supportato Supportato
Hive Supportato Supportato Supportato Supportato Supportato
Cataloghi basati su REST Supportato Supportato Supportato Supportato Supportato

Per le tabelle BigQuery per Apache Iceberg, utilizza il connettore BigQueryIO con l'API BigQuery Storage. La tabella deve già esistere; la creazione di tabelle dinamiche non è supportata.

L'I/O gestita utilizza i seguenti parametri di configurazione per Apache Iceberg:

Nome Tipo di dati Descrizione
table string L'identificatore della tabella Apache Iceberg. Esempio: "db.table1".
catalog_name string Il nome del catalogo. Esempio: "local".
catalog_properties mappa Una mappa delle proprietà di configurazione per il catalogo Apache Iceberg. Le proprietà richieste dipendono dal catalogo. Per ulteriori informazioni, consulta CatalogUtil nella documentazione di Apache Iceberg.
config_properties mappa Un insieme facoltativo di proprietà di configurazione di Hadoop. Per ulteriori informazioni, consulta CatalogUtil nella documentazione di Apache Iceberg.
triggering_frequency_seconds integer Per le pipeline di scrittura in streaming, la frequenza con cui il sink tenta di produrre snapshot, in secondi.
drop Elenco di stringhe Un elenco di nomi di campi da eliminare durante la scrittura della tabella.
keep Elenco di stringhe Un elenco di nomi di campi da conservare durante la scrittura della tabella.
only string Il nome di un solo campo da conservare durante la scrittura della tabella. Tutti gli altri campi vengono eliminati. Il valore del campo deve essere un tipo di riga.

Per ulteriori informazioni, inclusi esempi di codice, consulta i seguenti argomenti:

Apache Kafka

Per Apache Kafka, l'I/O gestita utilizza i seguenti parametri di configurazione.

Lettura e scrittura della configurazione Tipo di dati Descrizione
bootstrap_servers string Obbligatorio. Un elenco separato da virgole di server bootstrap Kafka. Esempio: localhost:9092.
topic string Obbligatorio. L'argomento Kafka da cui leggere.
file_descriptor_path string Il percorso di un insieme di descrittori di file del buffer del protocollo. Si applica solo se data_format è "PROTO".
data_format string Il formato dei messaggi. Valori supportati: "AVRO", "JSON", "PROTO", "RAW". Il valore predefinito è "RAW", che legge o scrive i byte non elaborati del payload del messaggio.
message_name string Il nome del messaggio del buffer del protocollo. Obbligatorio se data_format è "PROTO".
schema string

Lo schema dei messaggi Kafka. Il tipo di schema previsto dipende dal formato dei dati:

Per le pipeline di lettura, questo parametro viene ignorato se è impostato confluent_schema_registry_url.

Leggi configurazione
auto_offset_reset_config string

Specifica il comportamento quando non è presente alcun offset iniziale o se l'offset corrente non esiste più sul server Kafka. Sono supportati i seguenti valori:

  • "earliest": reimposta l'offset sull'offset più antico.
  • "latest": reimposta l'offset sull'ultimo.

Il valore predefinito è "latest".

confluent_schema_registry_subject string L'oggetto di un registry dello schema Confluent. Obbligatorio se confluent_schema_registry_url è specificato.
confluent_schema_registry_url string L'URL di un registry dello schema Confluent. Se specificato, il parametro schema viene ignorato.
consumer_config_updates mappa Imposta i parametri di configurazione per il consumer Kafka. Per ulteriori informazioni, consulta Configurazioni dei consumatori nella documentazione di Kafka. Puoi utilizzare questo parametro per personalizzare il consumer Kafka.
max_read_time_seconds int Il tempo di lettura massimo, in secondi. Questa opzione genera un valore PCollection limitato ed è destinata principalmente ai test o ad altri scenari non di produzione.
Scrittura configurazione
producer_config_updates mappa Imposta i parametri di configurazione per il produttore Kafka. Per maggiori informazioni, consulta Configurazioni del produttore nella documentazione di Kafka. Puoi utilizzare questo parametro per personalizzare il produttore Kafka.

Per leggere i messaggi Avro o JSON, devi specificare uno schema di messaggi. Per impostare direttamente uno schema, utilizza il parametro schema. Per fornire lo schema tramite un registro dello schema Confluent, imposta i parametri confluent_schema_registry_url e confluent_schema_registry_subject.

Per leggere o scrivere messaggi Protocol Buffer, specifica uno schema di messaggi o imposta il parametro file_descriptor_path.