Copiar arquivos novos e alterados pela LastModifiedDate com o Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

Este artigo descreve um modelo de solução que você pode usar para copiar arquivos novos e alterados somente pela LastModifiedDate de um repositório baseado em arquivo para um repositório de destino.

Sobre o modelo de solução

Primeiro, este modelo seleciona os arquivos novos e alterados somente por seus atributos LastModifiedDate e copia esses arquivos selecionados do armazenamento de dados de origem para o armazenamento de dados de destino.

O modelo contém uma atividade:

  • Copy para copiar arquivos novos e alterados somente pela LastModifiedDate de um repositório de arquivos para um repositório de destino.

O modelo define seis parâmetros:

  • FolderPath_Source é o caminho da pasta em que os arquivos do repositório de origem podem ser lidos. Você precisará substituir o valor padrão por um caminho de pasta próprio.
  • Directory_Source é o caminho da subpasta em que os arquivos do repositório de origem podem ser lidos. Você precisará substituir o valor padrão por um caminho de subpasta próprio.
  • FolderPath_Destination é o caminho da pasta em que você deseja copiar os arquivos para o repositório de destino. Você precisará substituir o valor padrão por um caminho de pasta próprio.
  • Directory_Destination é o caminho da subpasta em que você deseja copiar os arquivos para o repositório de destino. Você precisará substituir o valor padrão por um caminho de subpasta próprio.
  • LastModified_From é usado para selecionar os arquivos cujo atributo LastModifiedDate é posterior ou igual a esse valor de datetime. Para selecionar somente os novos arquivos, que não foram copiados pela última vez, esse valor de datetime pode ser a hora em que o pipeline foi disparado pela última vez. Você pode substituir o valor padrão '2019-02-01T00:00:00Z' pela LastModifiedDate esperada no fuso horário UTC.
  • LastModified_To é usado para selecionar os arquivos cujo atributo LastModifiedDate é anterior a esse valor de datetime. Para selecionar somente os novos arquivos, que não foram copiados em execuções anteriores, esse valor de datetime pode ser a hora atual. Você pode substituir o valor padrão '2019-02-01T00:00:00Z' pela LastModifiedDate esperada no fuso horário UTC.

Como usar este modelo de solução

  1. Navegue até a Galeria de Modelos na guia Autor no Azure Data Factory e, em seguida, escolha o botão +, Pipeline e, por fim, a Galeria de Modelos.

    Captura de tela mostrando como abrir a Galeria de Modelos na guia Autor do Azure Data Factory Studio.

  2. Pesquise o modelo Copiar novos arquivos somente por LastModifiedDate, selecione-o e selecione Continuar.

    Captura de tela mostrando como localizar e selecionar o modelo Copiar novos arquivos apenas por LastModifiedDate.

  3. Crie uma Conexão no repositório de destino. O repositório de destino é o local para o qual você deseja copiar os arquivos.

    Criar uma nova conexão para a origem

  4. Crie uma Conexão no repositório de origem. O repositório de origem é o local do qual você deseja copiar os arquivos.

    Criar uma nova conexão para o destino

  5. Selecione Usar este modelo.

    Usar este modelo

  6. Você verá o pipeline disponível no painel, conforme mostrado no seguinte exemplo:

    Mostrar o pipeline

  7. Selecione Depurar, grave o valor dos Parâmetros e escolha Concluir. Na imagem a seguir, definimos os parâmetros como a seguir.

    • FolderPath_Source = pastadeorigem
    • Directory_Source = subpasta
    • FolderPath_Destination = pastadedestino
    • Directory_Destination = subpasta
    • LastModified_From = 2019-02-01T00:00:00Z
    • LastModified_To = 2019-03-01T00:00:00Z

    O exemplo indica que os arquivos, que foram modificados pela última vez dentro do período (2019-02-01T00:00:00Z a 2019-03-01T00:00:00Z), serão copiados do caminho de origem pastadeorigem/subpasta para o caminho de destino pastadedestino/subpasta. Você pode substituir esses horários ou pastas por seus próprios parâmetros.

    Executar o pipeline

  8. Examine o resultado. Você verá que somente os arquivos modificados pela última vez no período configurado foram copiados para o repositório de destino.

    Revisar o resultado

  9. Agora você pode adicionar um gatilho periódico para automatizar esse pipeline, para que ele sempre possa copiar arquivos novos e alterados somente pela LastModifiedDate periodicamente. Selecione Adicionar gatilho e Novo/Editar.

    Captura de tela que realça a opção de menu Novo/Editar exibida quando você seleciona Adicionar gatilho.

  10. Na janela Adicionar Gatilhos, selecione + Novo.

  11. Selecione Janela em Cascata como o tipo de gatilho e defina A cada 15 minutos como a recorrência (você pode alterá-la para qualquer hora de intervalo). Escolha Sim na caixa Ativado e selecione OK.

    Criar gatilho

  12. Defina o valor de Parâmetros de Execução de Gatilho mostrado a seguir e selecione Concluir.

    • FolderPath_Source = pastadeorigem. Você poderá substituir esse valor pela pasta no armazenamento de dados de origem.
    • Directory_Source = subpasta. Você poderá substituir esse valor pela subpasta no armazenamento de dados de origem.
    • FolderPath_Destination = pastadedestino. Você poderá substituir esse valor pela pasta no armazenamento de dados de destino.
    • Directory_Destination = subpasta. Você poderá substituir esse valor pela subpasta no armazenamento de dados de destino.
    • LastModified_From = @trigger().outputs.windowStartTime. É uma variável de sistema do gatilho que determina a hora em que o pipeline foi disparado pela última vez.
    • LastModified_To = @trigger().outputs.windowEndTime. É uma variável de sistema do gatilho que determina a hora em que o pipeline é disparado desta vez.

    Parâmetros de entrada

  13. Selecione Publicar Tudo.

    Publicar Tudo

  14. Crie arquivos na pasta de origem do armazenamento de dados de origem. Agora você está aguardando que o pipeline seja disparado automaticamente e que somente os novos arquivos sejam copiados para o repositório de destino.

  15. Selecione a guia Monitor no painel de navegação à esquerda e aguarde cerca de 15 minutos se a recorrência do gatilho tiver sido definida como a cada 15 minutos.

  16. Examine o resultado. Você verá que o pipeline é disparado automaticamente a cada 15 minutos e somente os arquivos novos ou alterados do repositório de origem são copiados para o repositório de destino em cada execução de pipeline.

    Captura de tela que mostra os resultados retornados quando o pipeline é disparado.