Best practice per il connettore Apache Beam I/O

L'elaborazione dei dati in Dataflow può essere molto parallelizzata. Gran parte di questi Il parallelismo è gestito automaticamente da Dataflow. 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 tengono considerazioni specifiche per raggiungere il parallelismo.

Best practice generali

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

  • Leggi la documentazione di Javadoc, Pydoc o Go per i connettori nel tuo una pipeline o un blocco note personalizzato. Per ulteriori informazioni, vedi Connettori I/O nella documentazione di Apache Beam.

  • Utilizza la versione più recente dell'SDK Apache Beam. I connettori I/O di continuo miglioramento, l'aggiunta di funzionalità e la risoluzione di problemi noti.

  • Quando si sviluppa una pipeline, è importante bilanciare il parallelismo dei un lavoro. Se un job ha troppo poco parallelismo, può essere lento e i dati possono nel codice sorgente. Tuttavia, un parallelismo eccessivo può sovraccaricare un sink con molte richieste.

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

  • Se nell'SDK che preferisci non è disponibile un connettore I/O, valuta la possibilità di utilizzare il framework multilingua per utilizzare un connettore I/O da un altro SDK. Inoltre, non sempre i connettori presentano le stesse caratteristiche degli SDK. Se un connettore di un altro SDK fornisce un'istanza di cui hai bisogno, puoi usarla come trasformazione cross-language.

  • In generale, scrivere connettori di I/O personalizzati è impegnativo. Utilizza un modello esistente quando possibile. Se devi implementare un connettore I/O personalizzato, lettura Sviluppare un nuovo connettore I/O.

  • In caso di errore di una pipeline, verifica la presenza di errori registrati dai connettori I/O. Consulta Risolvi gli errori di Dataflow.

  • Quando esegui scritture da Dataflow su un connettore, valuta la possibilità di utilizzare un ErrorHandler per gestire scritture non riuscite o letture non corrette. Questo tipo di gestione degli errori viene supportato per i seguenti I/O Java in Apache Beam 2.55.0 e versioni successive: BigQueryIO, BigtableIO, PubSubIO, KafkaIO, FileIO, TextIO e AvroIO.

Best practice per i singoli connettori I/O

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

connettore I/OLeggiScrittura
Iceberg Apache Leggi da Apache Iceberg Scrivi ad Apache Iceberg
BigQuery Lettura da BigQuery Scrivi in BigQuery
Bigtable Lettura da Bigtable Scrivi in Bigtable
Cloud Storage Lettura da Cloud Storage Scrivi in Cloud Storage
Pub/Sub Leggi da Pub/Sub Scrivi in Pub/Sub

Connettori I/O supportati da Google

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

Nome connettore I/O Java Python Vai
AvroIO Supportato Supportato Supportato
BigQueryIO Supportato Supportato Supportato
BigTableIO Supportato Supporto per sink Supporto per sink
DatastoreIO Supportato Supportato Supportato
FhirIO (assistenza sanitaria) 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