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/O | Leggi | Scrittura |
---|---|---|
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
- Leggi la documentazione di Apache Beam per Connettori I/O.