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
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.
Pesquise o modelo Copiar novos arquivos somente por LastModifiedDate, selecione-o e selecione Continuar.
Crie uma Conexão no repositório de destino. O repositório de destino é o local para o qual você deseja copiar os arquivos.
Crie uma Conexão no repositório de origem. O repositório de origem é o local do qual você deseja copiar os arquivos.
Selecione Usar este modelo.
Você verá o pipeline disponível no painel, conforme mostrado no seguinte exemplo:
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.
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.
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.
Na janela Adicionar Gatilhos, selecione + Novo.
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.
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.
Selecione Publicar Tudo.
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.
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.
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.