Copiar arquivos novos e alterados por LastModifiedDate com o Azure Data Factory
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Gorjeta
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!
Este artigo descreve um modelo de solução que você pode usar para copiar arquivos novos e alterados somente por LastModifiedDate de um repositório baseado em arquivo para um repositório de destino.
Sobre este modelo de solução
Este modelo primeiro seleciona os arquivos novos e alterados somente por seus atributos LastModifiedDate e, em seguida, copia esses arquivos selecionados do armazenamento da fonte de dados para o repositório de destino de dados.
O modelo contém uma atividade:
- Copie para copiar arquivos novos e alterados somente por LastModifiedDate de um armazenamento de arquivos para um repositório de destino.
O modelo define seis parâmetros:
- FolderPath_Source é o caminho da pasta onde você pode ler os arquivos do armazenamento de origem. Você precisa substituir o valor padrão pelo seu próprio caminho de pasta.
- Directory_Source é o caminho da subpasta onde você pode ler os arquivos do armazenamento de origem. Você precisa substituir o valor padrão pelo seu próprio caminho de subpasta.
- FolderPath_Destination é o caminho da pasta onde você deseja copiar arquivos para o armazenamento de destino. Você precisa substituir o valor padrão pelo seu próprio caminho de pasta.
- Directory_Destination é o caminho da subpasta onde você deseja copiar arquivos para o armazenamento de destino. Você precisa substituir o valor padrão pelo seu próprio caminho de subpasta.
- LastModified_From é usado para selecionar os arquivos cujo atributo LastModifiedDate é posterior ou igual a esse valor datetime. Para selecionar apenas os novos arquivos, que não foram copiados da última vez, esse valor datetime pode ser a hora em que o pipeline foi acionado pela última vez. Você pode substituir o valor padrão '2019-02-01T00:00:00Z' pelo seu LastModifiedDate esperado no fuso horário UTC.
- LastModified_To é usado para selecionar os arquivos cujo atributo LastModifiedDate é anterior a esse valor datetime. Para selecionar apenas os novos arquivos, que não foram copiados em execuções anteriores, esse valor datetime pode ser o tempo presente. Você pode substituir o valor padrão '2019-02-01T00:00:00Z' pelo seu LastModifiedDate esperado 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 escolha o + botão, Pipeline e, finalmente , Galeria de Modelos.
Procure o modelo Copiar novos ficheiros apenas por LastModifiedDate, selecione-o e, em seguida, selecione Continuar.
Crie uma nova conexão com sua loja de destino. O repositório de destino é para onde você deseja copiar arquivos.
Crie uma nova conexão com seu armazenamento de armazenamento de origem. O armazenamento de armazenamento de origem é de onde você deseja copiar arquivos.
Selecione Utilizar este modelo.
Você vê o pipeline disponível no painel, conforme mostrado no exemplo a seguir:
Selecione Depurar, escreva o valor para os parâmetros e selecione Concluir. Na imagem a seguir, definimos os parâmetros da seguinte forma.
- FolderPath_Source = sourcefolder
- Directory_Source = subpasta
- FolderPath_Destination = pasta de destino
- Directory_Destination = subpasta
- LastModified_From = 2019-02-01T00:00:00Z
- LastModified_To = 2019-03-01T00:00:00Z
O exemplo está indicando que os arquivos, que foram modificados pela última vez dentro do período de tempo (2019-02-01T00:00:00Z a 2019-03-01T00:00:00Z) serão copiados do caminho de origem sourcefolder/subfolder para o caminho de destino destinationfolder/subfolder. Você pode substituir esses horários ou pastas por seus próprios parâmetros.
Reveja o resultado. Você vê que apenas os arquivos modificados pela última vez dentro do período de tempo configurado são copiados para o armazenamento de destino.
Agora você pode adicionar um gatilho de janelas de tombamento para automatizar esse pipeline, de modo que o pipeline sempre possa copiar arquivos novos e alterados somente por LastModifiedDate periodicamente. Selecione Adicionar gatilho e selecione Novo/Editar.
Na janela Adicionar gatilhos, selecione + Novo.
Selecione Janela de Queda para o tipo de gatilho, defina A cada 15 minutos(s) como a recorrência (você pode alterar para qualquer tempo de intervalo). Selecione Sim para a caixa Ativado e, em seguida, selecione OK.
Defina o valor para os parâmetros de execução do gatilho da seguinte forma e selecione Concluir.
- = FolderPath_Source sourcefolder. Você pode substituir por sua pasta no armazenamento de dados de origem.
- = Directory_Source subpasta. Você pode substituir por sua subpasta no armazenamento de dados de origem.
- = FolderPath_Destination pasta de destino. Você pode substituir por sua pasta no armazenamento de dados de destino.
- = Directory_Destination subpasta. Você pode substituir por sua 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 acionado da última vez.
- LastModified_To = @trigger().outputs.windowEndTime. É uma variável de sistema do gatilho que determina o tempo em que o pipeline é acionado desta vez.
Selecione Publicar Tudo.
Crie novos arquivos na pasta de origem do armazenamento da fonte de dados. Agora você está esperando que o pipeline seja acionado automaticamente e apenas os novos arquivos sejam copiados para o repositório de destino.
Selecione a guia Monitor no painel de navegação esquerdo e aguarde cerca de 15 minutos se a recorrência do gatilho foi definida como a cada 15 minutos.
Reveja o resultado. Você vê que seu pipeline é acionado automaticamente a cada 15 minutos, e somente os arquivos novos ou alterados do armazenamento de origem são copiados para o repositório de destino em cada execução de pipeline.