Condividi tramite


Copiare e trasformare i dati in Archiviazione BLOB di Azure 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!

Questo articolo illustra come usare l'attività Copy in pipeline di Azure Data Factory e Azure Synapse per copiare dati da e verso Archiviazione BLOB di Azure. Descrive anche come usare l'attività Flusso di dati per trasformare i dati in Archiviazione BLOB di Azure. Per altre informazioni, leggere gli articoli introduttivi per Azure Data Factory e Azure Synapse Analytics.

Suggerimento

Per informazioni su uno scenario di migrazione per un data lake o un data warehouse, vedere l'articolo Eseguire la migrazione dei dati da data lake o data warehouse in Azure.

Funzionalità supportate

Questo connettore di Archiviazione BLOB di Azure è supportato per le funzionalità seguenti:

Funzionalità supportate IR Endpoint privato gestito
Attività di copia (origine/sink) 7.3 ✓ Escludere l'account di archiviazione V1
Flusso di dati di mapping (origine/sink) 1 ✓ Escludere l'account di archiviazione V1
Attività Lookup 7.3 ✓ Escludere l'account di archiviazione V1
Attività GetMetadata 7.3 ✓ Escludere l'account di archiviazione V1
Attività Delete 7.3 ✓ Escludere l'account di archiviazione V1

① Azure Integration Runtime ② Runtime di integrazione self-hosted

Per l'attività Copy, il connettore di Archiviazione BLOB supporta:

  • La copia di BLOB in e da account di archiviazione di Azure per utilizzo generico e servizi di Archiviazione BLOB ad accesso frequente o sporadico.
  • La copia di BLOB tramite autenticazione con una chiave dell'account, una firma di accesso condiviso del servizio (SAS), un'entità servizio o identità gestite per le risorse di Azure.
  • La copia di BLOB da BLOB in blocchi, di aggiunta o di pagine e la copia di dati solo in BLOB in blocchi.
  • La copia di BLOB così come sono oppure l'analisi o la generazione di BLOB con i formati di file e i codec di compressione supportati.
  • Mantenere i metadati del file durante la copia.

Operazioni preliminari

Per eseguire l'attività di copia con una pipeline, è possibile usare uno degli strumenti o SDK seguenti:

Creare un servizio collegato di Archiviazione BLOB di Azure usando l'interfaccia utente

Usare la procedura seguente per creare un servizio collegato di Archiviazione BLOB di Azure nell'interfaccia utente del portale di Azure.

  1. Passare alla scheda Gestisci nell'area di lavoro di Azure Data Factory o Synapse e selezionare Servizi collegati, quindi selezionare Nuovo:

  2. Cercare BLOB e selezionare il connettore Archiviazione BLOB di Azure.

    Selezionare il connettore Archiviazione BLOB di Azure.

  3. Configurare i dettagli del servizio, testare la connessione e creare il nuovo servizio collegato.

    Screenshot della configurazione per il servizio collegato di Archiviazione BLOB di Azure.

Dettagli di configurazione del connettore

Le sezioni seguenti riportano informazioni dettagliate sulle proprietà che vengono usate per definire entità delle pipeline di Data Factory e Synapse specifiche dell'archiviazione BLOB.

Proprietà del servizio collegato

Questo connettore di archiviazione BLOB supporta i tipi di autenticazione seguenti. Per informazioni dettagliate, vedere le sezioni corrispondenti.

Nota

  • Se si vuole usare il runtime di integrazione di Azure pubblico per connettersi all'archiviazione BLOB usando l'opzioneConsenti ai servizi Microsoft attendibili di accedere a questo account di archiviazione abilitata nelle impostazioni del 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'archiviazione BLOB 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 per altri prerequisiti di configurazione.

Nota

Le attività di Azure HDInsight e Azure Machine Learning supportano solo l'autenticazione basata sulle chiavi dell'account di Archiviazione BLOB di Azure.

Autenticazione anonima

Le proprietà seguenti sono supportate per l'autenticazione della chiave dell'account di archiviazione nelle pipeline di Azure Data Factory o Synapse:

Proprietà Descrizione Richiesto
type La proprietà type deve essere impostata su AzureBlobStorage (impostazione consigliata) o AzureStorage (vedere le note seguenti).
containerUri Specificare l'URI del contenitore BLOB di Azure che ha abilitato l'accesso in lettura anonimo accettando questo formato https://<AccountName>.blob.core.windows.net/<ContainerName> e Configurare l'accesso in lettura pubblico anonimo per contenitori e BLOB
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

Esempio:


{
    "name": "AzureBlobStorageAnonymous",
    "properties": {
        "annotations": [],
        "type": "AzureBlobStorage",
        "typeProperties": {
            "containerUri": "https:// <accountname>.blob.core.windows.net/ <containername>",
            "authenticationType": "Anonymous"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Esempi di interfaccia utente:

L'esperienza dell'interfaccia utente è come descritto nell'immagine seguente. Questo esempio usa il set di dati aperto di Azure come origine. Se si vuole ottenere il set di dati aperto bing_covid-19_data.csv, è sufficiente scegliere Anonimo per Tipo di autenticazione e compilare l'URI del contenitore con https://pandemicdatalake.blob.core.windows.net/public.

Screenshot della configurazione per l'interfaccia utente degli esempi anonimi.

Autenticazione basata sulla chiave dell'account

Le proprietà seguenti sono supportate per l'autenticazione della chiave dell'account di archiviazione nelle pipeline di Azure Data Factory o Synapse:

Proprietà Descrizione Richiesto
type La proprietà type deve essere impostata su AzureBlobStorage (impostazione consigliata) o AzureStorage (vedere le note seguenti).
connectionString Specificare le informazioni necessarie per connettersi all'archiviazione per la proprietà connectionString.
È anche possibile inserire la chiave dell'account in Azure Key Vault e recuperare 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.
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

Un endpoint secondario del servizio BLOB non è supportato quando si usa l'autenticazione della chiave dell'account. È possibile usare altri tipi di autenticazione.

Nota

Se si usa il servizio collegato di tipo AzureStorage, è ancora supportato così come è. È tuttavia consigliabile usare il nuovo tipo di servizio collegato AzureBlobStorage in futuro.

Esempio:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
          "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
        },
        "connectVia": {
          "referenceName": "<name of Integration Runtime>",
          "type": "IntegrationRuntimeReference"
        }
    }
}

Esempio: archiviare la chiave dell'account in Azure Key Vault

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
            "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.

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 AzureBlobStorage (impostazione consigliata) o AzureStorage (vedere la nota seguente).
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.
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 AzureBlobStorage in futuro.

Esempio:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "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": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "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 informazioni generali sull'autenticazione dell'entità servizio di Archiviazione di Azure, vedere Autenticare l'accesso ad Archiviazione di Azure usando Microsoft Entra ID.

Per usare l'autenticazione basata su entità servizio, eseguire la procedura seguente:

  1. 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
  2. Concedere all'entità servizio un'autorizzazione appropriata in Archiviazione BLOB di Azure. Per altre informazioni sui ruoli, vedere Usare il portale di Azure per assegnare un ruolo di Azure per l'accesso ai dati BLOB e di accodamento.

    • Come origine, in Controllo di accesso (IAM) concedere almeno il Ruolo con autorizzazioni di lettura per i dati dei BLOB di archiviazione.
    • Come sink, in Controllo di accesso (IAM), concedere almeno il ruolo Collaboratore dei dati dei BLOB di archiviazione.

Per un servizio collegato ad Archiviazione BLOB di Azure sono supportate queste proprietà:

Proprietà Descrizione Richiesto
type La proprietà type deve essere impostata su AzureBlobStorage.
serviceEndpoint Specificare l'endpoint del servizio di Archiviazione BLOB di Azure con il modello https://<accountName>.blob.core.windows.net/.
accountKind Specificare il tipo di account di archiviazione. I valori consentiti sono: Storage (utilizzo generico v1), StorageV2 (utilizzo generico v2), BlobStorage o BlockBlobStorage.

Quando si usa il servizio collegato BLOB di Azure nel flusso di dati, l'autenticazione dell'identità gestita o dell'entità servizio non è supportata quando il tipo di account è vuoto o "Storage". Specificare il tipo di account appropriato, scegliere un'autenticazione diversa o aggiornare l'account di archiviazione a utilizzo generico v2.
No
servicePrincipalId Specificare l'ID client dell'applicazione.
servicePrincipalCredentialType Tipo di credenziale da usare per l'autenticazione dell'entità servizio. I valori consentiti sono ServicePrincipalKey e ServicePrincipalCert.
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.
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.
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 questa proprietà non è specificata, il servizio usa il runtime di integrazione di Azure predefinito. No

Nota

  • Se l'account BLOB abilita l'eliminazione temporanea, l'autenticazione dell'entità servizio non è supportata in Flusso di dati.
  • Se si accede all'archiviazione BLOB tramite endpoint privato usando Flusso di dati, tenere presente che, quando si usa l'autenticazione dell'entità servizio, Flusso di dati si connette all'endpoint ADLS Gen2 anziché all'endpoint BLOB. Assicurarsi di creare l'endpoint privato corrispondente nell'area di lavoro di data factory o Synapse per abilitare l'accesso.

Nota

L'autenticazione dell'entità servizio è supportata solo dal servizio collegato di tipo "AzureBlobStorage", non dal servizio collegato di tipo "AzureStorage" precedente.

Esempio:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "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 direttamente questa identità gestita assegnata dal sistema per l'autenticazione con archiviazione BLOB, analogamente all'uso dell'entità servizio. Consente alla risorsa designata di accedere ai dati e copiarli dalla o nella risorsa di archiviazione BLOB. Per altre informazioni sulle identità gestite per le risorse di Azure, vedere Identità gestite per le risorse di Azure

Per informazioni generali sull'autenticazione di Archiviazione di Azure, vedere Autenticare l'accesso ad Archiviazione di Azure usando Microsoft Entra ID. Per usare le identità gestite per l'autenticazione delle risorse di Azure, seguire questa procedura:

  1. 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.

  2. Concedere l'autorizzazione per l'identità gestita in Archiviazione BLOB di Azure. Per altre informazioni sui ruoli, vedere Usare il portale di Azure per assegnare un ruolo di Azure per l'accesso ai dati BLOB e di accodamento.

    • Come origine, in Controllo di accesso (IAM) concedere almeno il Ruolo con autorizzazioni di lettura per i dati dei BLOB di archiviazione.
    • Come sink, in Controllo di accesso (IAM), concedere almeno il ruolo Collaboratore dei dati dei BLOB di archiviazione.

Per un servizio collegato ad Archiviazione BLOB di Azure sono supportate queste proprietà:

Proprietà Descrizione Richiesto
type La proprietà type deve essere impostata su AzureBlobStorage.
serviceEndpoint Specificare l'endpoint del servizio di Archiviazione BLOB di Azure con il modello https://<accountName>.blob.core.windows.net/.
accountKind Specificare il tipo di account di archiviazione. I valori consentiti sono: Storage (utilizzo generico v1), StorageV2 (utilizzo generico v2), BlobStorage o BlockBlobStorage.

Quando si usa il servizio collegato BLOB di Azure nel flusso di dati, l'autenticazione dell'identità gestita o dell'entità servizio non è supportata quando il tipo di account è vuoto o "Storage". Specificare il tipo di account appropriato, scegliere un'autenticazione diversa o aggiornare l'account di archiviazione a utilizzo generico v2.
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 questa proprietà non è specificata, il servizio usa il runtime di integrazione di Azure predefinito. No

Esempio:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2" 
        },
        "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 ai dati e copiarli da o nell'archiviazione BLOB. Per altre informazioni sulle identità gestite per le risorse di Azure, vedere Identità gestite per le risorse di Azure

Per informazioni generali sull'autenticazione di Archiviazione di Azure, vedere Autenticare l'accesso ad Archiviazione di Azure usando Microsoft Entra ID. Per usare l'autenticazione dell'identità gestita assegnata dall’utente, seguire questa procedura:

  1. Creare una o più identità gestite assegnate dall'utente e concedere l'autorizzazione in Archiviazione BLOB di Azure. Per altre informazioni sui ruoli, vedere Usare il portale di Azure per assegnare un ruolo di Azure per l'accesso ai dati BLOB e di accodamento.

    • Come origine, in Controllo di accesso (IAM) concedere almeno il Ruolo con autorizzazioni di lettura per i dati dei BLOB di archiviazione.
    • Come sink, in Controllo di accesso (IAM), concedere almeno il ruolo Collaboratore dei dati dei BLOB di archiviazione.
  2. 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 AzureBlobStorage.
serviceEndpoint Specificare l'endpoint del servizio di Archiviazione BLOB di Azure con il modello https://<accountName>.blob.core.windows.net/.
accountKind Specificare il tipo di account di archiviazione. I valori consentiti sono: Storage (utilizzo generico v1), StorageV2 (utilizzo generico v2), BlobStorage o BlockBlobStorage.

Quando si usa il servizio collegato BLOB di Azure nel flusso di dati, l'autenticazione dell'identità gestita o dell'entità servizio non è supportata quando il tipo di account è vuoto o "Storage". Specificare il tipo di account appropriato, scegliere un'autenticazione diversa o aggiornare l'account di archiviazione a utilizzo generico v2.
No
credentials Specificare l'identità gestita assegnata dall'utente come oggetto credenziale.
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

Esempio:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Importante

Se si usa l'istruzione PolyBase o COPY per caricare i dati dall'archiviazione BLOB (come origine o come staging) in Azure Synapse Analytics, quando si usa l'autenticazione dell'identità gestita per l'archiviazione BLOB, assicurarsi di seguire anche i passaggi da 1 a 3 in queste indicazioni. Questi passaggi registreranno il server con 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, è necessario attivare anche 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.

Nota

  • Se l'account BLOB abilita l'eliminazione temporanea, l'autenticazione dell'identità gestita assegnata dal sistema o assegnata dall'utente non è supportata in Flusso di dati.
  • Se si accede all'archiviazione BLOB tramite endpoint privato usando Flusso di dati, tenere presente che quando si usa l'autenticazione dell'identità gestita assegnata dal sistema o assegnata dall'utente Flusso di dati si connette all'endpoint ADLS Gen2 anziché all'endpoint BLOB. Assicurarsi di creare l'endpoint privato corrispondente in Azure Data Factory per abilitare l'accesso.

Nota

L'autenticazione dell'identità gestita assegnata dal sistema o assegnata dall'utente è supportata solo dal servizio collegato di tipo "AzureBlobStorage", non dal servizio collegato di tipo "AzureStorage" precedente.

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.

Le proprietà seguenti sono supportate per Archiviazione BLOB di Azure nelle impostazioni location nel set di dati basato sul formato:

Proprietà Descrizione Richiesto
type La proprietà type del percorso nel set di dati deve essere impostata su AzureBlobStorageLocation.
container Contenitore BLOB.
folderPath Percorso della cartella nel contenitore specificato. Se si intende usare un carattere jolly per filtrare la cartella, ignorare questa impostazione e specificarla nelle impostazioni dell'origine dell'attività. No
fileName Nome del file nel percorso di contenitore e 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 Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "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 l'articolo sulle pipeline. Questa sezione presenta un elenco delle proprietà supportate dall'origine e dal sink Archiviazione BLOB di Azure.

Archiviazione BLOB come tipo di origine

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 Archiviazione BLOB di Azure nelle impostazioni storeSettings in un'origine di copia basata sul formato:

Proprietà Descrizione Richiesto
type La proprietà type in storeSettings deve essere impostata su AzureBlobStorageReadSettings.
Individuare i file da copiare:
OPZIONE 1: percorso statico
Copia dal percorso del contenitore o della cartella/file specificato nel set di dati. Se si vogliono copiare tutti i BLOB da un contenitore o una cartella, specificare anche wildcardFileName come *.
OPZIONE 2: prefisso BLOB
- prefisso
Prefisso per il nome del BLOB nel contenitore specificato configurato in un set di dati per filtrare i BLOB di origine. Vengono selezionati i BLOB i cui nomi iniziano con container_in_dataset/this_prefix. Usa il filtro lato servizio per l'archiviazione BLOB, che offre prestazioni migliori rispetto a un filtro con caratteri jolly.

Quando si usa il prefisso e si sceglie di copiare nel sink basato su file con conservazione della gerarchia, si noti che il sottopercorso dopo l'ultimo "/" nel prefisso viene mantenuto. Ad esempio, per l'origine container/folder/subfolder/file.txt si configura il prefisso folder/sub e quindi il percorso del file conservato è subfolder/file.txt.
No
OPZIONE 3: carattere jolly
- wildcardFolderPath
Percorso della cartella con caratteri jolly nel contenitore specificato configurato in un set di dati per filtrare le cartelle 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 applicare una sequenza di escape se il nome della cartella include caratteri jolly o tale carattere di escape.
Vedere altri esempi in Esempi di filtro file e cartelle.
No
OPZIONE 3: carattere jolly
- wildcardFileName
Nome di file con caratteri jolly nel percorso del contenitore e della cartella specificato (o percorso della cartella con caratteri jolly) 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 evitare che il nome del file contenga un carattere jolly o tale carattere di escape. Vedere altri esempi in Esempi di filtro file e cartelle.
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 un 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 per file. Pertanto, quando l'attività Copy ha esito negativo, si noterà che alcuni file sono già stati copiati nella destinazione ed eliminati dall'origine, mentre altri rimangono nell'archivio di origine.
Questa proprietà è valida solo nello scenario di copia dei file binari. Il valore predefinito è false.
No
modifiedDatetimeStart I file vengono filtrati in base all'attributo seguente: ultima modifica.
I file verranno selezionati se la data/ora dell'ultima modifica è maggiore o uguale a modifiedDatetimeStart e minore di modifiedDatetimeEnd. Data e ora vengono applicate in base al fuso orario UTC nel formato "2018-12-01T05:00:00Z".
Le proprietà possono essere NULL, a indicare che al set di dati non verrà applicato alcun filtro di attributo di file. Quando modifiedDatetimeStart presenta un valore datetime ma modifiedDatetimeEnd è NULL, verranno selezionati i file il cui ultimo attributo modificato sia maggiore o uguale al valore datetime. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL verranno selezionati i file il cui ultimo attributo modificato sia minore del valore datetime.
Questa proprietà non è applicabile quando si configura fileListPath.
No
modifiedDatetimeEnd Uguale alla proprietà precedente. 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 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 caratteri jolly, il percorso radice della partizione è il percorso secondario prima del primo carattere jolly.
- Quando si usa il prefisso, il percorso radice della partizione è sottopercorso prima dell'ultimo "/".

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

Nota

Per il formato di testo delimitato/Parquet, il tipo BlobSource per l'origine dell'attività Copy menzionato nella sezione successiva è ancora supportato così com'è per la compatibilità con le versioni precedenti. È consigliabile usare il nuovo modello fino a quando l'interfaccia utente di creazione non è passata alla generazione di questi nuovi tipi.

Esempio:

"activities":[
    {
        "name": "CopyFromBlob",
        "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": "AzureBlobStorageReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Nota

Il contenitore $logs, creato automaticamente quando Analisi archiviazione è abilitato per un account di archiviazione, non viene visualizzato quando viene eseguita un'operazione di presentazione dei contenitori tramite l'interfaccia utente. Il percorso del file deve essere fornito direttamente per la pipeline della data factory o di Synapse per utilizzare i file dal contenitore $logs.

Archiviazione BLOB come tipo di 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 Archiviazione BLOB di Azure nelle impostazioni storeSettings nel sink di copia basato sul formato:

Proprietà Descrizione Richiesto
type La proprietàtype in storeSettingsdeve essere impostata su AzureBlobStorageWriteSettings.
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 viene specificato il nome del file o del BLOB , 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 megabyte usate per scrivere i dati nei BLOB in blocchi. Altre informazioni sui BLOB in blocchi.
Il valore consentito è compreso tra 4 e 100 MB.
Per impostazione predefinita, il servizio determina automaticamente le dimensioni del blocco in base al tipo e ai dati dell'archivio di origine. Per la copia non binaria nell'archiviazione BLOB, le dimensioni predefinite del blocco sono pari a 100 MB, in modo da contenere al massimo 4,95 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 connessioni di rete scarse, che causano il timeout dell'operazione o problemi di prestazioni. È possibile specificare in modo esplicito una dimensione del blocco, assicurandosi che blockSizeInMB*50000 sia sufficientemente grande da archiviare i dati. In caso contrario, l'esecuzione dell'attività Copy 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": "CopyFromBlob",
        "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": "AzureBlobStorageWriteSettings",
                    "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)
container/Folder* (vuoto, usare valore predefinito) false container
    CartellaA
        File1.csv
        File2.json
        Sottocartella1
            File3.csv
            File4.json
            File5.csv
    AltraCartellaB
        File6.csv
container/Folder* (vuoto, usare valore predefinito) true container
    CartellaA
        File1.csv
        File2.json
        Sottocartella1
            File3.csv
            File4.json
            File5.csv
    AltraCartellaB
        File6.csv
container/Folder* *.csv false container
    CartellaA
        File1.csv
        File2.json
        Sottocartella1
            File3.csv
            File4.json
            File5.csv
    AltraCartellaB
        File6.csv
container/Folder* *.csv true container
    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à Copy.

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
container
    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:
- Contenitore: container
- Percorso cartella: FolderA

Nell'origine dell'attività Copy:
- Percorso elenco file: container/Metadata/FileListToCopy.txt

Il percorso dell'elenco di file punta a un file di testo nello stesso archivio dati che include un elenco di file da copiare. Include 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 risultante dell'operazione Copy per diverse combinazioni di valori di recursive 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 cartella di destinazione Cartella1 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 cartella di destinazione Cartella1 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 cartella di destinazione Cartella1 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 cartella di destinazione Cartella1 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 cartella di destinazione Cartella1 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.

Conservazione dei metadati durante la copia

Quando si copiano i file da Amazon S3, Archiviazione BLOB di Azure o Azure Data Lake Storage Gen2 in Azure Data Lake Storage Gen2 o Archiviazione BLOB di Azure, è possibile scegliere di conservare i metadati dei file insieme ai dati. Altre informazioni in Mantenere i metadati.

Proprietà del flusso di dati per mapping

Quando si trasformano i dati nei flussi di dati per mapping, è possibile leggere e scrivere file in Archiviazione BLOB di Azure nei seguenti formati:

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 Archiviazione BLOB di Azure. Usare la scheda Opzioni origine per gestire la modalità di lettura dei file.

Screenshot della scheda Opzioni origine nella trasformazione origine del flusso di dati per mapping.

Percorsi con caratteri jolly: l'uso di una sequenza con caratteri jolly indica al servizio 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 un 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 Recupera tutti i file CSV in /data/sales.

  • /data/sales/20??/**/ Recupera tutti i file del ventesimo secolo.

  • /data/sales/*/*/*.csv Recupera i file CSV due livelli sotto /data/sales.

  • /data/sales/2004/*/12/[XY]1?.csv Recupera tutti i file CSV di dicembre 2004 che iniziano con la lettera X o Y preceduta 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 year=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.

Screenshot delle impostazioni del file di origine della partizione nella trasformazione origine del flusso di dati per mapping.

Usare l'impostazione Percorso radice partizione per definire il livello superiore della struttura di cartelle. Quando si visualizza il contenuto dei dati tramite un'anteprima, si noterà che il servizio aggiunge le partizioni risolte trovate in ogni livello di cartelle.

Partition Root Path (Percorso radice partizione)

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.

Nel caso di un percorso di origine con carattere jolly, la sintassi è la seguente:

/data/sales/20??/**/*.csv

È possibile specificare "da" come:

/data/sales

Ed è possibile specificare "a" come:

/backup/priorSales

In questo caso, tutti i file con origine 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.

Filtro in base all'ultima modifica: è possibile filtrare i file da elaborare specificando un intervallo di date relative all'ultima modifica. Tutti i valori di data/ora sono indicati nel 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.

Screenshot che mostra l'opzione Abilita Change Data Capture.

Proprietà sink

Nella trasformazione sink è possibile scrivere in un contenitore oppure in una cartella in Archiviazione BLOB di Azure. Usare la scheda Impostazioni per gestire la modalità di scrittura dei file.

Opzioni sink

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. Ad esempio, loans[n].csv crea 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 viene 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 alle dimensioni del nodo. Questa opzione non è consigliata per set di dati di grandi dimensioni.

Racchiudi tutto tra virgolette: determina se racchiudere tutti i valori tra virgolette.

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. È consigliabile usare il nuovo modello menzionato in precedenza. 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 AzureBlob.
folderPath Percorso del contenitore e della cartella nell'archiviazione BLOB.

Un filtro con caratteri jolly è supportato per il percorso escluso il nome del contenitore. 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 della cartella include caratteri jolly o tale carattere di escape.

Ad esempio: myblobcontainer/myblobfolder/. Vedere altri esempi in Esempi di filtro file e cartelle.
Sì per l'attività Copy o Lookup, No per l'attività GetMetadata
fileName Nome o filtro con caratteri jolly per i BLOB nel valore folderPath specificato. Se non si specifica alcun valore per questa proprietà, il set di dati punta a tutti i BLOB nella cartella.

Per il 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 applicare una sequenza di escape se il nome del file include caratteri jolly o tale carattere di escape.

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 BLOB con il modello seguente: "Data.[GUID ID esecuzione attività].[GUID se FlattenHierarchy].[formato se configurato].[compressione se configurata]". Un esempio è "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz".

Se si copia da un'origine tabulare usando un nome di tabella anziché una query, il modello per il nome è [table name].[format].[compression if configured]. Ad esempio: "Tabella.csv".
No
modifiedDatetimeStart I file vengono filtrati in base all'attributo seguente: ultima modifica. I file verranno selezionati se l'orario dell'ultima modifica è successivo o uguale alle modifiedDatetimeStart e precedente alle modifiedDatetimeEnd. L'ora viene applicata in base al fuso orario UTC nel formato "2018-12-01T05:00:00Z".

Tenere presente che l'abilitazione di questa impostazione influisce sulle prestazioni complessive dello spostamento dei dati 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, verranno selezionati i file il cui attributo di ultima modifica è maggiore o uguale al valore datetime. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL, vengono selezionati i file il cui attributo di ultima modifica è minore del valore datetime.
No
modifiedDatetimeEnd I file vengono filtrati in base all'attributo dell'ultima modifica. I file verranno selezionati se l'orario dell'ultima modifica è successivo o uguale alle modifiedDatetimeStart e precedente alle modifiedDatetimeEnd. L'ora viene applicata in base al fuso orario UTC nel formato "2018-12-01T05:00:00Z".

Tenere presente che l'abilitazione di questa impostazione influisce sulle prestazioni complessive dello spostamento dei dati 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, verranno selezionati i file il cui attributo di ultima modifica è maggiore o uguale al valore datetime. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL, vengono selezionati i file il cui attributo di ultima modifica è 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 e ZipDeflate.
I livelli supportati sono Ottimale e Più veloce.
No

Suggerimento

Per copiare tutti i BLOB in una cartella, specificare solo folderPath.
Per copiare un singolo BLOB con un determinato nome, specificare folderPath per la parte della cartella e fileName per il nome del file.
Per copiare un sottoinsieme di BLOB in una cartella, specificare folderPath per il percorso della cartella e fileName con un filtro con caratteri jolly.

Esempio:

{
    "name": "AzureBlobDataset",
    "properties": {
        "type": "AzureBlob",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "mycontainer/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à Copy legacy

Proprietà Descrizione Richiesto
type La proprietà type dell'origine dell'attività Copy deve essere impostata su BlobSource.
recursive Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata. Quando recursive è impostata su true e il sink è un archivio basato su file, una cartella o una sottocartella vuota non viene copiata né creata nel sink.
I valori consentiti sono: true (impostazione predefinita) 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": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure Blob input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Modello di sink dell'attività Copy legacy

Proprietà Descrizione Richiesto
type La proprietà type del sink dell'attività Copy deve essere impostata su BlobSink.
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 viene specificato il nome del file o del BLOB , 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": "CopyToBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure Blob output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "BlobSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

Change Data Capture

Azure Data Factory può ottenere file nuovi o modificati solo da Archiviazione BLOB di Azure 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. Per informazioni dettagliate, vedere Change Data Capture.

Per un elenco degli archivi dati supportati dall'attività Copy come origini e sink, vedere Archivi dati supportati.