Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
APLICA-SE A:
Azure Data Factory
Azure Synapse Analytics
Gorjeta
Data Factory em Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA incorporada e novas funcionalidades. Se és novo na integração de dados, começa pelo Fabric Data Factory. As cargas de trabalho existentes do ADF podem atualizar para o Fabric para aceder a novas capacidades em ciência de dados, análise em tempo real e relatórios.
Pode registar os nomes dos ficheiros copiados numa atividade de cópia. Isso pode ajudar a garantir que os dados não apenas copiem com êxito da origem para o destino, mas também validem a consistência entre origem e destino.
Quando ativa a definição de tolerância a falhas numa atividade de cópia para ignorar dados defeituosos, os ficheiros e linhas ignorados também podem ser registados. Você pode obter mais detalhes sobre a tolerância a falhas na atividade de cópia.
Dada a oportunidade de obter todos os nomes de ficheiros copiados pelo Azure Data Factory (ADF) atividade Copy ativando o session log, será útil para si nos seguintes cenários:
- Depois de usar as atividades de cópia do ADF para copiar os arquivos de um armazenamento para outro, você encontrará alguns arquivos inesperados no armazenamento de destino. Podes analisar os registos de sessão do atividade Copy para ver qual atividade copiou realmente os ficheiros e quando. Com essa abordagem, você pode encontrar facilmente a causa raiz e corrigir suas configurações no ADF.
- Depois de usar as atividades de cópia do ADF para copiar os arquivos de um armazenamento para outro, você descobre que os arquivos copiados para o destino não são os esperados do armazenamento de origem. Pode analisar os registos de sessão do atividade Copy para obter o carimbo temporal dos trabalhos de cópia, bem como os metadados dos ficheiros quando as atividades ADF Copy os leem do armazenamento de origem. Com essa abordagem, você pode confirmar se os arquivos foram atualizados por outros aplicativos no armazenamento de origem depois de serem copiados pelo ADF.
Configuração com o Azure Data Factory Studio
Para configurar o registo do atividade Copy, adicione primeiro uma atividade Copy ao seu pipeline e, de seguida, use o separador Definições para configurar o registo e várias opções de registo.
Para monitorar posteriormente o log, você pode verificar a saída de uma execução de pipeline na guia Monitoramento do ADF Studio em execuções de pipeline. Lá, selecione a execução do pipeline que deseja monitorar e, em seguida, passe o mouse sobre a área ao lado do Nome da atividade, onde você encontrará ícones para links mostrando a entrada, saída (assim que estiver concluída) e outros detalhes do pipeline.
Selecione o ícone
de saída para ver os detalhes do registro em log do trabalho e anote o local de registro na conta de armazenamento selecionada, onde você pode ver detalhes de todas as atividades registradas.
Veja abaixo os detalhes do formato de saída de log.
Configuração com JSON
O exemplo a seguir fornece uma definição JSON para habilitar o log de sessão em Copy Activity:
{
"name": "CopyActivityLog",
"type": "Copy",
"typeProperties": {
"source": {
"type": "BinarySource",
"storeSettings": {
"type": "AzureDataLakeStoreReadSettings",
"recursive": true
},
"formatSettings": {
"type": "BinaryReadSettings"
}
},
"sink": {
"type": "BinarySink",
"storeSettings": {
"type": "AzureBlobFSWriteSettings"
}
},
"skipErrorFile": {
"fileForbidden": true,
"dataInconsistency": true
},
"validateDataConsistency": true,
"logSettings": {
"enableCopyActivityLog": true,
"copyActivityLogSettings": {
"logLevel": "Warning",
"enableReliableLogging": false
},
"logLocationSettings": {
"linkedServiceName": {
"referenceName": "ADLSGen2",
"type": "LinkedServiceReference"
},
"path": "sessionlog/"
}
}
}
}
| Propriedade | Descrição | Valores permitidos | Necessário |
|---|---|---|---|
| AtivarRegistroDeAtividadesDeCópia | Quando definido como true, você terá a oportunidade de registrar arquivos copiados, arquivos ignorados ou linhas ignoradas. | Verdadeiro Falso (predefinição) |
Não |
| logLevel | "Info" registrará todos os ficheiros copiados, ficheiros ignorados e linhas ignoradas. "Aviso" registrará somente arquivos ignorados e linhas ignoradas. | Informações Aviso (padrão) |
Não |
| ativarRegistoFiável | Se for verdade, uma atividade de cópia em modo fiável descarrega os registos imediatamente logo que cada ficheiro é transferido para o destino. Ao copiar muitos ficheiros com o modo de registo fiável ativado na atividade Copy, deve esperar que o throughput seja afetado, uma vez que são necessárias operações de escrita dupla para cada ficheiro copiado. Uma solicitação vai para a loja de destino e outra para a loja de armazenamento de logs. Uma atividade Copy em modo best effort irá esvaziar os logs com lotes de registos num período de tempo, o que fará com que o throughput das cópias seja muito menos afetado. A completude e a pontualidade do registo não são garantidas neste modo, pois há algumas possibilidades de que o último lote de eventos do registo não tenha sido guardado no ficheiro de registo quando uma atividade Copy falhou. Nesse cenário, você verá que alguns arquivos copiados para o destino não são registrados. | Verdadeiro Falso (predefinição) |
Não |
| logLocationSettings | Um grupo de propriedades que pode ser usado para especificar o local para armazenar os logs de sessão. | Não | |
| nome do serviço ligado | O serviço associado Armazenamento de Blobs do Azure ou Azure Data Lake Storage Gen2 para o armazenamento dos ficheiros de registo da sessão. | Os nomes de um AzureBlobStorage ou AzureBlobFS tipo de serviço associado, referente à instância que utiliza para armazenar os arquivos de log. |
Não |
| caminho | O caminho dos arquivos de log. | Especifique o caminho que você deseja armazenar os arquivos de log. Se você não fornecer um caminho, o serviço criará um contêiner para você. | Não |
Monitorização
Saída de uma atividade de cópia
Depois de a atividade de cópia ser concluída, pode ver o caminho dos ficheiros de log a partir do resultado de cada execução da atividade de cópia. Você pode encontrar os arquivos de log no caminho: https://[your-blob-account].blob.core.windows.net/[logFilePath]/copyactivity-logs/[copy-activity-name]/[copy-activity-run-id]/[auto-generated-GUID].txt. Os arquivos de log gerados têm a extensão .txt e seus dados estão em formato CSV.
"output": {
"dataRead": 695,
"dataWritten": 186,
"filesRead": 3,
"filesWritten": 1,
"filesSkipped": 2,
"throughput": 297,
"logFilePath": "myfolder/a84bf8d4-233f-4216-8cb5-45962831cd1b/",
"dataConsistencyVerification":
{
"VerificationResult": "Verified",
"InconsistentData": "Skipped"
}
}
Nota
Quando a enableCopyActivityLog propriedade é definida como Enabled, os nomes dos arquivos de log são gerados pelo sistema.
O esquema do arquivo de log
A tabela a seguir mostra o esquema de um arquivo de log.
| Coluna | Descrição |
|---|---|
| Carimbo de Data/Hora | A marca temporal quando o ADF lê, escreve ou ignora o objeto. |
| nível | O nível de log deste item. Pode ser 'Aviso' ou 'Info'. |
| NomeDaOperação | Comportamento operacional da ADF atividade Copy em cada objeto. Pode ser 'FileRead', FileWrite', 'FileSkip' ou 'TabularRowSkip'. |
| Item de Operação | Os nomes de ficheiro ou as linhas ignoradas. |
| Mensagem | Mais informações para mostrar se o arquivo foi lido do repositório de origem ou gravado no repositório de destino. Também pode ser por que o arquivo ou linhas foram ignorados. |
Aqui está um exemplo de um arquivo de log:
Timestamp, Level, OperationName, OperationItem, Message
2020-10-19 08:39:13.6688152,Info,FileRead,"sample1.csv","Start to read file: {""Path"":""sample1.csv"",""ItemType"":""File"",""Size"":104857620,""LastModified"":""2020-10-19T08:22:31Z"",""ETag"":""\""0x8D874081F80C01A\"""",""ContentMD5"":""dGKVP8BVIy6AoTtKnt+aYQ=="",""ObjectName"":null}"
2020-10-19 08:39:56.3190846, Warning, FileSkip, "sample1.csv", "File is skipped after read 548000000 bytes: ErrorCode=DataConsistencySourceDataChanged,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Source file 'sample1.csv' is changed by other clients during the copy activity run.,Source=,'."
2020-10-19 08:40:13.6688152,Info,FileRead,"sample2.csv","Start to read file: {""Path"":""sample2.csv"",""ItemType"":""File"",""Size"":104857620,""LastModified"":""2020-10-19T08:22:31Z"",""ETag"":""\""0x8D874081F80C01A\"""",""ContentMD5"":""dGKVP8BVIy6AoTtKnt+aYQ=="",""ObjectName"":null}"
2020-10-19 08:40:13.9003981,Info,FileWrite,"sample2.csv","Start to write file from source file: sample2.csv."
2020-10-19 08:45:17.6508407,Info,FileRead,"sample2.csv","Complete reading file successfully. "
2020-10-19 08:45:28.7390083,Info,FileWrite,"sample2.csv","Complete writing file from source file: sample2.csv. File is successfully copied."
No arquivo de log acima, você pode ver sample1.csv foi ignorado porque não foi verificado se era consistente entre o armazenamento de origem e de destino. Podes obter mais detalhes sobre porque sample1.csv se torna inconsistente porque estava a ser alterado por outras aplicações quando o ADF atividade Copy copiava ao mesmo tempo. Você também pode ver que o sample2.csv foi copiado com sucesso da loja de origem para a de destino.
Você pode usar vários mecanismos de análise para analisar ainda mais os arquivos de log. Há alguns exemplos abaixo para usar a consulta SQL para analisar o arquivo de log importando o arquivo de log csv para o banco de dados SQL, onde o nome da tabela pode ser SessionLogDemo.
- Dê-me a lista de arquivos copiados.
select OperationItem from SessionLogDemo where Message like '%File is successfully copied%'
- Dê-me a lista de arquivos copiados dentro de um intervalo de tempo específico.
select OperationItem from SessionLogDemo where TIMESTAMP >= '<start time>' and TIMESTAMP <= '<end time>' and Message like '%File is successfully copied%'
- Dê-me um ficheiro específico com a data de cópia e metadados.
select * from SessionLogDemo where OperationItem='<file name>'
- Dê-me uma lista de arquivos com seus metadados copiados dentro de um intervalo de tempo.
select * from SessionLogDemo where OperationName='FileRead' and Message like 'Start to read%' and OperationItem in (select OperationItem from SessionLogDemo where TIMESTAMP >= '<start time>' and TIMESTAMP <= '<end time>' and Message like '%File is successfully copied%')
- Dê-me a lista de arquivos ignorados.
select OperationItem from SessionLogDemo where OperationName='FileSkip'
- Dê-me a razão pela qual um determinado arquivo foi ignorado.
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip'
- Dê-me a lista de ficheiros que foram ignorados pelo mesmo motivo: "ficheiro blob não existe".
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip' and Message like '%UserErrorSourceBlobNotExist%'
- Dê-me o nome de arquivo que requer o maior tempo para copiar.
select top 1 OperationItem, CopyDuration=DATEDIFF(SECOND, min(TIMESTAMP), max(TIMESTAMP)) from SessionLogDemo group by OperationItem order by CopyDuration desc
Conteúdos relacionados
Veja os outros artigos de "Copy Activity":