apache-beam - notes - get started with apache beam
¿Cómo se expresan las combinaciones de desnormalización en Apache Beam que se extienden durante largos períodos de tiempo? (1)
Dado que el Productor puede aparecer años antes de su Producto, puede usar algo de almacenamiento externo (por ejemplo, BigTable) para almacenar sus Productores y escribir una ParDo
de ParDo
para el Producto para realizar búsquedas y realizar ParDo
. Para optimizar aún más el rendimiento, puede aprovechar la característica DoFn con estado para realizar búsquedas por lotes (consulte this blog).
Aún puede usar las ventanas y CoGroupByKey para unirse en los casos en que los datos del producto se entreguen antes que los datos del productor. Sin embargo, la ventana aquí puede ser lo suficientemente pequeña como para manejar la entrega fuera de orden.
Para el contexto nunca he usado Beam. Estoy tratando de entender cómo aplicar el modelo Beam a casos de uso comunes.
Considere que tiene una colección ilimitada de Productores y una colección ilimitada de Productos de tal manera que cada Producto tiene un Productor (uno a muchos, Productor a Producto). Y tiene la propiedad adicional de que el Productor de un Producto aparece antes (o poco después) de su Producto. Pero un Productor puede aparecer años antes de su Producto.
Si desea producir una colección ilimitada de productos con sus productores unidos a ellos, ¿cuál es la forma adecuada de expresar esto? Tener una unión con ventana que se extiende por años parece derrotar el punto de la ventana. Pero tener a los Productores como una entrada lateral no parece manejar que los Productores puedan aparecer muy de cerca cuando aparece el Producto.
¿Hay una manera apropiada de mezclar estos dos conceptos?