Copiare dati da o in File di Azure usando Azure Data Factory
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!
Questo articolo illustra come copiare dati da e verso File di Azure. Per altre informazioni su Azure Data Factory, vedere l'articolo introduttivo.
Funzionalità supportate
Questo connettore File di Azure è supportato per le funzionalità seguenti:
Funzionalità supportate | IR | Endpoint privato gestito |
---|---|---|
Attività di copia (origine/sink) | (1) (2) | ✓ Escludere l'account di archiviazione V1 |
Attività Lookup | (1) (2) | ✓ Escludere l'account di archiviazione V1 |
Attività GetMetadata | (1) (2) | ✓ Escludere l'account di archiviazione V1 |
Attività Delete | (1) (2) | ✓ Escludere l'account di archiviazione V1 |
① Azure Integration Runtime ② Runtime di integrazione self-hosted
È possibile copiare dati da File di Azure a qualsiasi archivio dati sink supportato o copiare dati da un archivio dati orgine supportato a File di Azure. Per un elenco degli archivi dati supportati dall'attività di copia come origini e sink, vedere Archivi dati e formati supportati.
In particolare, il connettore File di Azure supporta:
- Copia di file usando le autenticazioni della chiave dell'account o della firma di accesso condiviso del servizio.
- La copia di file così come sono o l'analisi/generazione di file con i formati di file supportati e i codec di compressione.
Introduzione
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 a File di Azure usando l'interfaccia utente
Usare la procedura seguente per creare un servizio collegato a File di Azure 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 il file e selezionare il connettore per File di Azure con etichetta Archiviazione file di Azure.
Configurare i dettagli del servizio, testare la connessione e creare il nuovo servizio collegato.
Dettagli di configurazione del connettore
Le sezioni seguenti forniscono informazioni dettagliate sulle proprietà usate per definire entità specifiche di File di Azure.
Proprietà del servizio collegato
Il connettore File di Azure 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 dell'identità gestita assegnata dal sistema
- Autenticazione dell'identità gestita assegnata dall'utente
Nota
Se si usa il servizio collegato File di Azure con il modello legacy, in cui nell'interfaccia utente di creazione di Azure Data Factory viene visualizzata l'opzione "Autenticazione di base", è ancora supportata così come è, mentre si consiglia di usare il nuovo modello in futuro. Il modello legacy trasferisce i dati da/verso l'archiviazione su Server Message Block (SMB), mentre il nuovo modello usa l'SDK di archiviazione con una velocità effettiva migliore. Per eseguire l'aggiornamento, è possibile modificare il servizio collegato per impostare il metodo di autenticazione su "Chiave account" o "URI di firma di accesso condiviso"; nessuna modifica necessaria per il set di dati o l'attività di copia.
Autenticazione basata sulla chiave dell'account
Data Factory supporta le proprietà seguenti per l'autenticazione della chiave dell'account File di Azure:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type deve essere impostata su: AzureFileStorage. | Sì |
connectionString | Specificare le informazioni necessarie per connettersi a File di Azure. È anche possibile inserire la chiave dell'account in Azure Key Vault e rimuovere la configurazione di accountKey dalla stringa di connessione. Per altri dettagli, vedere gli esempi seguenti e l'articolo Archiviare le credenziali in Azure Key Vault. |
Sì |
fileShare | Specificare la condivisione file. | Sì |
snapshot | Specificare la data dello snapshot della condivisione file se si desidera copiare da uno snapshot. | No |
connectVia | Il runtime di integrazione da usare per la connessione all'archivio dati. È possibile usare il runtime di integrazione di Azure o il 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": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net;",
"fileShare": "<file share name>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Esempio: archiviare la chiave dell'account in Azure Key Vault
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
"fileShare": "<file share name>",
"accountKey": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"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. Per altre informazioni sulle firme di accesso condiviso, vedere Uso delle firme di accesso condiviso.
Il servizio supporta le proprietà seguenti per l'uso dell'autenticazione della firma di accesso condiviso:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type deve essere impostata su: AzureFileStorage. | Sì |
sasUri | Specificare l'URI della firma di accesso condiviso alle risorse. 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ì |
fileShare | Specificare la condivisione file. | Sì |
snapshot | Specificare la data dello snapshot della condivisione file se si desidera copiare da uno snapshot. | No |
connectVia | Il runtime di integrazione da usare per la connessione all'archivio dati. È possibile usare il runtime di integrazione di Azure o il 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": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the resource e.g. https://<accountname>.file.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
},
"fileShare": "<file share name>",
"snapshot": "<snapshot version>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Esempio: archiviare il token di firma di accesso condiviso in Azure Key Vault
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.file.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>>"
},
"fileShare": "<file share name>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autenticazione dell'identità gestita assegnata dal sistema
Una pipeline di data factory o di Synapse può essere associata a un'identità gestita assegnata dal sistema per risorse di Azure che rappresenta quella risorsa per l'autenticazione ad altri servizi di Azure. È possibile usare questa identità gestita assegnata dal sistema per l'autenticazione di File di Azure. 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 dal sistema, seguire questa procedura:
Recuperare le informazioni relative all'identità gestita assegnate dal sistema copiando il valore dell'ID oggetto identità gestito assegnato dal sistema generato insieme all'area di lavoro della factory o di Synapse.
Concedere l'autorizzazione per l'identità gestita in File di Azure. Per altre informazioni sui ruoli, vedere questo articolo.
- Come origine in Controllo di accesso (IAM) concedere almeno il ruolo Lettore dei dati dei file di archiviazione dotato di privilegi.
- Come sink, in Controllo di accesso (IAM), concedere almeno il ruolo Collaboratore dei dati del file di archiviazione dotato di privilegi.
Per un servizio collegato ad Archiviazione BLOB di Azure sono supportate queste proprietà:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type deve essere impostata su AzureFileStorage. | Sì |
serviceEndpoint | Specificare l'endpoint del servizio File di Azure con il criterio di https://<accountName>.file.core.windows.net/ . |
Sì |
fileShare | Specificare la condivisione file. | Sì |
snapshot | Specificare la data dello snapshot della condivisione file se si desidera copiare da uno snapshot. | No |
connectVia | Il runtime di integrazione da usare per la connessione all'archivio dati. Si può utilizzare Azure Integration Runtime. Se non specificato, viene usato il runtime di integrazione di Azure predefinito. | No |
Nota
L'autenticazione dell'identità gestita assegnata dal sistema è supportata solo da Azure Integration Runtime.
Esempio:
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"serviceEndpoint": "https://<accountName>.file.core.windows.net/",
"fileShare": "<file share name>",
"snapshot": "<snapshot version>"
},
"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 dei File di Azure, che consente di accedere e copiare dati da o in File di Azure. 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'autorizzazione in File di Azure. Per altre informazioni sui ruoli, vedere questo articolo.
- Come origine in Controllo di accesso (IAM) concedere almeno il ruolo Lettore dei dati dei file di archiviazione dotato di privilegi.
- Come sink, in Controllo di accesso (IAM), concedere almeno il ruolo Collaboratore dei dati del file di archiviazione dotato di privilegi.
Assegnare una o più identità gestite assegnate dall'utente alla data factory e creare le credenziali per ogni identità gestita assegnata dall'utente.
Per un servizio collegato ad Archiviazione BLOB di Azure sono supportate queste proprietà:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type deve essere impostata su AzureFileStorage. | Sì |
serviceEndpoint | Specificare l'endpoint del servizio File di Azure con il criterio di https://<accountName>.file.core.windows.net/ . |
Sì |
credentials | Specificare l'identità gestita assegnata dall'utente come oggetto credenziale. | Sì |
fileShare | Specificare la condivisione file. | Sì |
snapshot | Specificare la data dello snapshot della condivisione file se si desidera copiare da uno snapshot. | No |
connectVia | Il runtime di integrazione da usare per la connessione all'archivio dati. È possibile usare il runtime di integrazione di Azure o il 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": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"serviceEndpoint": "https://<accountName>.file.core.windows.net/",
"credential": {
"referenceName": "credential1",
"type": "CredentialReference"
},
"fileShare": "<file share name>",
"snapshot": "<snapshot version>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Modello legacy
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type deve essere impostata su: AzureFileStorage. | Sì |
host | Specifica l'endpoint di File di Azure come: - Con l'interfaccia utente: specificare \\<storage name>.file.core.windows.net\<file service name> - Con JSON: "host": "\\\\<storage name>.file.core.windows.net\\<file service name>" . |
Sì |
userid | Specificare l'utente con cui accedere a File di Azure come: - Con l'interfaccia utente: specificare AZURE\<storage name> - Con JSON: "userid": "AZURE\\<storage name>" . |
Sì |
password | Specificare la chiave di accesso alle risorse di archiviazione. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro in Azure Data Factory oppure fare riferimento a un segreto archiviato in Azure Key Vault. | Sì |
connectVia | Il runtime di integrazione da usare per la connessione all'archivio dati. È possibile usare il runtime di integrazione di Azure o il 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 per l'origine, Sì per il sink |
Esempio:
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"host": "\\\\<storage name>.file.core.windows.net\\<file service name>",
"userid": "AZURE\\<storage name>",
"password": {
"type": "SecureString",
"value": "<storage access key>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Proprietà del set di dati
Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione dei set di dati, vedere l'articolo 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 JSON
- Formato ORC
- Formato Parquet
- Formato XML
Le proprietà seguenti sono supportate per File di Azure nelle impostazioni 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 AzureFileStorageLocation. |
Sì |
folderPath | Percorso della cartella. 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 del file nel percorso cartella specificato. 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": "<Azure File Storage linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "AzureFileStorageLocation",
"folderPath": "root/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 l'articolo sulle pipeline. Questa sezione fornisce un elenco delle proprietà supportate dall'origine e dal sink di File di Azure.
File di Azure come 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
Le proprietà seguenti sono supportate per File di Azure nelle impostazioni storeSettings
nell'origine copy basata sul formato:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type in storeSettings deve essere impostata su AzureFileStorageReadSettings. |
Sì |
Individuare i file da copiare: | ||
OPZIONE 1: percorso statico |
Copia dal percorso di cartella/file specificato nel set di dati. Se si vogliono copiare tutti i file da una cartella, specificare anche wildcardFileName come * . |
|
OPZIONE 2: prefisso del file - prefisso |
Prefisso per il nome del file nella condivisione file specificata configurata in un set di dati per filtrare i file di origine. I file con nome che iniziano con fileshare_in_linked_service/this_prefix sono selezionati. Usa il filtro lato servizio per File di Azure, che offre prestazioni migliori rispetto a un filtro con caratteri jolly. Questa funzionalità non è supportata quando si usa un modello di servizio collegato legacy. |
No |
OPZIONE 3: carattere jolly - wildcardFolderPath |
Percorso della cartella con caratteri jolly 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 3: carattere jolly - wildcardFileName |
Nome file con caratteri jolly nel 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 4: 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. 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. 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": "CopyFromAzureFileStorage",
"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": "AzureFileStorageReadSettings",
"recursive": true,
"wildcardFolderPath": "myfolder*A",
"wildcardFileName": "*.csv"
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
File di Azure come sink
Azure Data Factory supporta i formati di file seguenti. Per impostazioni basate sui formati, fare riferimento ai singoli articoli.
Le proprietà seguenti sono supportate per File di Azure nelle impostazioni storeSettings
nel sink copy basato sul formato:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type in storeSettings deve essere impostata su AzureFileStorageWriteSettings. |
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": "CopyToAzureFileStorage",
"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": "AzureFileStorageWriteSettings",
"copyBehavior": "PreserveHierarchy"
}
}
}
}
]
Nota
È possibile copiare fino a 4 MB di dati nel sink quando si usa l'identità gestita assegnata dal sistema o assegnata dall'utente come tipo di autenticazione.
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 valore predefinito) | false | CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv AltraCartellaB File6.csv |
Folder* |
(vuoto, usare 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 | Impostazione |
---|---|---|
root 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: - Percorso cartella: root/FolderA Nell'origine dell'attività Copy: - Percorso elenco file: root/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. |
esempi ricorsivi e copyBehavior
In questa sezione viene descritto il comportamento derivante dell'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 cartella di destinazione Cartella1 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 file generato automaticamente |
false | preserveHierarchy | Cartella1 File1 File2 Sottocartella1 File3 File4 File5 |
La Cartella1 di destinazione viene creata con la struttura seguente Cartella1 File1 File2 Sottocartella1 con File3, File4 e File5 non considerati. |
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 Sottocartella1 con File3, File4 e File5 non considerati. |
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 nome generato automaticamente. Nome generato automaticamente per File1 Sottocartella1 con File3, File4 e File5 non considerati. |
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 è 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: FileShare | Sì |
folderPath | Percorso della cartella. I filtri con caratteri jolly sono supportati, 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: cartellaradice/sottocartella/. Vedere altri esempi in Esempi di filtro file e cartelle. |
Sì |
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" Usare ^ per il carattere escape se il nome effettivo del file include caratteri jolly o escape.Quando fileName non viene specificato per un set di dati di output e preserveHierarchy non viene specificato nel sink dell'attività, l'attività di copia genera automaticamente il nome del file con il modello seguente: "Data.[activity run ID GUID].[GUID if FlattenHierarchy].[format if configured].[compression if configured]", ad esempio "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz"; se si copia da un'origine tabulare usando il nome della tabella anziché la query, il modello di nome è "[table name].[format].[compression if configured]", ad esempio "MyTable.csv". |
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". Tenere presente che 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'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". Tenere presente che 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 nell'area format su uno di questi valori. Per altre informazioni, vedere le sezioni TextFormat, JsonFormat, AvroFormat, OrcFormat e ParquetFormat. |
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 e 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 il percorso della cartella e fileName con il nome del file.
Per copiare un subset di file in una cartella, specificare folderPath con il percorso della cartella e fileName con il filtro con caratteri jolly.
Nota
Se si usa la proprietà "fileFilter" per il filtro dei file, è comunque supportata senza alcuna modifica, mentre in futuro verrà consigliato di usare la nuova funzionalità di filtro aggiunta a "fileName".
Esempio:
{
"name": "AzureFileStorageDataset",
"properties": {
"type": "FileShare",
"linkedServiceName":{
"referenceName": "<Azure File Storage linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"folderPath": "folder/subfolder/",
"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: FileSystemSource | Sì |
recursive | Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata. Si noti che se recursive è impostata su true e il sink è un archivio basato su file, la cartella o la sottocartella vuota non verrà copiata o creata nel sink. I valori consentiti sono: true (predefinito), 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": "CopyFromAzureFileStorage",
"type": "Copy",
"inputs": [
{
"referenceName": "<Azure File Storage input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "FileSystemSource",
"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: FileSystemSink | 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. Il nome dei file di destinazione viene generato automaticamente. - MergeFiles: unisce tutti i file della cartella di origine in un solo file. Se viene specificato il nome file, il nome file unito sarà il nome specificato. In caso contrario, sarà il nome 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": "CopyToAzureFileStorage",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure File Storage output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "FileSystemSink",
"copyBehavior": "PreserveHierarchy"
}
}
}
]
Contenuto correlato
Per un elenco degli archivi dati supportati come origini e sink dall'attività Copy, vedere Archivi dati supportati.