Copiare e trasformare i dati in Azure Data Lake Storage Gen2 usando Azure Data Factory o Azure Synapse Analytics
SI APPLICA A: Azure Data Factory Azure Synapse Analytics
Suggerimento
Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!
Azure Data Lake Storage Gen2 (ADLS Gen2) è un set di funzionalità dedicate all'analisi dei Big Data e integrate in Archiviazione BLOB di Azure. Consente di interagire con i dati approfittando dei paradigmi sia del file system che dell'archiviazione di oggetti.
Questo articolo descrive come usare l'attività Copy per copiare dati da e in Azure Data Lake Storage Gen2 e come usare Flusso di dati per trasformare i dati in Azure Data Lake Storage Gen2. Per altre informazioni, leggere l'articolo introduttivo per Azure Data Factory o Azure Synapse Analytics.
Suggerimento
Per informazioni sullo scenario di migrazione di data lake o data warehouse, vedere Eseguire la migrazione dei dati da data lake o data warehouse in Azure.
Funzionalità supportate
Questo connettore Azure Data Lake Storage Gen2 è supportato per le funzionalità seguenti:
Funzionalità supportate | IR | Endpoint privato gestito |
---|---|---|
Attività di copia (origine/sink) | (1) (2) | ✓ |
Flusso di dati di mapping (origine/sink) | (1) | ✓ |
Attività Lookup | (1) (2) | ✓ |
Attività GetMetadata | (1) (2) | ✓ |
Attività Delete | (1) (2) | ✓ |
① Runtime di integrazione di Azure ② Runtime di integrazione self-hosted
Per l'attività Copy, con il connettore è possibile eseguire queste operazioni:
- Copiare dati da/in Azure Data Lake Storage Gen2 tramite chiave dell'account, entità servizio o identità gestite per l'autenticazione delle risorse di Azure.
- Copiare file così come sono o analizzare o generare file con i formati di file e i codec di compressione supportati.
- Mantenere i metadati del file durante la copia.
- Mantenere gli elenchi di controllo di accesso durante la copia da Azure Data Lake Storage Gen1/Gen2.
Operazioni preliminari
Suggerimento
Per una procedura dettagliata su come usare il connettore Data Lake Storage Gen2, vedere Caricare dati in Azure Data Lake Storage Gen2.
Per eseguire l'attività di copia con una pipeline, è possibile usare uno degli strumenti o SDK seguenti:
- Strumento Copia dati
- Il portale di Azure
- .NET SDK
- SDK di Python
- Azure PowerShell
- API REST
- Modello di Azure Resource Manager
Creare un servizio collegato Azure Data Lake Storage Gen2 usando l'interfaccia utente
Usare la procedura seguente per creare un servizio collegato Azure Data Lake Storage Gen2 nell'interfaccia utente del portale di Azure.
Passare alla scheda Gestisci nell'area di lavoro di Azure Data Factory o Synapse e selezionare Servizi collegati, quindi fare clic su Nuovo:
Cercare Azure Data Lake Storage Gen2 e selezionare il connettore Azure Data Lake Storage Gen2.
Configurare i dettagli del servizio, testare la connessione e creare il nuovo servizio collegato.
Dettagli di configurazione del connettore
Le sezioni seguenti forniscono informazioni sulle proprietà usate per definire entità della pipeline di Data Factory e Synapse specifiche per Data Lake Storage Gen2.
Proprietà del servizio collegato
Il connettore Azure Data Lake Storage Gen2 supporta i tipi di autenticazione seguenti. Per informazioni dettagliate, vedere le sezioni corrispondenti:
- Autenticazione basata sulla chiave dell'account
- Autenticazione con firma di accesso condiviso
- Autenticazione di un'entità servizio
- Autenticazione dell'identità gestita assegnata dal sistema
- Autenticazione dell'identità gestita assegnata dall'utente
Nota
- Se si vuole usare il runtime di integrazione di Azure pubblico per connettersi a Data Lake Storage Gen2 usando l'opzioneConsenti ai servizi Microsoft attendibili di accedere a questo account di archiviazione abilitata nel firewall di Archiviazione di Azure, è necessario usare l'autenticazione dell'identità gestita. Per altre informazioni sulle impostazioni dei firewall di Archiviazione di Azure, vedere Configurare i firewall e le reti virtuali di Archiviazione di Azure.
- Quando si usa PolyBase o l'istruzione COPY per caricare i dati in Azure Synapse Analytics, se l'istanza di Data Lake Storage Gen2 di origine o di staging è configurata con un endpoint di Rete virtuale di Azure, è necessario usare l'autenticazione dell'identità gestita come richiesto da Azure Synapse. Vedere la sezione sull'autenticazione dell'identità gestita con altri prerequisiti di configurazione.
Autenticazione basata sulla chiave dell'account
Per usare l'autenticazione basata sulla chiave dell'account di archiviazione, sono supportate le proprietà seguenti:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type deve essere impostata su AzureBlobFS. | Sì |
URL. | Endpoint per Data Lake Storage Gen2 con il modello di https://<accountname>.dfs.core.windows.net . |
Sì |
accountKey | Chiave dell'account per Data Lake Storage Gen2. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro oppure fare riferimento a un segreto archiviato in Azure Key Vault. | Sì |
connectVia | Runtime di integrazione da usare per la connessione all'archivio dati. È possibile usare Azure Integration Runtime o un runtime di integrazione self-hosted, se l'archivio dati si trova in una rete privata. Se questa proprietà non è specificata, come valore predefinito viene usato Azure Integration Runtime. | No |
Nota
L'endpoint secondario del file system di ADSL non è supportato quando si usa l'autenticazione della chiave dell'account. È possibile usare altri tipi di autenticazione.
Esempio:
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
"accountkey": {
"type": "SecureString",
"value": "<accountkey>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autenticazione con firma di accesso condiviso
Una firma di accesso condiviso fornisce accesso delegato controllato alle risorse dell'account di archiviazione. È possibile usarla per concedere a un client autorizzazioni limitate per gli oggetti nell'account di archiviazione per un periodo di tempo specificato.
Non è necessario condividere le chiavi di accesso degli account. La firma di accesso condiviso è un URI che racchiude nei parametri di query tutte le informazioni necessarie per l'accesso autenticato a una risorsa di archiviazione. Per accedere alle risorse di archiviazione con la firma di accesso condiviso, il client deve solo passare la firma di accesso condiviso al costruttore o al metodo appropriato.
Per altre informazioni sulle firme di accesso condiviso, vedere Uso delle firme di accesso condiviso.
Nota
- Il servizio supporta attualmente sia le firme di accesso condiviso del servizio che le firme di accesso condiviso dell'account. Per altre informazioni sulle firme di accesso condiviso, vedere Concedere accesso limitato alle risorse di Archiviazione di Azure tramite firme di accesso condiviso.
- Nelle configurazioni successive dei set di dati il percorso della cartella corrisponde al percorso assoluto a partire dal livello del contenitore. È necessario configurare un set di dati allineato con il percorso nell'URI SAS.
Per l'uso dell'autenticazione con firma di accesso condiviso sono supportate le proprietà seguenti:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type deve essere impostata su AzureBlobFS (consigliato) |
Sì |
sasUri | Specificare l'URI della firma di accesso condiviso per le risorse di archiviazione come BLOB o contenitore. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro. È anche possibile inserire il token di firma di accesso condiviso in Azure Key Vault per usare la rotazione automatica e rimuovere la parte del token. Per altre informazioni, vedere gli esempi seguenti e Archiviare le credenziali in Azure Key Vault. |
Sì |
connectVia | Runtime di integrazione da usare per la connessione all'archivio dati. È possibile usare Azure Integration Runtime o un runtime di integrazione self-hosted, se l'archivio dati si trova in una rete privata. Se questa proprietà non è specificata, il servizio usa il runtime di integrazione di Azure predefinito. | No |
Nota
Se si usa il servizio collegato di tipo AzureStorage
, è ancora supportato così come è. È tuttavia consigliabile usare il nuovo tipo di servizio collegato AzureDataLakeStorageGen2
in futuro.
Esempio:
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the Azure Storage resource e.g. https://<accountname>.blob.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Esempio: archiviare la chiave dell'account in Azure Key Vault
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.blob.core.windows.net/>"
},
"sasToken": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName with value of SAS token e.g. ?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Quando si crea un URI di firma di accesso condiviso, tenere presente quanto segue:
- Impostare le autorizzazioni appropriate di lettura o scrittura per gli oggetti in base al modo in cui viene usato il servizio collegato (lettura, scrittura, lettura/scrittura).
- Impostare Ora di scadenza in modo appropriato. Assicurarsi che l'accesso agli oggetti di archiviazione non scada nel periodo attivo della pipeline.
- L'URI deve essere creato nel contenitore o nel BLOB corretto, in base alle esigenze. Un URI di firma di accesso condiviso per un BLOB consente alla pipeline di data factory o di Synapse di accedere a tale BLOB specifico. Un URI di firma di accesso condiviso per un contenitore di risorse di archiviazione BLOB consente alla pipeline di data factory o Synapse di passare da un BLOB all'altro nel contenitore. Per consentire l'accesso a più o meno oggetti in un secondo momento o aggiornare l'URI di firma di accesso condiviso, ricordarsi di aggiornare il servizio collegato con il nuovo URI.
Autenticazione dell'entità servizio
Per usare l'autenticazione basata sull'entità servizio, eseguire queste operazioni.
Registrare un'applicazione con Microsoft Identity Platform. Per informazioni sulla procedura, vedere Avvio rapido: Registrare un'applicazione in Microsoft Identity Platform. Prendere nota di questi valori che si usano per definire il servizio collegato:
- ID applicazione
- Chiave applicazione
- ID tenant
Concedere all'entità servizio l'autorizzazione appropriata. Per gli esempi di funzionamento dell'autorizzazione in Data Lake Storage Gen2, vedere Elenchi di controllo di accesso per file e directory.
- Come origine: in Storage Explorer, concedere almeno l'autorizzazione Execute per TUTTE le cartelle upstream e il file system, insieme all'autorizzazione Read per i file da copiare. In alternativa, in Controllo di accesso (IAM) concedere almeno il ruolo Lettore dei dati dei BLOB di archiviazione.
- Come sink: in Storage Explorer, concedere almeno l'autorizzazione Execute per TUTTE le cartelle upstream e il file system, insieme all'autorizzazione Write per la cartella sink. In alternativa, in Controllo di accesso (IAM) concedere almeno il ruolo Collaboratore ai dati dei BLOB di archiviazione.
Nota
Se si usa l'interfaccia utente per la creazione e l'entità servizio non è impostata con il ruolo "Lettore/Collaboratore dei dati dei BLOB di archiviazione" in IAM, quando si esegue la connessione di test o si esplorano le cartelle, scegliere "Testa connessione al percorso file" o "Sfoglia da percorso specificato" e specificare un percorso con le autorizzazioni Lettura + Esecuzione per continuare.
Queste sono le proprietà supportate dal servizio collegato:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type deve essere impostata su AzureBlobFS. | Sì |
URL. | Endpoint per Data Lake Storage Gen2 con il modello di https://<accountname>.dfs.core.windows.net . |
Sì |
servicePrincipalId | Specificare l'ID client dell'applicazione. | Sì |
servicePrincipalCredentialType | Tipo di credenziale da usare per l'autenticazione dell'entità servizio. I valori consentiti sono ServicePrincipalKey e ServicePrincipalCert. | Sì |
servicePrincipalCredential | Credenziali dell'entità servizio. Quando si usa ServicePrincipalKey come tipo di credenziale, specificare la chiave dell'applicazione. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro, oppure fare riferimento a un segreto archiviato in Azure Key Vault. Quando si usa ServicePrincipalCert come credenziale, fare riferimento a un certificato in Azure Key Vault e assicurarsi che il tipo di contenuto del certificato sia PKCS #12. |
Sì |
servicePrincipalKey | Specificare la chiave dell'applicazione. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro, oppure fare riferimento a un segreto archiviato in Azure Key Vault. Questa proprietà è ancora supportata così come è per servicePrincipalId + servicePrincipalKey . Man mano che Azure Data Factory aggiunge la nuova autenticazione del certificato dell'entità servizio, il nuovo modello per l'autenticazione dell'entità servizio è servicePrincipalId + servicePrincipalCredentialType + servicePrincipalCredential . |
No |
tenant | Specificare le informazioni sul tenant (nome di dominio o ID tenant) in cui si trova l'applicazione. Recuperarlo passando il cursore del mouse sull'angolo superiore destro del portale di Azure. | Sì |
azureCloudType | Per l'autenticazione dell'entità servizio, specificare il tipo di ambiente cloud di Azure in cui è registrata l'applicazione Microsoft Entra. I valori consentiti sono AzurePublic, AzureChina, AzureUsGovernment e AzureGermany. Per impostazione predefinita, viene usato l'ambiente cloud della data factory o della pipeline Synapse. |
No |
connectVia | Runtime di integrazione da usare per la connessione all'archivio dati. È possibile usare Azure Integration Runtime o un runtime di integrazione self-hosted, se l'archivio dati si trova in una rete privata. Se non specificato, viene usato il runtime di integrazione di Azure predefinito. | No |
Esempio: usare l'autenticazione con chiave dell'entità servizio
È anche possibile archiviare la chiave dell'entità servizio in Azure Key Vault.
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalKey",
"servicePrincipalCredential": {
"type": "SecureString",
"value": "<service principal key>"
},
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Esempio: usare l'autenticazione con certificato dell'entità servizio
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalCert",
"servicePrincipalCredential": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<AKV reference>",
"type": "LinkedServiceReference"
},
"secretName": "<certificate name in AKV>"
},
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autenticazione dell'identità gestita assegnata dal sistema
Una data factory o un'area di lavoro di Synapse può essere associata a un'identità gestita assegnata dal sistema. È possibile usare direttamente questa identità gestita assegnata dal sistema per l'autenticazione con Data Lake Storage Gen2, analogamente a come si usa l'entità servizio. Consente alla factory o all'area di lavoro designata di accedere e copiare i dati da e verso Data Lake Storage Gen2.
Per usare l'autenticazione dell'identità gestita assegnata dal sistema, seguire questa procedura.
Recuperare le informazioni relative all'identità gestita assegnate dal sistema copiando il valore dell'ID oggetto dell'identità gestita generato insieme alla data factory o all'area di lavoro di Synapse.
Concedere l'autorizzazione appropriata per l'identità gestita assegnata dal sistema. Per gli esempi di funzionamento dell'autorizzazione in Data Lake Storage Gen2, vedere Elenchi di controllo di accesso per file e directory.
- Come origine: in Storage Explorer, concedere almeno l'autorizzazione Execute per TUTTE le cartelle upstream e il file system, insieme all'autorizzazione Read per i file da copiare. In alternativa, in Controllo di accesso (IAM) concedere almeno il ruolo Lettore dei dati dei BLOB di archiviazione.
- Come sink: in Storage Explorer, concedere almeno l'autorizzazione Execute per TUTTE le cartelle upstream e il file system, insieme all'autorizzazione Write per la cartella sink. In alternativa, in Controllo di accesso (IAM) concedere almeno il ruolo Collaboratore ai dati dei BLOB di archiviazione.
Queste sono le proprietà supportate dal servizio collegato:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type deve essere impostata su AzureBlobFS. | Sì |
URL. | Endpoint per Data Lake Storage Gen2 con il modello di https://<accountname>.dfs.core.windows.net . |
Sì |
connectVia | Runtime di integrazione da usare per la connessione all'archivio dati. È possibile usare Azure Integration Runtime o un runtime di integrazione self-hosted, se l'archivio dati si trova in una rete privata. Se non specificato, viene usato il runtime di integrazione di Azure predefinito. | No |
Esempio:
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autenticazione dell'identità gestita assegnata dall'utente
Una data factory può essere assegnata con una o più identità gestite assegnate dall'utente. È possibile usare questa identità gestita assegnata dall'utente per l'autenticazione dell'archiviazione BLOB, che consente di accedere e copiare dati da o in Data Lake Storage Gen2. Per altre informazioni sulle identità gestite per le risorse di Azure, vedere Identità gestite per le risorse di Azure
Per usare l'autenticazione dell'identità gestita assegnata dall’utente, seguire questa procedura:
Creare una o più identità gestite assegnate dall'utente e concedere l'accesso ad Azure Data Lake Storage Gen2. Per gli esempi di funzionamento dell'autorizzazione in Data Lake Storage Gen2, vedere Elenchi di controllo di accesso per file e directory.
- Come origine: in Storage Explorer, concedere almeno l'autorizzazione Execute per TUTTE le cartelle upstream e il file system, insieme all'autorizzazione Read per i file da copiare. In alternativa, in Controllo di accesso (IAM) concedere almeno il ruolo Lettore dei dati dei BLOB di archiviazione.
- Come sink: in Storage Explorer, concedere almeno l'autorizzazione Execute per TUTTE le cartelle upstream e il file system, insieme all'autorizzazione Write per la cartella sink. In alternativa, in Controllo di accesso (IAM) concedere almeno il ruolo Collaboratore ai dati dei BLOB di archiviazione.
Assegnare una o più identità gestite assegnate dall'utente alla data factory e creare le credenziali per ogni identità gestita assegnata dall'utente.
Queste sono le proprietà supportate dal servizio collegato:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type deve essere impostata su AzureBlobFS. | Sì |
URL. | Endpoint per Data Lake Storage Gen2 con il modello di https://<accountname>.dfs.core.windows.net . |
Sì |
credentials | Specificare l'identità gestita assegnata dall'utente come oggetto credenziale. | Sì |
connectVia | Runtime di integrazione da usare per la connessione all'archivio dati. È possibile usare Azure Integration Runtime o un runtime di integrazione self-hosted, se l'archivio dati si trova in una rete privata. Se non specificato, viene usato il runtime di integrazione di Azure predefinito. | No |
Esempio:
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
"credential": {
"referenceName": "credential1",
"type": "CredentialReference"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Nota
Se si usa l'interfaccia utente di Data Factory per la creazione e l'identità gestita non è impostata con il ruolo "Lettore/Collaboratore dei dati dei BLOB di archiviazione" in IAM, quando si esegue la connessione di test o si esplorano le cartelle, scegliere "Test connection to file path" (Testa connessione al percorso file) o "Browse from specified path" (Sfoglia da percorso specificato) e specificare un percorso con le autorizzazioni Read + Execute per continuare.
Importante
Se si usa l'istruzione PolyBase o COPY per caricare i dati da Data Lake Storage Gen2 in Azure Synapse Analytics, quando si usa l'autenticazione dell'identità gestita per Data Lake Storage Gen2, assicurarsi di seguire anche i passaggi da 1 a 3 in queste indicazioni. Questi passaggi registreranno il server in Microsoft Entra ID e assegneranno il ruolo Collaboratore ai dati dei BLOB di archiviazione al server. Data Factory gestisce il resto. Se si configura l'archiviazione BLOB con un endpoint di rete virtuale di Azure, è anche necessario attivare l'opzione Consenti servizi Microsoft attendibili per accedere a questo account di archiviazione nel menu delle impostazioni Firewall e reti virtuali dell'account di archiviazione di Azure, come richiesto da Synapse.
Proprietà del set di dati
Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione dei set di dati, vedere Set di dati.
Azure Data Factory supporta i formati di file seguenti. Per impostazioni basate sui formati, fare riferimento ai singoli articoli.
- Formato Avro
- Formato binario
- Formato di testo delimitato
- Formato Excel
- Formato Iceberg
- Formato JSON
- Formato ORC
- Formato Parquet
- Formato XML
Le proprietà seguenti sono supportate per Data Lake Storage Gen2 nelle impostazioni di location
nel set di dati basato sul formato:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type in location nel set di dati deve essere impostata su AzureBlobFSLocation. |
Sì |
fileSystem | Nome del file system di Data Lake Storage Gen2. | No |
folderPath | Percorso della cartella nel file system specificato. Se si intende usare un carattere jolly per filtrare le cartelle, ignorare questa impostazione e specificarla nelle impostazioni dell'origine dell'attività. | No |
fileName | Nome file nel percorso cartella e nel file system specificati. Se si intende usare un carattere jolly per filtrare i file, ignorare questa impostazione e specificarla nelle impostazioni dell'origine dell'attività. | No |
Esempio:
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<Data Lake Storage Gen2 linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "AzureBlobFSLocation",
"fileSystem": "filesystemname",
"folderPath": "folder/subfolder"
},
"columnDelimiter": ",",
"quoteChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
Proprietà dell'attività di copia
Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere Configurazioni dell'attività di copia e Pipeline e attività. Questa sezione presenta un elenco delle proprietà supportate dall'origine e dal sink Data Lake Storage Gen2.
Azure Data Lake Storage Gen2 come tipo di origine
Azure Data Factory supporta i formati di file seguenti. Per impostazioni basate sui formati, fare riferimento ai singoli articoli.
- Formato Avro
- Formato binario
- Formato di testo delimitato
- Formato Excel
- Formato JSON
- Formato ORC
- Formato Parquet
- Formato XML
Sono disponibili diverse opzioni per copiare i dati da ADLS Gen2:
- Copia dal percorso specificato nel set di dati.
- Filtro con caratteri jolly per il percorso della cartella o il nome del file, vedere
wildcardFolderPath
ewildcardFileName
. - Copia dei file definiti in un file di testo specificato come set di file, vedere
fileListPath
.
Le proprietà seguenti sono supportate per Data Lake Storage Gen2 nelle impostazioni di storeSettings
nell'origine della copia basata sul formato:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type in storeSettings deve essere impostata su AzureBlobFSReadSettings. |
Sì |
Individuare i file da copiare: | ||
OPZIONE 1: percorso statico |
Copia dal file system o dal percorso della cartella/del file specificato nel set di dati. Se si vogliono copiare tutti i file da una cartella o da un file system, specificare anche wildcardFileName come * . |
|
OPZIONE 2: carattere jolly - wildcardFolderPath |
Percorso della cartella con caratteri jolly nel file system specificato configurato nel set di dati per filtrare le cartelle di origine. I caratteri jolly consentiti sono: * (corrisponde a zero o più caratteri) e ? (corrisponde a zero caratteri o a un carattere singolo). Usare ^ come carattere di escape se il nome effettivo della cartella include caratteri jolly o questo carattere di escape. Vedere altri esempi in Esempi di filtro file e cartelle. |
No |
OPZIONE 2: carattere jolly - wildcardFileName |
Nome file con caratteri jolly nel file system + percorso folderPath/wildcardFolderPath specificato per filtrare i file di origine. I caratteri jolly consentiti sono: * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo). Usare ^ per il carattere escape se il nome effettivo del file include caratteri jolly o escape. Vedere altri esempi in Esempi di filtro file e cartelle. |
Sì |
OPZIONE 3: un elenco di file - fileListPath |
Indica di copiare un determinato set di file. Puntare a un file di testo che include un elenco di file da copiare, un file per riga, che rappresenta il percorso relativo del percorso configurato nel set di dati. Quando si usa questa opzione, non specificare il nome del file nel set di dati. Per altri esempi, vedere Esempi di elenco di file. |
No |
Impostazioni aggiuntive: | ||
recursive | Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata. Si noti che quando la proprietà recursive è impostata su true e il sink consiste in un archivio basato su file, una cartella o una sottocartella vuota non viene copiata o creata nel sink. I valori consentiti sono true (predefinito) e false. Questa proprietà non è applicabile quando si configura fileListPath . |
No |
deleteFilesAfterCompletion | Indica se i file binari verranno eliminati dall'archivio di origine dopo il passaggio all'archivio di destinazione. L'eliminazione dei file avviene a livello di singolo file, pertanto quando l'attività Copy non riesce, verranno visualizzati alcuni file già copiati nella destinazione ed eliminati dall'origine, mentre altri sono ancora presenti nell'archivio di origine. Questa proprietà è valida solo nello scenario di copia dei file binari. Il valore predefinito è false. |
No |
modifiedDatetimeStart | Filtro di file basato sull'attributo Ultima modifica. I file verranno selezionati se l'ora dell'ultima modifica è maggiore o uguale a modifiedDatetimeStart e minore di modifiedDatetimeEnd . L'ora viene applicata con il fuso orario UTC e il formato "2018-12-01T05:00:00Z". Le proprietà possono essere NULL, a indicare che al set di dati non viene applicato alcun filtro di attributo di file. Quando modifiedDatetimeStart ha un valore datetime ma modifiedDatetimeEnd è NULL, vengono selezionati i file il cui ultimo attributo modificato è maggiore o uguale al valore datetime. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL vengono selezionati i file il cui ultimo attributo modificato è minore del valore datetime.Questa proprietà non è applicabile quando si configura fileListPath . |
No |
modifiedDatetimeEnd | Come sopra. | No |
enablePartitionDiscovery | Per i file partizionati, specificare se analizzare le partizioni dal percorso del file e aggiungerle come colonne di origine aggiuntive. I valori consentiti sono false (predefinito) e true. |
No |
partitionRootPath | Quando l'individuazione delle partizioni è abilitata, specificare il percorso radice assoluto per leggere le cartelle partizionate come colonne di dati. Se ciò non è specificato, per impostazione predefinita, - Quando si usa il percorso del file nel set di dati o nell'elenco di file nell'origine, il percorso radice della partizione è il percorso configurato nel set di dati. - Quando si usa il filtro delle cartelle con carattere jolly, il percorso radice della partizione corrisponde al percorso secondario che precede il primo carattere jolly. Si supponga, ad esempio, di configurare il percorso nel set di dati come "root/folder/year=2020/month=08/day=27": - Se si specifica il percorso radice della partizione come "root/folder/year=2020", l'attività Copy genererà altre due colonne month e day , rispettivamente con il valore "08" e "27", oltre alle colonne all'interno dei file.- Se il percorso radice della partizione non è specificato, non verrà generata alcuna colonna aggiuntiva. |
No |
maxConcurrentConnections | Limite massimo di connessioni simultanee stabilite all'archivio dati durante l'esecuzione dell'attività. Specificare un valore solo quando si desidera limitare le connessioni simultanee. | No |
Esempio:
"activities":[
{
"name": "CopyFromADLSGen2",
"type": "Copy",
"inputs": [
{
"referenceName": "<Delimited text input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "DelimitedTextSource",
"formatSettings":{
"type": "DelimitedTextReadSettings",
"skipLineCount": 10
},
"storeSettings":{
"type": "AzureBlobFSReadSettings",
"recursive": true,
"wildcardFolderPath": "myfolder*A",
"wildcardFileName": "*.csv"
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Azure Data Lake Storage Gen2 come tipo di sink
Azure Data Factory supporta i formati di file seguenti. Per impostazioni basate sui formati, fare riferimento ai singoli articoli.
- Formato Avro
- Formato binario
- Formato di testo delimitato
- Formato Iceberg
- Formato JSON
- Formato ORC
- Formato Parquet
Le proprietà seguenti sono supportate per Data Lake Storage Gen2 nelle impostazioni di storeSettings
nel sink della copia basato sul formato:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type in storeSettings deve essere impostata su AzureBlobFSWriteSettings. |
Sì |
copyBehavior | Definisce il comportamento di copia quando l'origine è costituita da file di un archivio dati basato su file. I valori consentiti sono i seguenti: - PreserveHierarchy (predefinito): mantiene la gerarchia dei file nella cartella di destinazione. Il percorso relativo del file di origine nella cartella di origine è identico al percorso relativo del file di destinazione nella cartella di destinazione. - FlattenHierarchy: tutti i file della cartella di origine si trovano nel primo livello della cartella di destinazione. I nomi dei file di destinazione vengono generati automaticamente. - MergeFiles: unisce tutti i file della cartella di origine in un solo file. Se si specifica il nome di file, il nome del file unito sarà il nome specificato. In caso contrario, verrà usato un nome di file generato automaticamente. |
No |
blockSizeInMB | Specificare le dimensioni del blocco in MB usate per scrivere i dati in ADLS Gen2. Altre informazioni sui BLOB in blocchi. Il valore consentito è compreso tra 4 e 100 MB. Per impostazione predefinita, Azure Data Factory determina automaticamente le dimensioni del blocco in base al tipo e ai dati dell'archivio di origine. Per la copia non binaria in ADLS Gen2, le dimensioni predefinite del blocco sono pari a 100 MB, in modo da contenere al massimo circa 4,75 TB di dati. Potrebbe non essere una soluzione ottimale quando i dati non sono di grandi dimensioni, soprattutto quando si usa il runtime di integrazione self-hosted con prestazioni di rete scarse, causando il timeout dell'operazione o un problema di prestazioni. È possibile specificare in modo esplicito le dimensioni del blocco, assicurandosi che blockSizeInMB*50000 sia sufficientemente grande per archiviare i dati. In caso contrario, l'esecuzione dell'attività di copia avrà esito negativo. |
No |
maxConcurrentConnections | Limite massimo di connessioni simultanee stabilite all'archivio dati durante l'esecuzione dell'attività. Specificare un valore solo quando si desidera limitare le connessioni simultanee. | No |
metadata | Impostare metadati personalizzati per la copia in un sink. Ogni oggetto nella matrice metadata rappresenta una colonna aggiuntiva. name definisce il nome della chiave di metadati mentre value indica il valore dei dati di tale chiave. Se viene usata la funzionalità per mantenere gli attributi, i metadati specificati verranno uniti/sovrascritti con i metadati del file di origine.I valori dei dati consentiti sono: - $$LASTMODIFIED : una variabile riservata indica di archiviare data/ora dell'ultima modifica dei file di origine. Si applica all'origine basata su file solo con formato binario.- Espressione - Valore statico |
No |
Esempio:
"activities":[
{
"name": "CopyToADLSGen2",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Parquet output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "ParquetSink",
"storeSettings":{
"type": "AzureBlobFSWriteSettings",
"copyBehavior": "PreserveHierarchy",
"metadata": [
{
"name": "testKey1",
"value": "value1"
},
{
"name": "testKey2",
"value": "value2"
},
{
"name": "lastModifiedKey",
"value": "$$LASTMODIFIED"
}
]
}
}
}
}
]
Esempi di filtro file e cartelle
Questa sezione descrive il comportamento risultante del percorso cartella e del nome del file con i filtri con caratteri jolly.
folderPath | fileName | recursive | Struttura delle cartelle di origine e risultato del filtro (i file in grassetto sono stati recuperati) |
---|---|---|---|
Folder* |
(vuoto, usare il valore predefinito) | false | CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv AltraCartellaB File6.csv |
Folder* |
(vuoto, usare il valore predefinito) | true | CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv AltraCartellaB File6.csv |
Folder* |
*.csv |
false | CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv AltraCartellaB File6.csv |
Folder* |
*.csv |
true | CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv AltraCartellaB File6.csv |
Esempi di elenco di file
Questa sezione descrive il comportamento risultante dall'uso del percorso di elenco file nell'origine dell'attività di copia.
Si supponga di disporre della struttura di cartelle di origine seguente e di voler copiare i file in grassetto:
Esempio di struttura di origine | Contenuto in FileListToCopy.txt | Configurazione di Azure Data Factory |
---|---|---|
filesystem CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv Metadati UFX FileListToCopy.txt |
File1.csv Sottocartella1/File3.csv Sottocartella1/File5.csv |
Nel set di dati: - File system: filesystem - Percorso cartella: FolderA Nell'origine dell'attività Copy: - Percorso elenco file: filesystem/Metadata/FileListToCopy.txt Il percorso dell'elenco di file fa riferimento a un file di testo nello stesso archivio dati che include un elenco di file da copiare, un file per riga con il percorso relativo del percorso configurato nel set di dati. |
Alcuni esempi dei valori recursive e copyBehavior
Questa sezione descrive il comportamento derivante dall'operazione di copia per diverse combinazioni di valori ricorsivi e copyBehavior.
recursive | copyBehavior | Struttura della cartella di origine | Destinazione risultante |
---|---|---|---|
true | preserveHierarchy | Cartella1 File1 File2 Sottocartella1 File3 File4 File5 |
La Cartella1 di destinazione viene creata con la stessa struttura dell'origine: Cartella1 File1 File2 Sottocartella1 File3 File4 File5 |
true | flattenHierarchy | Cartella1 File1 File2 Sottocartella1 File3 File4 File5 |
La Cartella1 di destinazione viene creata con la struttura seguente: Cartella1 Nome generato automaticamente per File1 Nome generato automaticamente per File2 Nome generato automaticamente per File3 Nome generato automaticamente per File4 Nome generato automaticamente per File5 |
true | mergeFiles | Cartella1 File1 File2 Sottocartella1 File3 File4 File5 |
La Cartella1 di destinazione viene creata con la struttura seguente: Cartella1 Il contenuto di File1 + File2 + File3 + File4 + File 5 viene unito in un file con nome generato automaticamente. |
false | preserveHierarchy | Cartella1 File1 File2 Sottocartella1 File3 File4 File5 |
La Cartella1 di destinazione viene creata con la struttura seguente: Cartella1 File1 File2 La sottocartella1 con File3, File4 e File5 non viene considerata. |
false | flattenHierarchy | Cartella1 File1 File2 Sottocartella1 File3 File4 File5 |
La Cartella1 di destinazione viene creata con la struttura seguente: Cartella1 Nome generato automaticamente per File1 Nome generato automaticamente per File2 La sottocartella1 con File3, File4 e File5 non viene considerata. |
false | mergeFiles | Cartella1 File1 File2 Sottocartella1 File3 File4 File5 |
La Cartella1 di destinazione viene creata con la struttura seguente: Cartella1 Il contenuto di File1 + File2 viene unito in un file con un nome di file generato automaticamente. Nome generato automaticamente per File1 La sottocartella1 con File3, File4 e File5 non viene considerata. |
Mantenere i metadati durante la copia
Quando si copiano i file da Amazon S3/BLOB di Azure/Azure Data Lake Storage Gen2 ad Azure Data Lake Storage Gen2/BLOB di Azure, è possibile scegliere di mantenere i metadati del file insieme ai dati. Altre informazioni in Mantenere i metadati.
Mantenere gli elenchi di controllo di accesso da Data Lake Storage Gen1/Gen2
Quando si copiano i file da Azure Data Lake Storage Gen1/Gen2 a Gen2, è possibile scegliere di mantenere gli elenchi di controllo di accesso (ACL) POSIX insieme ai dati. Altre informazioni in Mantenere gli elenchi di controllo di accesso da Data Lake Storage Gen1/Gen2 a Gen2.
Suggerimento
Per copiare i dati da Azure Data Lake Storage Gen1 in Gen2 in generale, vedere la procedura dettagliata e le procedure consigliate in Copiare dati da Azure Data Lake Storage Gen1 a Gen2.
Proprietà del flusso di dati per mapping
Quando si trasformano i dati nei flussi di dati per mapping, è possibile leggere e scrivere file da Azure Data Lake Storage Gen2 nei formati seguenti:
Le impostazioni specifiche del formato si trovano nella documentazione per tale formato. Per altre informazioni, vedere Trasformazione origine nel flusso di dati per mapping e Trasformazione sink nel flusso di dati per mapping.
Trasformazione origine
Nella trasformazione origine è possibile leggere da un contenitore, una cartella o un singolo file in Azure Data Lake Storage Gen2. La scheda Source options (Opzioni origine) consente di gestire la modalità di lettura dei file.
Percorso con caratteri jolly: l'uso di una sequenza con caratteri jolly indica ad Azure Data Factory di scorrere ogni cartella e file corrispondente in un'unica trasformazione origine. Si tratta di un modo efficace per elaborare più file all'interno di un singolo flusso. Aggiungere più sequenze di corrispondenza con caratteri jolly con il segno + visualizzato quando si passa il mouse sulla sequenza con caratteri jolly esistente.
Nel contenitore di origine scegliere una serie di file che corrispondono a un criterio. Nel set di dati è possibile specificare solo il contenitore. Il percorso con caratteri jolly deve quindi includere anche il percorso della cartella a partire dalla cartella radice.
Esempi di caratteri jolly:
*
Rappresenta qualsiasi set di caratteri**
Rappresenta l'annidamento delle directory ricorsive?
Sostituisce un carattere[]
Trova la corrispondenza di uno o più caratteri nelle parentesi quadre/data/sales/**/*.csv
Ottiene tutti i dati CSV in /data/sales/data/sales/20??/**/
Ottiene tutti i file presenti in /data/sales del ventesimo secolo/data/sales/*/*/*.csv
Ottiene i file CSV due livelli sotto /data/sales/data/sales/2004/*/12/[XY]1?.csv
Ottiene tutti i file CSV del 2004 a dicembre a partire da X o Y preceduto da un numero a due cifre
Percorso radice della partizione: se nell'origine file sono presenti cartelle partizionate con un formato key=value
(ad esempio, anno=2019), è possibile assegnare il livello principale dell'albero delle cartelle di tale partizione a un nome di colonna nel flusso di dati.
Impostare innanzitutto un carattere jolly per includere tutti i percorsi che rappresentano le cartelle partizionate, nonché i file foglia da leggere.
Usare l'impostazione Partition Root Path (Percorso radice partizione) per definire il livello superiore della struttura di cartelle. Quando si visualizza il contenuto dei dati tramite un'anteprima, si noti che Azure Data Factory aggiunge le partizioni risolte presenti in ogni livello di cartelle.
Elenco di file: questo è un set di file. Creare un file di testo che includa un elenco di file di percorsi relativi da elaborare. Puntare a questo file di testo.
Colonna per archiviare il nome file: archiviare il nome del file di origine in una colonna nei dati. Immettere un nuovo nome di colonna per archiviare la stringa del nome file.
Dopo il completamento: scegliere di non eseguire alcuna operazione con il file di origine dopo l'esecuzione del flusso di dati, eliminare il file di origine oppure spostare il file di origine. I percorsi per lo spostamento sono relativi.
Per spostare i file di origine in un altro percorso dopo l'elaborazione, selezionare "Sposta" come operazione sul file. Impostare quindi la directory "da". Se non si usano caratteri jolly per il percorso, l'impostazione "da" sarà la stessa cartella della cartella di origine.
Se si dispone di un percorso di origine con carattere jolly, la sintassi avrà un aspetto simile al seguente:
/data/sales/20??/**/*.csv
È possibile specificare "da" come
/data/sales
E "a" come
/backup/priorSales
In questo caso, tutti i file originati in/data/sales vengono spostati in /backup/priorSales.
Nota
Le operazioni sui file vengono eseguite solo quando si avvia il flusso di dati da un'esecuzione di pipeline (esecuzione del debug o esecuzione della pipeline) che usa l'attività di esecuzione del flusso di dati in una pipeline. Le operazioni sui file non vengono eseguite in modalità di debug del flusso di dati.
Filtra per data ultima modifica: è possibile filtrare i file da elaborare specificando un intervallo di date per l'ultima modifica. Tutte le ore e le date sono in formato UTC.
Abilita Change Data Capture: se true, si otterranno solo i file nuovi o modificati dall'ultima esecuzione. Nella prima esecuzione verrà sempre eseguito il caricamento iniziale dei dati snapshot completi, seguito dall'acquisizione di file nuovi o modificati solo nelle esecuzioni successive. Per altri dettagli, vedere Change Data Capture.
Proprietà sink
Nella trasformazione sink è possibile scrivere in un contenitore oppure in una cartella in Azure Data Lake Storage Gen2. La scheda Impostazioni consente di gestire la modalità di scrittura dei file.
Cancellare la cartella: determina se la cartella di destinazione viene cancellata prima della scrittura dei dati.
Opzione nome file: determina la modalità di denominazione dei file di destinazione nella cartella di destinazione. Le opzioni di nomi di file sono indicate di seguito:
- Impostazione predefinita: consente a Spark di denominare i file in base alle impostazioni predefinite di PART.
- Modello: consente di immettere un modello che enumera i file di output per partizione. loans[n].csv, ad esempio, creerà loans1.csv, loans2.csv e così via.
- Per partizione: consente di immettere un nome di file per partizione.
- Come dati nella colonna: consente di impostare il file di output sul valore di una colonna. Il percorso è relativo al contenitore del set di dati e non alla cartella di destinazione. Se nel set di dati è presente un percorso di cartella, quest'ultimo verrà ignorato.
- Output in un singolo file: consente di combinare i file di output partizionati in un singolo file denominato. Il percorso è relativo alla cartella del set di dati. Tenere presente che l'operazione di unione può avere esito negativo in base alla dimensione del nodo. Questa opzione non è consigliata per i set di dati di grandi dimensioni.
Racchiudi tutto tra virgolette: determina se racchiudere tutti i valori tra virgolette
umask
Facoltativamente, è possibile impostare umask
per i file usando i flag POSIX di lettura, scrittura ed esecuzione per proprietario, utente e gruppo.
Comandi di preelaborazione e postelaborazione
Facoltativamente, è possibile eseguire comandi del file system Hadoop prima o dopo la scrittura in un sink di ADLS Gen2. Supporta i comandi seguenti:
cp
mv
rm
mkdir
Esempi:
mkdir /folder1
mkdir -p folder1
mv /folder1/*.* /folder2/
cp /folder1/file1.txt /folder2
rm -r /folder1
I parametri sono supportati anche tramite il generatore di espressioni, ad esempio:
mkdir -p {$tempPath}/commands/c1/c2
mv {$tempPath}/commands/*.* {$tempPath}/commands/c1/c2
Per impostazione predefinita, le cartelle vengono create come utente/radice. Fare riferimento al contenitore di primo livello con '/'.
Proprietà dell'attività Lookup
Per altre informazioni sulle proprietà, vedere Attività Lookup.
Proprietà dell'attività GetMetadata
Per altre informazioni sulle proprietà, vedere Attività GetMetadata
Proprietà dell'attività Delete
Per altre informazioni sulle proprietà, vedere Attività Delete
Modalità legacy
Nota
I modelli seguenti sono ancora supportati così come sono per la compatibilità con le versioni precedenti. In futuro, è consigliabile usare il nuovo modello citato nelle sezioni precedenti, tenendo presente che l'interfaccia utente di creazione di Azure Data Factory è passata alla generazione del nuovo modello.
Modello di set di dati legacy
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type del set di dati deve essere impostata su AzureBlobFSFile. | Sì |
folderPath | Percorso della cartella in Data Lake Storage Gen2. Se il valore non è specificato, punta alla radice. Il filtro con caratteri jolly è supportato. I caratteri jolly consentiti sono * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo). Usare ^ per applicare una sequenza di escape se il nome effettivo della cartella include caratteri jolly o tale carattere di escape. Esempi: filesystem/folder/. Vedere altri esempi in Esempi di filtro file e cartelle. |
No |
fileName | Filtro con nome o carattere jolly per i file nell'elemento "folderPath" specificato. Se non si specifica alcun valore per questa proprietà, il set di dati punta a tutti i file nella cartella. Per un filtro, i caratteri jolly consentiti sono * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo).- Esempio 1: "fileName": "*.csv" - Esempio 2: "fileName": "???20180427.txt" Per applicare una sequenza di escape se il nome effettivo del file include caratteri jolly o tale carattere di escape, usare ^ .Se non si specifica fileName per un set di dati di output e non si specifica preserveHierarchy nel sink dell'attività, l'attività Copy genera automaticamente il nome del file in base al modello seguente: "Data.[GUID ID esecuzione attività].[GUID se FlattenHierarchy].[formato se configurato].[compressione se configurata]", ad esempio, "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz". Se si esegue la copia da un'origine in formato tabulare usando un nome di tabella anziché una query, il modello di nome è "[nome tabella].[formato].[compressione se configurata]", ad esempio "MiaTabella.csv". |
No |
modifiedDatetimeStart | Filtro di file basato sull'ultima modifica dell'attributo. I file vengono selezionati se l'ora dell'ultima modifica è maggiore o uguale a modifiedDatetimeStart e minore di modifiedDatetimeEnd . L'ora viene applicata in base al fuso orario UTC nel formato "2018-12-01T05:00:00Z". Le prestazioni complessive dello spostamento dei dati sono interessate dall'abilitazione di questa impostazione quando si intende applicare un filtro a grandi quantità di file. Le proprietà possono essere NULL, a indicare che al set di dati non viene applicato alcun filtro di attributo di file. Quando modifiedDatetimeStart ha un valore datetime ma modifiedDatetimeEnd è NULL, vengono selezionati i file il cui ultimo attributo modificato è maggiore o uguale al valore datetime. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL vengono selezionati i file il cui ultimo attributo modificato è minore del valore datetime. |
No |
modifiedDatetimeEnd | Filtro di file basato sull'ultima modifica dell'attributo. I file vengono selezionati se l'ora dell'ultima modifica è maggiore o uguale a modifiedDatetimeStart e minore di modifiedDatetimeEnd . L'ora viene applicata in base al fuso orario UTC nel formato "2018-12-01T05:00:00Z". Le prestazioni complessive dello spostamento dei dati sono interessate dall'abilitazione di questa impostazione quando si intende applicare un filtro a grandi quantità di file. Le proprietà possono essere NULL, a indicare che al set di dati non viene applicato alcun filtro di attributo di file. Quando modifiedDatetimeStart ha un valore datetime ma modifiedDatetimeEnd è NULL, vengono selezionati i file il cui ultimo attributo modificato è maggiore o uguale al valore datetime. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL vengono selezionati i file il cui ultimo attributo modificato è minore del valore datetime. |
No |
format | Per copiare i file così come sono tra archivi basati su file (copia binaria), è possibile ignorare la sezione del formato nelle definizioni dei set di dati di input e di output. Se si vuole analizzare o generare file con un formato specifico, sono supportati i tipi di formato seguenti: TextFormat, JsonFormat, AvroFormat, OrcFormat e ParquetFormat. Impostare la proprietà type in format su uno di questi valori. Per altre informazioni, vedere le sezioni Formato testo, Formato JSON, Formato AVRO, Formato OCR e Formato Parquet. |
No (solo per uno scenario di copia binaria) |
compressione | Specificare il tipo e il livello di compressione dei dati. Per altre informazioni, vedere l'articolo sui formati di file supportati e i codec di compressione. I tipi supportati sono **GZip**, **Deflate**, **BZip2**, and **ZipDeflate** .I livelli supportati sono Ottimale e Più veloce. |
No |
Suggerimento
Per copiare tutti i file in una cartella, specificare solo folderPath.
Per copiare un singolo file con un determinato nome, specificare folderPath con un percorso di cartella e fileName con un nome di file.
Per copiare un subset di file in una cartella, specificare folderPath con un percorso di cartella e fileName con un filtro con caratteri jolly.
Esempio:
{
"name": "ADLSGen2Dataset",
"properties": {
"type": "AzureBlobFSFile",
"linkedServiceName": {
"referenceName": "<Azure Data Lake Storage Gen2 linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"folderPath": "myfilesystem/myfolder",
"fileName": "*",
"modifiedDatetimeStart": "2018-12-01T05:00:00Z",
"modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
"format": {
"type": "TextFormat",
"columnDelimiter": ",",
"rowDelimiter": "\n"
},
"compression": {
"type": "GZip",
"level": "Optimal"
}
}
}
}
Modello di origine dell'attività di copia legacy
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type dell'origine dell'attività di copia deve essere impostata su AzureBlobFSSource. | Sì |
recursive | Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata. Quando la proprietà recursive è impostata su true e il sink è un archivio basato su file, una cartella o una sottocartella vuota non viene copiata o creata nel sink. I valori consentiti sono true (predefinito) e false. |
No |
maxConcurrentConnections | Limite massimo di connessioni simultanee stabilite all'archivio dati durante l'esecuzione dell'attività. Specificare un valore solo quando si desidera limitare le connessioni simultanee. | No |
Esempio:
"activities":[
{
"name": "CopyFromADLSGen2",
"type": "Copy",
"inputs": [
{
"referenceName": "<ADLS Gen2 input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AzureBlobFSSource",
"recursive": true
},
"sink": {
"type": "<sink type>"
}
}
}
]
Modello di sink dell'attività di copia legacy
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type del sink dell'attività di copia deve essere impostata su AzureBlobFSSink. | Sì |
copyBehavior | Definisce il comportamento di copia quando l'origine è costituita da file di un archivio dati basato su file. I valori consentiti sono i seguenti: - PreserveHierarchy (predefinito): mantiene la gerarchia dei file nella cartella di destinazione. Il percorso relativo del file di origine nella cartella di origine è identico al percorso relativo del file di destinazione nella cartella di destinazione. - FlattenHierarchy: tutti i file della cartella di origine si trovano nel primo livello della cartella di destinazione. I nomi dei file di destinazione vengono generati automaticamente. - MergeFiles: unisce tutti i file della cartella di origine in un solo file. Se si specifica il nome di file, il nome del file unito sarà il nome specificato. In caso contrario, verrà usato un nome di file generato automaticamente. |
No |
maxConcurrentConnections | Limite massimo di connessioni simultanee stabilite all'archivio dati durante l'esecuzione dell'attività. Specificare un valore solo quando si desidera limitare le connessioni simultanee. | No |
Esempio:
"activities":[
{
"name": "CopyToADLSGen2",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<ADLS Gen2 output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "AzureBlobFSSink",
"copyBehavior": "PreserveHierarchy"
}
}
}
]
Change Data Capture
Azure Data Factory può ottenere file nuovi o modificati solo da Azure Data Lake Storage Gen2 abilitando Abilita Change Data Capture nella trasformazione dell'origine del flusso di dati per mapping. Con questa opzione del connettore è possibile leggere solo file nuovi o aggiornati e applicare trasformazioni prima di caricare i dati trasformati nei set di dati di destinazione desiderati.
Assicurarsi di mantenere invariato il nome della pipeline e dell'attività, in modo che il checkpoint possa essere sempre registrato dall'ultima esecuzione per ottenere le modifiche. Se si modifica il nome della pipeline o il nome dell'attività, il checkpoint verrà reimpostato e si comincerà dall'inizio nell'esecuzione successiva.
Abilita Change Data Capturefunziona anche quando si esegue il debug della pipeline. Tenere presente che il checkpoint verrà reimpostato quando si aggiorna il browser durante l'esecuzione del debug. Quando il risultato dall'esecuzione del debug è soddisfacente, è possibile pubblicare e attivare la pipeline. Comincerà sempre dall'inizio indipendentemente dal checkpoint precedente registrato dall'esecuzione di debug.
Nella sezione di monitoraggio, è sempre possibile eseguire nuovamente una pipeline. Quando si esegue questa operazione, le modifiche vengono sempre ottenute dal record del checkpoint nell'esecuzione della pipeline selezionata.
Contenuto correlato
Per un elenco degli archivi dati supportati come origini e sink dall'attività di copia, vedere Archivi dati supportati.