es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Se puede usar un destino de flujo de datos como fuente en el mismo flujo de datos?

Estoy tratando de cargar los datos de ventas a la base de datos usando Azure Synapse Analytics pipelines, y la estrategia es la siguiente (el escenario es ficticio):
1) Cargar los datos de los estudiantes a la tabla Students.
2) Cargar la información de las clases de los estudiantes a la tabla StudentsClasses. En este flujo de datos necesito unir los datos con la tabla Students (obviamente, los nuevos datos sobre los estudiantes deben cargarse en Students en este paso de unión).

¿Puedo tener estos dos procesos en el mismo flujo de datos con ordenamiento de Sink? ¿O el ordenamiento de Sink no define el orden de lectura de la fuente? Es decir, ¿la lectura y transformación de la fuente se realizan en paralelo y solo la escritura se hace de acuerdo con el ordenamiento?

Edit: Este es un ejemplo de flujo de datos que quiero implementar:
enter image description here

source3 y sink1 son la misma tabla. Lo que quiero hacer es primero poblar sink1 y luego usarlo para source2 para unir con él. ¿Se puede implementar esto usando Sink ordering? ¿O source3 estará vacío independientemente del ordenamiento de sink?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Azure Data Factory y Azure Synapse, puedo confirmar que el ordenamiento de destinos (sink ordering) sólo define el orden de escritura al destino (Sink) y no el orden de lectura de los datos fuente. Por lo tanto, no es posible unir los datos con la tabla de Estudiantes y cargar nuevos datos en Estudiantes al mismo tiempo en el mismo flujo de datos utilizando el ordenamiento de destinos.

    Una forma de implementar este escenario es crear dos flujos de datos separados, donde el primer flujo de datos carga los datos de los Estudiantes en la tabla de Estudiantes. El segundo flujo de datos cargará los datos de Estudiantes y Clases, los unirá con la tabla de Estudiantes y luego los escribirá en la tabla de Estudiantes y Clases.

    Alternativamente, puede utilizar tablas de preparación en su base de datos de Azure Synapse Analytics. En este caso, puede cargar sus datos en las tablas de preparación en paralelo y luego unirlos e insertarlos en sus tablas de destino final utilizando procedimientos almacenados de T-SQL. Este enfoque requerirá algo de codificación, pero le dará más control sobre el proceso de unión.

    En conclusión, el ordenamiento de destinos no es un método adecuado para implementar el escenario descrito anteriormente. Puede utilizar flujos de datos separados o tablas de preparación con procedimientos almacenados de T-SQL para lograr su objetivo.

Comments are closed.