Best practice per i connettori I/O di Apache Beam

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

Best practice generali

L'elenco seguente 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 pipeline. Per ulteriori informazioni, consulta Connettori I/O nella documentazione di Apache Beam.

  • Utilizza la versione più recente dell'SDK Apache Beam. I connettori I/O vengono continuamente migliorati, aggiungendo funzionalità e risolvendo i problemi noti.

  • Quando sviluppi una pipeline, è importante bilanciare il parallelismo del compito. Se un job ha un parallelismo troppo ridotto, può essere lento e i dati possono accumularsi nella sorgente. Tuttavia, un parallelismo eccessivo può sopraffare un'area di destinazione con troppe richieste.

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

  • Se un connettore I/O non è disponibile nell'SDK che preferisci, ti consigliamo di utilizzare il framework multilingue per utilizzare un connettore I/O di 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 tra lingue.

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

  • Se una pipeline non va a buon fine, controlla se ci sono errori registrati dai connettori di I/O. Consulta Risolvere gli errori di Dataflow.

  • Quando esegui scritture da Dataflow a un connettore, ti consigliamo di utilizzare un ErrorHandler per gestire eventuali scritture non riuscite o letture con formato non corretto. Questo tipo di gestione degli errori è supportato per le seguenti operazioni di I/O Java nelle versioni 2.55.0 e successive di Apache Beam: 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
Apache Iceberg Leggere da Apache Iceberg Scrivere in Apache Iceberg
Apache Kafka Lettura da Apache Kafka Scrivere in Apache Kafka
BigQuery Lettura da BigQuery Scrivere in BigQuery
Bigtable Leggere da Bigtable Scrivere in Bigtable
Cloud Storage Lettura da Cloud Storage Scrivere in Cloud Storage
Pub/Sub Leggere da Pub/Sub Scrivere in Pub/Sub

Connettori I/O supportati da Google

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

Nome del connettore di I/O Java Python Vai
AvroIO Supportato Supportato Supportato
BigQueryIO Supportato Supportato Supportato
BigTableIO Supportato Lavello supportato Lavello supportato
DatastoreIO Supportato Supportato Supportato
FhirIO (sanità) Supportato Non disponibile Supportato
FileIO Supportato Supportato Supportato
GcsFileSystem Supportato Supportato Supportato
JdbcIO Supportato Supporto multilingue Supporto multilingue
KafkaIO Supportato Supporto multilingue Supporto multilingue
LocalFileSystem Supportato Supportato Supportato
ParquetIO Supportato Supportato Supportato
PubSubIO Supportato Supportato Supportato
SpannerIO Supportato Supporto multilingue Supportato
TextIO Supportato Supportato Supportato
TFRecordIO Supportato Supportato Non disponibile

Passaggi successivi