Copia de archivos nuevos y cambiados por LastModifiedDate con Azure Data Factory

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.

En este artículo se describe una plantilla de solución que puede usar para copiar archivos nuevos y cambiados solo por LastModifiedDate desde un almacén basado en archivos en un almacén de destino.

Acerca de esta plantilla de solución

Esta plantilla selecciona primero los archivos nuevos y cambiados solo por sus atributos LastModifiedDate y, a continuación, copia esos archivos seleccionados desde el almacén de origen de datos en el almacén de destino de datos.

La plantilla contiene una actividad:

  • Copia para copiar archivos nuevos y cambiados solo por LastModifiedDate desde un almacén de archivos en un almacén de destino.

La plantilla define seis parámetros:

  • FolderPath_Source es la ruta de acceso a la carpeta donde puede leer los archivos del almacén de origen. Debe reemplazar el valor predeterminado por su propia ruta de acceso a la carpeta.
  • Directory_Source es la ruta de acceso a la subcarpeta donde puede leer los archivos del almacén de origen. Debe reemplazar el valor predeterminado por su propia ruta de acceso a la subcarpeta.
  • FolderPath_Destination es la ruta de acceso a la carpeta donde desea copiar archivos en el almacén de destino. Debe reemplazar el valor predeterminado por su propia ruta de acceso a la carpeta.
  • Directory_Destination es la ruta de acceso a la subcarpeta donde quiere copiar archivos en el almacén de destino. Debe reemplazar el valor predeterminado por su propia ruta de acceso a la subcarpeta.
  • LastModified_From se usa para seleccionar los archivos cuyo atributo LastModifiedDate es posterior o igual a este valor datetime. Para seleccionar solo los archivos nuevos, los cuales no se han copiado la última vez, este valor datetime puede ser la hora a la que se desencadenó la canalización la última vez. Puede reemplazar el valor predeterminado '2019-02-01T00:00:00Z' por su LastModifiedDate esperado en la zona horaria UTC.
  • LastModified_To se usa para seleccionar los archivos cuyo atributo LastModifiedDate es anterior a este valor datetime. Para seleccionar solo los nuevos archivos, que no se copiaron en ejecuciones anteriores, este valor datetime puede ser la hora actual. Puede reemplazar el valor predeterminado '2019-02-01T00:00:00Z' por su LastModifiedDate esperado en la zona horaria UTC.

Uso de esta plantilla de solución

  1. Vaya a la Galería de plantillas desde la pestaña Autor de Azure Data Factory y, después, elija el botón +, Canalización y, por último, Galería de plantillas.

    Captura de pantalla que muestra cómo abrir la galería de plantillas desde la pestaña Autor de Azure Data Factory Studio.

  2. Busque la plantilla Copiar nuevos archivos solo por LastModifiedDate, selecciónelo y, a continuación, seleccione Continuar.

    Captura de pantalla que muestra cómo buscar y seleccionar la plantilla Copiar nuevos archivos solo por LastModifiedDate.

  3. Cree una nueva conexión con el almacén de destino. El almacén de destino es donde se van a copiar los archivos.

    Creación de una nueva conexión con el origen

  4. Cree una nueva conexión con el almacén de almacenamiento de origen. El almacén de almacenamiento de origen es desde donde se van a copiar los archivos.

    Creación de una nueva conexión con el destino

  5. Seleccione Usar esta plantilla.

    Usar esta plantilla

  6. Ve la canalización disponible en el panel, como se muestra en el ejemplo siguiente:

    Visualización de la canalización

  7. Seleccione Depurar, escriba el valor de los Parámetros y seleccione Finalizar. En la imagen siguiente, se establecen los parámetros como se indica a continuación.

    • FolderPath_Source = sourcefolder
    • Directory_Source = subfolder
    • FolderPath_Destination = destinationfolder
    • Directory_Destination = subfolder
    • LastModified_From = 2019-02-01T00:00:00Z
    • LastModified_To = 2019-03-01T00:00:00Z

    En el ejemplo se indica que los archivos que se modificaron por última vez en el intervalo de tiempo (2019-02-01T00:00:00Z y 2019-03-01T00:00:00Z) se copiarán desde la ruta de acceso de origen sourcefolder/subfolder en una ruta de acceso de destino destinationfolder/subfolder. Puede reemplazar estas horas o carpetas por sus propios parámetros.

    Ejecución de la canalización

  8. Revise el resultado. Solo verá que los archivos modificados por última vez en el intervalo de tiempo configurado se copian en el almacén de destino.

    Revisión del resultado

  9. Ahora puede agregar un desencadenador de ventanas de saltos de tamaño constante para automatizar esta canalización para que siempre pueda copiar archivos nuevos y cambiados solo por LastModifiedDate de forma periódica. Seleccione Agregar desencadenador y luego Nuevo/Editar.

    Captura de pantalla que resalta la opción de menú New/Edit (Nuevo/Editar) que aparece al seleccionar Add trigger (Agregar desencadenador).

  10. En la ventana Agregar desencadenadores, seleccione + Nuevo.

  11. Seleccione Ventana de saltos de tamaño constante para el tipo de desencadenador, establezca Cada 15 minutos como periodicidad (puede cambiarla por cualquier intervalo de tiempo). Seleccione en la casilla activada y, a continuación, seleccione Aceptar.

    Creación de un desencadenador

  12. Establezca el valor de los parámetros de ejecución de desencadenador de la manera siguiente y seleccione Finalizar.

    • FolderPath_Source = sourcefolder. Se puede reemplazar por su carpeta en el almacén de datos de origen.
    • Directory_Source = subfolder. Se puede reemplazar por su subcarpeta en el almacén de datos de origen.
    • FolderPath_Destination = destinationfolder. Se puede reemplazar por su carpeta en el almacén de datos de destino.
    • Directory_Destination = subfolder. Se puede reemplazar por su subcarpeta en el almacén de datos de destino.
    • LastModified_From = @trigger().outputs.windowStartTime. Es una variable del sistema del desencadenador que determina la hora en que se desencadenó la canalización la última vez.
    • LastModified_To = @trigger().outputs.windowEndTime. Es una variable del sistema del desencadenador que determina la hora a la que se desencadena la canalización esta vez.

    Parámetros de entrada

  13. Seleccione Publish All (Publicar todo).

    Publicar todo

  14. Cree nuevos archivos en su carpeta de origen del almacén de origen de datos. Ahora está esperando a que la canalización se active automáticamente y solo se copien los archivos nuevos en el almacén de destino.

  15. Seleccione pestaña Supervisar en el panel de navegación izquierdo y espere unos 15 minutos si la periodicidad del desencadenador se estableció en cada 15 minutos.

  16. Revise el resultado. Verá que la canalización se desencadena automáticamente cada 15 minutos y solo se copian los archivos nuevos o modificados del almacén de origen en el almacén de destino en cada ejecución de canalización.

    Captura de pantalla que muestra los resultados devueltos al desencadenar la canalización.