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:

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.

Passaggi successivi