Best practice per i connettori Apache Beam I/O

L'elaborazione dei dati in Dataflow può essere altamente parallelizzata. Gran parte di questo parallelismo viene gestito automaticamente da Dataflow. I connettori I/O si trovano al confine tra la pipeline e altre parti dell'architettura, ad esempio archiviazione di file, database e sistemi di messaggistica. Di conseguenza, i connettori I/O spesso hanno considerazioni specifiche per raggiungere il parallelismo.

Best practice generali

Il seguente elenco descrive le best practice generali per l'utilizzo dei connettori I/O in Dataflow.

  • Leggi la documentazione Javadoc, Pydoc o Go per i connettori nella tua pipeline. Per ulteriori informazioni, consulta la sezione Connettori I/O nella documentazione di Apache Beam.

  • Utilizza la versione più recente dell'SDK Apache Beam. I connettori I/O vengono migliorati costantemente, con l'aggiunta di funzionalità e la risoluzione dei problemi noti.

  • Durante lo sviluppo di una pipeline, è importante bilanciare il parallelismo del job. Se un job ha un parallelismo troppo basso, può essere lento e i dati possono accumularsi nell'origine. Tuttavia, un troppo parallelismo può sovraccaricare un sink con troppe richieste.

  • Non fare affidamento sull'ordine degli elementi. In generale, Dataflow non garantisce l'ordine degli elementi in una raccolta.

  • Se nel tuo SDK preferito non è disponibile un connettore I/O, valuta la possibilità di utilizzare il framework cross-language per utilizzare un connettore I/O da un altro SDK. Inoltre, i connettori non sempre hanno parità di funzionalità tra gli SDK. Se un connettore di un altro SDK fornisce una funzionalità di cui hai bisogno, puoi utilizzarlo come trasformazione cross-language.

  • In generale, la scrittura di connettori I/O personalizzati è complessa. Se possibile, utilizza un connettore esistente. Se devi implementare un connettore di I/O personalizzato, consulta Sviluppare un nuovo connettore I/O.

  • Se una pipeline si guasta, controlla se sono presenti errori registrati dai connettori I/O. Consulta Risolvere gli errori di Dataflow.

Best practice per i singoli connettori I/O

I seguenti argomenti elencano le best practice per i singoli connettori I/O:

Connettore I/OLetturaScrittura
BigQuery Leggere da BigQuery Scrivi in BigQuery
Bigtable Leggi da Bigtable Scrivi in Bigtable
Cloud Storage Lettura da Cloud Storage Scrivi in Cloud Storage

Connettori I/O supportati da Google

Nella tabella seguente sono elencati i connettori I/O Apache Beam supportati da Dataflow. Per un elenco completo dei connettori di I/O Apache Beam, inclusi quelli sviluppati dalla community Apache Beam e supportati da altri runner, vedi Connettori I/O nella documentazione di Apache Beam.

Nome connettore I/O Java Python Go
AvroIO Supportato Supportato Supportato
BigQueryIO Supportato Supportato Supportato
BigTableIO Supportato Supporto per sink Supporto per sink
DatastoreIO Supportato Supportato Supportato
FhirIO (sanità) Supportato Non disponibile Supportato
FileIO Supportato Supportato Supportato
GcsFileSystem Supportato Supportato Supportato
JdbcIO Supportato Supporto di più lingue Supporto di più lingue
KafkaIO Supportato Supporto di più lingue Supporto di più lingue
LocalFileSystem Supportato Supportato Supportato
ParquetIO Supportato Supportato Supportato
PubSubIO Supportato Supportato Supportato
SpannerIO Supportato Supporto di più lingue Supportato
TextIO Supportato Supportato Supportato
TFRecordIO Supportato Supportato Non disponibile

Passaggi successivi