Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
APPLICABILE A:
Azure Data Factory
Azure Synapse Analytics
Suggerimento
Data Factory in Microsoft Fabric è la nuova generazione di Azure Data Factory, con un'architettura più semplice, un'intelligenza artificiale predefinita e nuove funzionalità. Se non si ha familiarità con l'integrazione dei dati, iniziare con Fabric Data Factory. I carichi di lavoro di Azure Data Factory esistenti possono eseguire l'aggiornamento a Fabric per accedere a nuove funzionalità tra data science, analisi in tempo reale e creazione di report.
È possibile registrare i nomi di file copiati in un attività Copy. Ciò consente di garantire che i dati non solo vengano copiati correttamente dall'origine alla destinazione, ma anche convalidare la coerenza tra origine e destinazione.
Quando si abilita l'impostazione della tolleranza di errore in un attività Copy per ignorare i dati difettosi, è anche possibile registrare i file ignorati e le righe ignorate. È possibile ottenere altri dettagli dalla tolleranza di errore nell'attività di copia.
Dato che è possibile ottenere tutti i nomi di file copiati da Azure Data Factory (ADF) attività Copy tramite l'abilitazione del log di sessione, sarà utile per l'utente negli scenari seguenti:
- Dopo aver usato le attività di copia di Azure Data Factory per copiare i file da una risorsa di archiviazione a un'altra, si trovano alcuni file imprevisti nell'archivio di destinazione. È possibile analizzare i log di sessione attività Copy per vedere quale attività ha effettivamente copiato i file e quando. Con questo approccio è possibile trovare facilmente la causa radice e correggere le configurazioni in Azure Data Factory.
- Dopo aver usato le attività di copia di Azure Data Factory per copiare i file da un archivio a un altro, i file copiati nella destinazione non sono quelli previsti dall'archivio di origine. È possibile analizzare i log di sessione attività Copy per ottenere il timestamp dei processi di copia e i metadati dei file quando le attività di copia di Azure Data Factory leggono dall'archivio di origine. Con questo approccio, è possibile verificare se i file sono stati aggiornati da altre applicazioni nell'archivio di origine dopo essere stati copiati da ADF.
Configurazione con Azure Data Factory Studio
Per configurare la registrazione dell'attività di copia, aggiungi prima un'attività di copia alla pipeline e poi usa la scheda Impostazioni per configurare la registrazione e varie opzioni di registrazione.
Per monitorare successivamente il log, controllare l'output di un'esecuzione della pipeline nella scheda Monitoraggio di Azure Data Factory Studio nelle esecuzioni della pipeline. Selezionare l'esecuzione della pipeline da monitorare e quindi passare il puntatore sull'area accanto al nome dell'attività, dove sono disponibili icone per i collegamenti che mostrano l'input della pipeline, l'output (una volta completato) e altri dettagli.
Selezionare l'icona di output
per visualizzare i dettagli di registrazione per il processo e prendere nota della posizione di registrazione nell'account di archiviazione selezionato, in cui è possibile visualizzare i dettagli di tutte le attività registrate.
Per informazioni dettagliate sul formato di output del log, vedere di seguito.
Configurazione con JSON
L'esempio seguente fornisce una definizione JSON per abilitare il log di sessione nell'attività di copia:
{
"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/"
}
}
}
}
| Proprietà | Descrizione | Valori consentiti | Richiesto |
|---|---|---|---|
| abilitaRegistroAttivitàDiCopia | Se impostato su true, sarà possibile registrare file copiati, file ignorati o righe ignorate. | Vero False (impostazione predefinita) |
No |
| logLevel | "Info" registra tutti i file copiati, i file saltati e le righe saltate. "Avviso" registra solo i file e le righe ignorati. | Informazioni Avviso (impostazione predefinita) |
No |
| enableReliableLogging | Se è vero, un'operazione di copia in modalità sicura scarica i registri immediatamente dopo che ogni file viene copiato nella destinazione specificata. Quando si copiano molti file con la modalità di registrazione affidabile abilitata nella attività Copy, è necessario prevedere che la velocità effettiva sia interessata, poiché sono necessarie operazioni di scrittura doppie per ogni file copiato. Una richiesta passa all'archivio di destinazione e un'altra all'archivio di archiviazione log. Un'attività Copy in modalità di migliore esecuzione scarica i log con batch di record entro un periodo di tempo e la velocità effettiva della copia sarà molto meno influenzata. La completezza e la tempestività della registrazione non sono garantite in questa modalità, poiché esistono alcune possibilità che l'ultimo batch di eventi di log non sia stato scaricato nel file di log quando un attività Copy non è riuscito. In questo scenario, non viene registrata la copia di alcuni file nella destinazione. | Vero False (impostazione predefinita) |
No |
| impostazioni di registrazione della posizione | Gruppo di proprietà che possono essere usate per specificare il percorso in cui archiviare i log di sessione. | No | |
| nomeServizioCollegato | Il servizio collegato di Archiviazione BLOB di Azure o Azure Data Lake Storage Gen2 per archiviare i file di log della sessione. | Nomi di un servizio collegato di tipo AzureBlobStorage o AzureBlobFS che fa riferimento all'istanza da usare per archiviare i file di log. |
No |
| percorso | Percorso dei file di log. | Specificare il percorso desiderato per archiviare i file di log. Se non si specifica un percorso, il servizio crea automaticamente un contenitore. | No |
Monitoraggio
Output di un'operazione di copia
Dopo l'esecuzione completa dell'attività di copia, è possibile visualizzare il percorso dei file di log dall'output di ogni esecuzione dell'attività di copia. È possibile trovare i file di log dal percorso : https://[your-blob-account].blob.core.windows.net/[logFilePath]/copyactivity-logs/[copy-activity-name]/[copy-activity-run-id]/[auto-generated-GUID].txt. I file di log generati hanno l'estensione .txt e i relativi dati sono in 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 la enableCopyActivityLog proprietà è impostata su Enabled, i nomi dei file di log vengono generati dal sistema.
Schema del file di log
Nella tabella seguente viene illustrato lo schema di un file di log.
| Colonna | Descrizione |
|---|---|
| Marca temporale: | Il timestamp quando Azure Data Factory legge, scrive o ignora l'oggetto. |
| Level | Livello log dell'elemento. Può essere "Avviso" o "Info". |
| OperationName | Comportamento operativo dell'attività Copy di Azure Data Factory in ogni oggetto. Può essere 'FileRead',' FileWrite', 'FileSkip' o 'TabularRowSkip'. |
| OperationItem | Nomi di righe o di file ignorati. |
| Messaggio | Altre informazioni da visualizzare se il file è stato letto dall'archivio di origine o scritto nell'archivio di destinazione. Può anche essere il motivo per cui il file o le righe sono state saltate. |
Ecco un esempio di file di 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."
Dal file di log riportato sopra, è possibile vedere che sample1.csv è stato ignorato perché non è stato possibile verificarne la coerenza tra l'archivio di origine e quello di destinazione. È possibile ottenere altri dettagli sul motivo per cui sample1.csv diventa incoerente perché è stato modificato da altre applicazioni quando ADF attività Copy sta copiando contemporaneamente. È anche possibile vedere che sample2.csv è stato copiato correttamente dall'archivio di origine a quello di destinazione.
È possibile usare più motori di analisi per analizzare ulteriormente i file di log. Di seguito sono riportati alcuni esempi per usare query SQL per analizzare il file di log importando il file di log csv nel database SQL in cui il nome della tabella può essere SessionLogDemo.
- Dammi l'elenco di file copiato.
select OperationItem from SessionLogDemo where Message like '%File is successfully copied%'
- Dammi l'elenco di file copiato all'interno di un intervallo di tempo specifico.
select OperationItem from SessionLogDemo where TIMESTAMP >= '<start time>' and TIMESTAMP <= '<end time>' and Message like '%File is successfully copied%'
- Dammi un particolare file con il tempo copiato e i metadati.
select * from SessionLogDemo where OperationItem='<file name>'
- Dammi un elenco di file con i relativi metadati copiati entro un intervallo di 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%')
- Dammi l'elenco dei file ignorati.
select OperationItem from SessionLogDemo where OperationName='FileSkip'
- Dammi il motivo per cui un file specifico è stato ignorato.
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip'
- Dammi l'elenco dei file ignorati a causa dello stesso motivo: "il file BLOB non esiste".
select TIMESTAMP, OperationItem, Message from SessionLogDemo where OperationName='FileSkip' and Message like '%UserErrorSourceBlobNotExist%'
- Dammi il nome del file che richiede il tempo più lungo per essere copiato.
select top 1 OperationItem, CopyDuration=DATEDIFF(SECOND, min(TIMESTAMP), max(TIMESTAMP)) from SessionLogDemo group by OperationItem order by CopyDuration desc
Contenuto correlato
Vedere gli altri articoli relativi all'attività di copia:
- Panoramica dell'attività di copia
- Tolleranza agli errori dell'attività di copia
- Consistenza dei dati dell'attività di copia