Prácticas recomendadas para el conector de E/S de Apache Beam

El procesamiento de datos en Dataflow puede tener un paralelismo alto. Dataflow controla gran parte de este paralelismo automáticamente. Los conectores de E/S se encuentran en el límite entre la canalización y otras partes de la arquitectura, como el almacenamiento de archivos, las bases de datos y los sistemas de mensajería. Por lo tanto, los conectores de E/S a menudo tienen consideraciones específicas para lograr el paralelismo.

Prácticas recomendadas generales

En la siguiente lista, se describen las prácticas recomendadas generales para usar conectores de E/S en Dataflow.

  • Lee la documentación de Javadoc, Pydoc o Go para los conectores en la canalización. Para obtener más información, consulta Conectores de E/S en la documentación de Apache Beam.

  • Usa la versión más reciente del SDK de Apache Beam. Los conectores de E/S se mejoran de forma continua, se agregan funciones y solucionan problemas conocidos.

  • Cuando desarrollas una canalización, es importante equilibrar el paralelismo del trabajo. Si un trabajo tiene muy poco paralelismo, puede ser lento y los datos se pueden acumular en el origen. Sin embargo, demasiado paralelismo puede sobrecargar un receptor con demasiadas solicitudes.

  • No confíes en el orden de los elementos. En general, Dataflow no garantiza el orden de los elementos en una colección.

  • Si un conector de E/S no está disponible en el SDK que elijas, considera usar el framework para varios lenguajes para usar un conector de E/S de otro SDK. Además, los conectores no siempre tienen paridad de funciones entre los SDK. Si un conector de otro SDK proporciona una función que necesitas, puedes usarlo como una transformación entre lenguajes.

  • En general, escribir conectores de E/S personalizados es un desafío. Usa un conector existente siempre que sea posible. Si necesitas implementar un conector de E/S personalizado, consulta Desarrolla un conector de E/S nuevo.

  • Si una canalización falla, verifica si hay errores registrados por los conectores de E/S. Consulta Soluciona errores de Dataflow.

Prácticas recomendadas para los conectores de E/S individuales

En los siguientes temas, se enumeran las prácticas recomendadas para los conectores de E/S individuales:

Conector de E/SLeerEscritura
BigQuery Lee desde BigQuery Escribe en BigQuery
Bigtable Lee desde Bigtable Escribe en Bigtable
Cloud Storage Lee desde Cloud Storage Escribir en Cloud Storage

Conectores de E/S compatibles con Google

En la siguiente tabla, se enumeran los conectores de E/S de Apache Beam compatibles con Dataflow. Para obtener una lista completa de los conectores de E/S de Apache Beam, incluidos los que desarrolló la comunidad de Apache Beam y que son compatibles con otros ejecutores, consulta Conectores de E/S en la documentación de Apache Beam.

Nombre del conector de E/S Java Python Go
AvroIO Admitido Admitido Admitido
BigQueryIO Admitido Admitido Admitido
BigTableIO Admitido Compatibilidad con el receptor Compatibilidad con el receptor
DatastoreIO Admitido Admitido Admitido
FhirIO (atención médica) Admitido No disponible Admitido
FileIO Admitido Admitido Admitido
GcsFileSystem Admitido Admitido Admitido
JdbcIO Admitido Compatibilidad entre lenguajes Compatibilidad entre lenguajes
KafkaIO Admitido Compatibilidad entre lenguajes Compatibilidad entre lenguajes
LocalFileSystem Admitido Admitido Admitido
ParquetIO Admitido Admitido Admitido
PubSubIO Admitido Admitido Admitido
SpannerIO Admitido Compatibilidad entre lenguajes Admitido
TextIO Admitido Admitido Admitido
TFRecordIO Admitido Admitido No disponible

¿Qué sigue?