Copiare dati da e in Data Lake Storage di 1° generazione usando Data FactoryCopy data to and from Data Lake Storage Gen1 by using Data Factory

Nota

Le informazioni di questo articolo sono valide per la versione 1 di Data Factory.This article applies to version 1 of Data Factory. Se si usa la versione corrente del servizio Data Factory, vedere Connettore di Azure Data Lake Storage di 1° generazione nella versione 2.If you are using the current version of the Data Factory service, see Azure Data Lake Storage Gen1 connector in V2.

Questo articolo illustra come usare l'attività di copia in Azure Data Factory per spostare dati da e in Azure Data Lake Storage di 1° generazione (noto precedentemente come Azure Data Lake Store).This article explains how to use Copy Activity in Azure Data Factory to move data to and from Azure Data Lake Storage Gen1 (previously known as Azure Data Lake Store). Si basa sull'articolo relativo alle attività di spostamento dei dati, una panoramica sullo spostamento dei dati con l'attività di copia.It builds on the Data movement activities article, an overview of data movement with Copy Activity.

Scenari supportatiSupported scenarios

È possibile copiare i dati da Azure Data Lake Store agli archivi di dati seguenti:You can copy data from Azure Data Lake Store to the following data stores:

CategoriaCategory Archivio datiData store
AzureAzure Archivio BLOB di AzureAzure Blob storage
Azure Data Lake Storage Gen1Azure Data Lake Storage Gen1
Azure Cosmos DB (API SQL)Azure Cosmos DB (SQL API)
Database SQL di AzureAzure SQL Database
Azure SQL Data WarehouseAzure SQL Data Warehouse
Indice ricerca cognitiva di AzureAzure Cognitive Search Index
Archivio tabelle di AzureAzure Table storage
DatabaseDatabases SQL ServerSQL Server
OracleOracle
FileFile File systemFile system

È possibile copiare i dati dagli archivi dati seguenti a Azure Data Lake Store:You can copy data from the following data stores to Azure Data Lake Store:

CategoryCategory Archivio datiData store
AzureAzure Archivio BLOB di AzureAzure Blob storage
Azure Cosmos DB (API SQL)Azure Cosmos DB (SQL API)
Azure Data Lake Storage Gen1Azure Data Lake Storage Gen1
Database SQL di AzureAzure SQL Database
Azure SQL Data WarehouseAzure SQL Data Warehouse
Archivio tabelle di AzureAzure Table storage
DatabaseDatabases Amazon RedshiftAmazon Redshift
DB2DB2
MySQLMySQL
OracleOracle
PostgreSQLPostgreSQL
SAP Business WarehouseSAP Business Warehouse
SAP HANASAP HANA
SQL ServerSQL Server
SybaseSybase
TeradataTeradata
NoSQLNoSQL CassandraCassandra
MongoDBMongoDB
FileFile Amazon S3Amazon S3
File systemFile system
FTPFTP
HDFSHDFS
SFTPSFTP
AltroOthers HTTP genericoGeneric HTTP
OData genericoGeneric OData
ODBC genericoGeneric ODBC
SalesforceSalesforce
Tabella Web (tabella da HTML)Web table (table from HTML)

Nota

Creare un account Data Lake Store prima della creazione di una pipeline con l'attività di copia.Create a Data Lake Store account before creating a pipeline with Copy Activity. Per altre informazioni, vedere l'introduzione ad Azure Data Lake Store.For more information, see Get started with Azure Data Lake Store.

Tipi di autenticazione supportatiSupported authentication types

Il connettore Data Lake Store supporta questi tipi di autenticazione:The Data Lake Store connector supports these authentication types:

  • Autenticazione di un'entità servizioService principal authentication
  • Autenticazione basata su credenziali dell'utente (OAuth)User credential (OAuth) authentication

È consigliabile usare l'autenticazione basata su entità servizio, in particolare per una copia di dati pianificata.We recommend that you use service principal authentication, especially for a scheduled data copy. Con l'autenticazione basata sulle credenziali dell'utente può verificarsi la scadenza del token.Token expiration behavior can occur with user credential authentication. Per i dettagli di configurazione, vedere la sezione Proprietà del servizio collegato.For configuration details, see the Linked service properties section.

Inizia oggi stessoGet started

È possibile creare una pipeline con l'attività di copia che sposta i dati da e verso Azure Data Lake Store usando diversi strumenti/API.You can create a pipeline with a copy activity that moves data to/from an Azure Data Lake Store by using different tools/APIs.

Il modo più semplice per creare una pipeline per copiare dati è usare la Copia guidata.The easiest way to create a pipeline to copy data is to use the Copy Wizard. Per un'esercitazione sulla creazione di una pipeline usando la Copia guidata, vedere Esercitazione: creare una pipeline usando la Copia guidata.For a tutorial on creating a pipeline by using the Copy Wizard, see Tutorial: Create a pipeline using Copy Wizard.

È anche possibile usare gli strumenti seguenti per creare una pipeline: Visual Studio, Azure PowerShell, Azure Resource Manager modello, API .NETe API REST.You can also use the following tools to create a pipeline: Visual Studio, Azure PowerShell, Azure Resource Manager template, .NET API, and REST API. Vedere l'esercitazione sull'attività di copia per le istruzioni dettagliate sulla creazione di una pipeline con un'attività di copia.See Copy activity tutorial for step-by-step instructions to create a pipeline with a copy activity.

Se si usano gli strumenti o le API, eseguire la procedura seguente per creare una pipeline che sposta i dati da un archivio dati di origine a un archivio dati sink:Whether you use the tools or APIs, you perform the following steps to create a pipeline that moves data from a source data store to a sink data store:

  1. Creare una data factory.Create a data factory. Una data factory può contenere una o più pipeline.A data factory may contain one or more pipelines.
  2. Creare i servizi collegati per collegare gli archivi di dati di input e output alla data factory.Create linked services to link input and output data stores to your data factory. Ad esempio, se si copiano i dati da un archivio BLOB di Azure in un Azure Data Lake Store, si creano due servizi collegati per collegare l'account di archiviazione di Azure e l' Azure Data Lake Store alla data factory.For example, if you are copying data from an Azure blob storage to an Azure Data Lake Store, you create two linked services to link your Azure storage account and Azure Data Lake store to your data factory. Per le proprietà del servizio collegato specifiche dell'Azure Data Lake Store, vedere la sezione sulle proprietà del servizio collegato.For linked service properties that are specific to Azure Data Lake Store, see linked service properties section.
  3. Creare i set di dati per rappresentare i dati di input e di output per le operazioni di copia.Create datasets to represent input and output data for the copy operation. Nell'esempio citato nel passaggio precedente, si crea un set di dati per specificare un contenitore BLOB e la cartella che contiene i dati di input.In the example mentioned in the last step, you create a dataset to specify the blob container and folder that contains the input data. Si crea anche un altro set di dati per specificare il percorso di cartella e file nel Data Lake Store che contiene i dati copiati dall'archivio BLOB.And, you create another dataset to specify the folder and file path in the Data Lake store that holds the data copied from the blob storage. Per le proprietà del set di dati specifiche per Azure Data Lake Store, vedere la sezione sulle proprietà del set di dati.For dataset properties that are specific to Azure Data Lake Store, see dataset properties section.
  4. Creare una pipeline con un'attività di copia che accetti un set di dati come input e un set di dati come output.Create a pipeline with a copy activity that takes a dataset as an input and a dataset as an output. Nell'esempio indicato in precedenza si usa BlobSource come origine e AzureDataLakeStoreSink come sink per l'attività di copia.In the example mentioned earlier, you use BlobSource as a source and AzureDataLakeStoreSink as a sink for the copy activity. Analogamente, se si effettua la copia da Azure Data Lake Store all'archiviazione BLOB di Azure, si usa AzureDataLakeStoreSource e BlobSink nell'attività di copia.Similarly, if you are copying from Azure Data Lake Store to Azure Blob Storage, you use AzureDataLakeStoreSource and BlobSink in the copy activity. Per le proprietà dell'attività di copia specifiche di Azure Data Lake Store, vedere la sezione sulle proprietà dell'attività di copia.For copy activity properties that are specific to Azure Data Lake Store, see copy activity properties section. Per informazioni dettagliate su come usare un archivio dati come origine o come sink, fare clic sul collegamento nella sezione precedente per l'archivio dati.For details on how to use a data store as a source or a sink, click the link in the previous section for your data store.

Quando si usa la procedura guidata, le definizioni JSON per queste entità di data factory (servizi, set di dati e pipeline collegati) vengono create automaticamente.When you use the wizard, JSON definitions for these Data Factory entities (linked services, datasets, and the pipeline) are automatically created for you. Quando si usano gli strumenti o le API, ad eccezione delle API .NET, usare il formato JSON per definire le entità di data factory.When you use tools/APIs (except .NET API), you define these Data Factory entities by using the JSON format. Per esempi con definizioni JSON per entità di data factory utilizzate per copiare i dati da e verso Azure Data Lake Store, vedere la sezione degli esempi JSON in questo articolo.For samples with JSON definitions for Data Factory entities that are used to copy data to/from an Azure Data Lake Store, see JSON examples section of this article.

Le sezioni seguenti riportano informazioni dettagliate sulle proprietà JSON che vengono usate per definire entità di data factory specifiche di Data Lake Store.The following sections provide details about JSON properties that are used to define Data Factory entities specific to Data Lake Store.

Proprietà del servizio collegatoLinked service properties

Un servizio collegato collega un archivio dati a una data factory.A linked service links a data store to a data factory. Si crea un servizio collegato di tipo AzureDataLakeStore per collegare di dati del Data Lake Store alla data factory.You create a linked service of type AzureDataLakeStore to link your Data Lake Store data to your data factory. La tabella seguente descrive gli elementi JSON specifici dei servizi collegati del Data Lake Store.The following table describes JSON elements specific to Data Lake Store linked services. È possibile scegliere tra l'autenticazione basata su entità servizio e l'autenticazione basata su credenziali utente.You can choose between service principal and user credential authentication.

ProprietàProperty DescriptionDescription ObbligatoriaRequired
typetype La proprietà type deve essere impostata su AzureDataLakeStore.The type property must be set to AzureDataLakeStore. Yes
dataLakeStoreUridataLakeStoreUri Informazioni sull'account Azure Data Lake Store.Information about the Azure Data Lake Store account. Queste informazioni accettano uno dei seguenti formati: https://[accountname].azuredatalakestore.net/webhdfs/v1 o adl://[accountname].azuredatalakestore.net/.This information takes one of the following formats: https://[accountname].azuredatalakestore.net/webhdfs/v1 or adl://[accountname].azuredatalakestore.net/. Yes
subscriptionIdsubscriptionId ID sottoscrizione di Azure a cui l'account Data Lake Store appartiene.Azure subscription ID to which the Data Lake Store account belongs. Richiesto per il sinkRequired for sink
resourceGroupNameresourceGroupName Nome del gruppo di risorse di Azure a cui l'account Data Lake Store appartiene.Azure resource group name to which the Data Lake Store account belongs. Richiesto per il sinkRequired for sink

Per usare l'autenticazione basata su entità servizio, registrare un'entità applicazione in Azure Active Directory (Azure AD) e concedere a tale entità l'accesso a Data Lake Store.To use service principal authentication, register an application entity in Azure Active Directory (Azure AD) and grant it the access to Data Lake Store. Per la procedura dettaglia, vedere Autenticazione da servizio a servizio.For detailed steps, see Service-to-service authentication. Prendere nota dei valori seguenti che si usano per definire il servizio collegato:Make note of the following values, which you use to define the linked service:

  • ID applicazioneApplication ID
  • Chiave applicazioneApplication key
  • ID tenantTenant ID

Importante

Assicurarsi di concedere all'entità servizio un'autorizzazione appropriata in Azure Data Lake Store:Make sure you grant the service principal proper permission in Azure Data Lake Store:

  • Per usare Data Lake Store come origine, concedere almeno l'autorizzazione di accesso ai dati Lettura ed esecuzione per l'elenco e la copia del contenuto di una cartella oppure l'autorizzazione Lettura per la copia di un file singolo.To use Data Lake Store as source, grant at least Read + Execute data access permission to list and copy the contents of a folder, or Read permission to copy a single file. Nessun requisito per il controllo di accesso a livello di account.No requirement on account level access control.
  • Per usare Data Lake Store come sink, concedere almeno l'autorizzazione di accesso ai dati Scrittura ed esecuzione per consentire la creazione di elementi figlio nella cartella.To use Data Lake Store as sink, grant at least Write + Execute data access permission to create child items in the folder. E se si consente la copia tramite runtime di integrazione di Azure (sia origine che sink sono nel cloud) per permettere a Data Factory di rilevare l'area di Data Lake Store, concedere almeno il ruolo Lettore nel controllo di accesso dell'account (IAM).And if you use Azure IR to empower copy (both source and sink are in cloud), in order to let Data Factory detect Data Lake Store's region, grant at least Reader role in account access control (IAM). Se si vuole evitare questo ruolo IAM, nell'attività di copia specificare executionLocation con la posizione di Data Lake Store.If you want to avoid this IAM role, specify executionLocation with the location of your Data Lake Store in copy activity.
  • Se si usa la copia guidata per creare pipeline, concedere almeno il ruolo Lettore nel controllo di accesso dell'account (IAM).If you use Copy Wizard to author pipelines, grant at least Reader role in account access control (IAM). Concedere poi almeno l'autorizzazione Lettura ed Esecuzione alla radice di Data Lake Store ("/") e ai relativi elementi figlio.Also, grant at least Read + Execute permission to your Data Lake Store root ("/") and its children. In caso contrario, potrebbe venire visualizzato il messaggio "Fornite credenziali non valide".Otherwise you might see the message "The credentials provided are invalid."

Usare l'autenticazione basata su entità servizio specificando le proprietà seguenti:Use service principal authentication by specifying the following properties:

ProprietàProperty DescriptionDescription ObbligatoriaRequired
servicePrincipalIdservicePrincipalId Specificare l'ID client dell'applicazione.Specify the application's client ID. Yes
servicePrincipalKeyservicePrincipalKey Specificare la chiave dell'applicazione.Specify the application's key. Yes
tenanttenant Specificare le informazioni sul tenant (nome di dominio o ID tenant) in cui si trova l'applicazione.Specify the tenant information (domain name or tenant ID) under which your application resides. È possibile recuperarlo passando il cursore del mouse sull'angolo superiore destro del portale di Azure.You can retrieve it by hovering the mouse in the upper-right corner of the Azure portal. Yes

Esempio: autenticazione basata su entità servizioExample: Service principal authentication

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": "<service principal key>",
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        }
    }
}

Autenticazione basata su credenziali utenteUser credential authentication

In alternativa, è possibile usare l'autenticazione delle credenziali dell'utente per copiare dati da o in Data Lake Store specificando le proprietà seguenti:Alternatively, you can use user credential authentication to copy from or to Data Lake Store by specifying the following properties:

ProprietàProperty DescriptionDescription ObbligatoriaRequired
authorizationauthorization Fare clic sul pulsante Autorizza nell'editor di Data Factory e immettere le credenziali per assegnare l'URL di autorizzazione generato automaticamente a questa proprietà.Click the Authorize button in the Data Factory Editor and enter your credential that assigns the autogenerated authorization URL to this property. Yes
sessionIdsessionId ID sessione OAuth dalla sessione di autorizzazione oauth.OAuth session ID from the OAuth authorization session. Ogni ID di sessione è univoco e può essere usato solo una volta.Each session ID is unique and can be used only once. Questa impostazione viene generata automaticamente quando si usa l'editor di Data Factory.This setting is automatically generated when you use the Data Factory Editor. Yes

Importante

Assicurarsi di concedere all'utente un'autorizzazione appropriata in Azure Data Lake Store:Make sure you grant the user proper permission in Azure Data Lake Store:

  • Per usare Data Lake Store come origine, concedere almeno l'autorizzazione di accesso ai dati Lettura ed esecuzione per l'elenco e la copia del contenuto di una cartella oppure l'autorizzazione Lettura per la copia di un file singolo.To use Data Lake Store as source, grant at least Read + Execute data access permission to list and copy the contents of a folder, or Read permission to copy a single file. Nessun requisito per il controllo di accesso a livello di account.No requirement on account level access control.
  • Per usare Data Lake Store come sink, concedere almeno l'autorizzazione di accesso ai dati Scrittura ed esecuzione per consentire la creazione di elementi figlio nella cartella.To use Data Lake Store as sink, grant at least Write + Execute data access permission to create child items in the folder. E se si consente la copia tramite runtime di integrazione di Azure (sia origine che sink sono nel cloud) per permettere a Data Factory di rilevare l'area di Data Lake Store, concedere almeno il ruolo Lettore nel controllo di accesso dell'account (IAM).And if you use Azure IR to empower copy (both source and sink are in cloud), in order to let Data Factory detect Data Lake Store's region, grant at least Reader role in account access control (IAM). Se si vuole evitare questo ruolo IAM, nell'attività di copia specificare executionLocation con la posizione di Data Lake Store.If you want to avoid this IAM role, specify executionLocation with the location of your Data Lake Store in copy activity.
  • Se si usa la copia guidata per creare pipeline, concedere almeno il ruolo Lettore nel controllo di accesso dell'account (IAM).If you use Copy Wizard to author pipelines, grant at least Reader role in account access control (IAM). Concedere poi almeno l'autorizzazione Lettura ed Esecuzione alla radice di Data Lake Store ("/") e ai relativi elementi figlio.Also, grant at least Read + Execute permission to your Data Lake Store root ("/") and its children. In caso contrario, potrebbe venire visualizzato il messaggio "Fornite credenziali non valide".Otherwise you might see the message "The credentials provided are invalid."

Esempio: autenticazione basata su credenziali utenteExample: User credential authentication

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "sessionId": "<session ID>",
            "authorization": "<authorization URL>",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        }
    }
}

Scadenza del tokenToken expiration

Il codice di autorizzazione generato con il pulsante Autorizza ha una scadenza.The authorization code that you generate by using the Authorize button expires after a certain amount of time. Il messaggio seguente indica che il token di autenticazione è scaduto:The following message means that the authentication token has expired:

Errore dell'operazione relativa alle credenziali: invalid_grant - AADSTS70002: Errore di convalida delle credenziali.Credential operation error: invalid_grant - AADSTS70002: Error validating credentials. AADSTS70008: La concessione dell'accesso specificata è scaduta o è stata revocata.AADSTS70008: The provided access grant is expired or revoked. ID traccia: d18629e8-af88-43c5-88e3-d8419eb1fca1 ID correlazione: fac30a0c-6be6-4e02-8d69-a776d2ffefd7 Timestamp: 2015-12-15 21-09-31Z.Trace ID: d18629e8-af88-43c5-88e3-d8419eb1fca1 Correlation ID: fac30a0c-6be6-4e02-8d69-a776d2ffefd7 Timestamp: 2015-12-15 21-09-31Z.

La tabella seguente mostra le scadenze di diversi tipi di account utente:The following table shows the expiration times of different types of user accounts:

Tipo di utenteUser type Scade dopoExpires after
Account utente non gestiti da Azure Active Directory (ad esempio, @hotmail.com or @live.com)User accounts not managed by Azure Active Directory (for example, @hotmail.com or @live.com) 12 ore12 hours
Account utente gestiti da Azure Active DirectoryUsers accounts managed by Azure Active Directory 14 giorni dopo l'esecuzione dell'ultima sezione14 days after the last slice run

90 giorni, se viene eseguita una sezione basata su un servizio collegato OAuth almeno una volta ogni 14 giorni90 days, if a slice based on an OAuth-based linked service runs at least once every 14 days

Se si modifica la password prima dell'ora di scadenza del token, il token scade immediatamente.If you change your password before the token expiration time, the token expires immediately. Verrà visualizzato il messaggio indicato in precedenza in questa sezione.You will see the message mentioned earlier in this section.

Alla scadenza del token è possibile ripetere l'autorizzazione dell'account usando il pulsante Autorizza per ridistribuire il servizio collegato.You can reauthorize the account by using the Authorize button when the token expires to redeploy the linked service. È anche possibile generare valori per le proprietà sessionId e authorization a livello di codice usando il codice seguente:You can also generate values for the sessionId and authorization properties programmatically by using the following code:

if (linkedService.Properties.TypeProperties is AzureDataLakeStoreLinkedService ||
    linkedService.Properties.TypeProperties is AzureDataLakeAnalyticsLinkedService)
{
    AuthorizationSessionGetResponse authorizationSession = this.Client.OAuth.Get(this.ResourceGroupName, this.DataFactoryName, linkedService.Properties.Type);

    WindowsFormsWebAuthenticationDialog authenticationDialog = new WindowsFormsWebAuthenticationDialog(null);
    string authorization = authenticationDialog.AuthenticateAAD(authorizationSession.AuthorizationSession.Endpoint, new Uri("urn:ietf:wg:oauth:2.0:oob"));

    AzureDataLakeStoreLinkedService azureDataLakeStoreProperties = linkedService.Properties.TypeProperties as AzureDataLakeStoreLinkedService;
    if (azureDataLakeStoreProperties != null)
    {
        azureDataLakeStoreProperties.SessionId = authorizationSession.AuthorizationSession.SessionId;
        azureDataLakeStoreProperties.Authorization = authorization;
    }

    AzureDataLakeAnalyticsLinkedService azureDataLakeAnalyticsProperties = linkedService.Properties.TypeProperties as AzureDataLakeAnalyticsLinkedService;
    if (azureDataLakeAnalyticsProperties != null)
    {
        azureDataLakeAnalyticsProperties.SessionId = authorizationSession.AuthorizationSession.SessionId;
        azureDataLakeAnalyticsProperties.Authorization = authorization;
    }
}

Per informazioni dettagliate sulle classi di Data Factory usate nel codice, vedere gli argomenti AzureDataLakeStoreLinkedService Class, AzureDataLakeAnalyticsLinkedService Class e AuthorizationSessionGetResponse Class.For details about the Data Factory classes used in the code, see the AzureDataLakeStoreLinkedService Class, AzureDataLakeAnalyticsLinkedService Class, and AuthorizationSessionGetResponse Class topics. Aggiungere un riferimento alla versione 2.9.10826.1824 di Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll per la classe WindowsFormsWebAuthenticationDialog usata nel codice.Add a reference to version 2.9.10826.1824 of Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll for the WindowsFormsWebAuthenticationDialog class used in the code.

Suggerimenti per la risoluzione dei problemiTroubleshooting tips

Sintomo: quando si copiano dati in Azure Data Lake Store, se l'attività di copia non riesce con l'errore seguente:Symptom: When copying data into Azure Data Lake Store, if your copy activity fail with the following error:

Failed to detect the region for Azure Data Lake account {your account name}. Please make sure that the Resource Group name: {resource group name} and subscription ID: {subscription ID} of this Azure Data Lake Store resource are correct.

Causa radice: ci sono due motivi possibili:Root cause: There are 2 possible reasons:

  1. resourceGroupName e/o subscriptionId specificato nel servizio collegato Azure Data Lake Store non è corretto.The resourceGroupName and/or subscriptionId specified in Azure Data Lake Store linked service is incorrect;
  2. L'utente o l'entità servizio non ha l'autorizzazione necessaria.The user or the service principal doesn't have the needed permission.

Risoluzione:Resolution:

  1. Assicurarsi che subscriptionId e resourceGroupName specificati in typeProperties del servizio collegato siano effettivamente quelli a cui appartiene l'account del data lake.Make sure the subscriptionId and resourceGroupName you specify in the linked service typeProperties are indeed the ones that your data lake account belongs to.

  2. Assicurarsi concedere almeno il ruolo Lettore all'utente o all'entità servizio per l'account del data lake.Make sure you grant at least Reader role to the user or service principal on the data lake account. Ecco come fare:Here is how to make it:

    1. Passare alla portale di Azure > account Data Lake StoreGo to the Azure portal -> your Data Lake Store account
    2. Fare clic su Controllo di accesso (IAM) nel pannello di Data Lake StoreClick Access control (IAM) on the blade of the Data Lake Store
    3. Fare clic su Aggiungi assegnazione ruoloClick Add role assignment
    4. Impostare Ruolo come Lettore e selezionare l'utente o l'entità di servizio usata per la copia per concedere l'accessoSet Role as Reader, and select the user or the service principal you use for copy to grant access
  3. Se non si desidera concedere il ruolo lettura all'utente o all'entità servizio, in alternativa è possibile specificare in modo esplicito un percorso di esecuzione nell'attività di copia con il percorso del data Lake Store.If you don't want to grant Reader role to the user or service principal, alternative is to explicitly specify an execution location in copy activity with the location of your Data Lake Store. Esempio:Example:

    {
      "name": "CopyToADLS",
      "type": "Copy",
      ......
      "typeProperties": {
        "source": {
          "type": "<source type>"
        },
        "sink": {
          "type": "AzureDataLakeStoreSink"
        },
        "exeuctionLocation": "West US"
      }
    }
    

Proprietà del set di datiDataset properties

Per specificare un set di dati per rappresentare i dati di input in Data Lake Store, impostare la proprietà type del set di dati su AzureDataLakeStore.To specify a dataset to represent input data in a Data Lake Store, you set the type property of the dataset to AzureDataLakeStore. Impostare la proprietà linkedServiceName del set di dati sul nome del servizio collegato Data Lake Store.Set the linkedServiceName property of the dataset to the name of the Data Lake Store linked service. Per un elenco completo delle proprietà e delle sezioni JSON disponibili per la definizione dei set di dati, vedere l'articolo sulla creazione di set di dati.For a full list of JSON sections and properties available for defining datasets, see the Creating datasets article. Le sezioni di un set di dati in JSON, quali struttura, disponibilità, e criteri, sono simili per tutti i tipi di set di dati (ad esempio database SQL di Azure, BLOB Azure e tabelle di Azure).Sections of a dataset in JSON, such as structure, availability, and policy, are similar for all dataset types (Azure SQL database, Azure blob, and Azure table, for example). La sezione typeProperties è diversa per ogni tipo di set di dati e contiene informazioni quali la posizione e il formato dei dati nell'archivio dati.The typeProperties section is different for each type of dataset and provides information such as location and format of the data in the data store.

La sezione typeProperties per un set di dati di tipo AzureDataLakeStore contiene le proprietà seguenti:The typeProperties section for a dataset of type AzureDataLakeStore contains the following properties:

ProprietàProperty DescriptionDescription ObbligatoriaRequired
folderPathfolderPath Percorso del contenitore e della cartella in Data Lake Store.Path to the container and folder in Data Lake Store. Yes
fileNamefileName Nome del file in Azure Data Lake Store.Name of the file in Azure Data Lake Store. La proprietà fileName è facoltativa e fa distinzione tra maiuscole e minuscole.The fileName property is optional and case-sensitive.

Se si specifica fileName, l'attività (inclusa la copia) viene eseguita sul file specifico.If you specify fileName, the activity (including Copy) works on the specific file.

Quando fileName non è specificato, l'attività di copia include tutti i file in folderPath nel set di dati di input.When fileName is not specified, Copy includes all files in folderPath in the input dataset.

Quando filename non è specificato per un set di dati di output e preserveHierarchy non è specificato nel sink dell'attività, il nome del file generato è nel formato Data._Guid_.txt.When fileName is not specified for an output dataset and preserveHierarchy is not specified in activity sink, the name of the generated file is in the format Data._Guid_.txt. Ad esempio: Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.For example: Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.
NoNo
partitionedBypartitionedBy La proprietà partitionedBy è facoltativa.The partitionedBy property is optional. Può essere utilizzata per specificare un percorso dinamico e un nome file per dati della serie temporale.You can use it to specify a dynamic path and file name for time-series data. Ad esempio, è possibile includere parametri per ogni ora di dati in folderPath.For example, folderPath can be parameterized for every hour of data. Per dettagli ed esempio, vedere Proprietà partitionedBy.For details and examples, see The partitionedBy property. NoNo
formatformat Sono supportati i tipi di formato seguenti: TextFormat, JsonFormat, AvroFormat, OrcFormat e ParquetFormat.The following format types are supported: TextFormat, JsonFormat, AvroFormat, OrcFormat, and ParquetFormat. Impostare la proprietà type in format su uno di questi valori.Set the type property under format to one of these values. Per altre informazioni, vedere le sezioni Formato testo, Formato JSON, Formato Avro, Formato ORC e Formato Parquet nell'articolo Formati di file e di compressione supportati da Azure Data Factory.For more information, see the Text format, JSON format, Avro format, ORC format, and Parquet Format sections in the File and compression formats supported by Azure Data Factory article.

Per copiare i file "così come sono" tra archivi basati su file (copia binaria), è possibile ignorare la sezione format nelle definizioni dei set di dati di input e di output.If you want to copy files "as-is" between file-based stores (binary copy), skip the format section in both input and output dataset definitions.
NoNo
compressioncompression Specificare il tipo e il livello di compressione dei dati.Specify the type and level of compression for the data. I tipi supportati sono GZip, Deflate, BZip2 e ZipDeflate.Supported types are GZip, Deflate, BZip2, and ZipDeflate. I livelli supportati sono Ottimale e Più veloce.Supported levels are Optimal and Fastest. Per altre informazioni, vedere File e formati di compressione supportati da Azure Data Factory.For more information, see File and compression formats supported by Azure Data Factory. NoNo

Proprietà partitionedByThe partitionedBy property

È possibile specificare proprietà folderPath e fileName dinamiche per i dati di una serie temporale con la proprietà partitionedBy, le funzioni di Data Factory e le variabili di sistema.You can specify dynamic folderPath and fileName properties for time-series data with the partitionedBy property, Data Factory functions, and system variables. Per dettagli, vedere l'articolo Azure Data Factory - Funzioni e variabili di sistema.For details, see the Azure Data Factory - functions and system variables article.

Nell'esempio seguente, {Slice} è sostituito con il valore della variabile di sistema SliceStart di Data Factory nel formato specificato (yyyyMMddHH).In the following example, {Slice} is replaced with the value of the Data Factory system variable SliceStart in the format specified (yyyyMMddHH). Il nome SliceStart fa riferimento all'ora di inizio della sezione.The name SliceStart refers to the start time of the slice. La proprietà folderPath è diversa per ogni sezione, come in wikidatagateway/wikisampledataout/2014100103 o wikidatagateway/wikisampledataout/2014100104.The folderPath property is different for each slice, as in wikidatagateway/wikisampledataout/2014100103 or wikidatagateway/wikisampledataout/2014100104.

"folderPath": "wikidatagateway/wikisampledataout/{Slice}",
"partitionedBy":
[
    { "name": "Slice", "value": { "type": "DateTime", "date": "SliceStart", "format": "yyyyMMddHH" } },
],

Nell'esempio seguente, anno, mese, giorno e ora di SliceStart vengono estratti in variabili separate e usati dalle proprietà folderPath e fileName:In the following example, the year, month, day, and time of SliceStart are extracted into separate variables that are used by the folderPath and fileName properties:

"folderPath": "wikidatagateway/wikisampledataout/{Year}/{Month}/{Day}",
"fileName": "{Hour}.csv",
"partitionedBy":
[
    { "name": "Year", "value": { "type": "DateTime", "date": "SliceStart", "format": "yyyy" } },
    { "name": "Month", "value": { "type": "DateTime", "date": "SliceStart", "format": "MM" } },
    { "name": "Day", "value": { "type": "DateTime", "date": "SliceStart", "format": "dd" } },
    { "name": "Hour", "value": { "type": "DateTime", "date": "SliceStart", "format": "hh" } }
],

Per ulteriori dettagli sui set di dati di serie temporali, pianificazione e sezioni, vedere gli articoli Set di dati in Azure Data Factory e Pianificazione ed esecuzione di Data Factory.For more details on time-series datasets, scheduling, and slices, see the Datasets in Azure Data Factory and Data Factory scheduling and execution articles.

Proprietà dell'attività di copiaCopy activity properties

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, fare riferimento all'articolo Creazione di pipeline.For a full list of sections and properties available for defining activities, see the Creating pipelines article. Per tutti i tipi di attività sono disponibili proprietà come nome, descrizione, tabelle di input e output e criteri.Properties such as name, description, input and output tables, and policy are available for all types of activities.

Le proprietà disponibili nella sezione typeProperties dell'attività variano in base al tipo di attività.The properties available in the typeProperties section of an activity vary with each activity type. Per un'attività di copia, variano in base ai tipi di origine e sink.For a copy activity, they vary depending on the types of sources and sinks.

AzureDataLakeStoreSource supporta la proprietà seguente nella sezione typeProperties:AzureDataLakeStoreSource supports the following property in the typeProperties section:

ProprietàProperty DescriptionDescription Valori consentitiAllowed values ObbligatoriaRequired
recursiverecursive Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata.Indicates whether the data is read recursively from the subfolders or only from the specified folder. True (valore predefinito), FalseTrue (default value), False NoNo

AzureDataLakeStoreSource supporta le proprietà seguenti nella sezione typeProperties:AzureDataLakeStoreSink supports the following properties in the typeProperties section:

ProprietàProperty DescriptionDescription Valori consentitiAllowed values ObbligatoriaRequired
copyBehaviorcopyBehavior Specifica il comportamento di copia.Specifies the copy behavior. PreserveHierarchy:: mantiene la gerarchia dei file nella cartella di destinazione.PreserveHierarchy: Preserves the file hierarchy in the target folder. Il percorso relativo del file di origine nella cartella di origine è identico al percorso relativo del file di destinazione nella cartella di destinazione.The relative path of source file to source folder is identical to the relative path of target file to target folder.

FlattenHierarchy: tutti i file della cartella di origine vengono creati nel primo livello della cartella di destinazione.FlattenHierarchy: All files from the source folder are created in the first level of the target folder. I file di destinazione vengono creati con nomi generati automaticamente.The target files are created with autogenerated names.

MergeFiles: unisce tutti i file della cartella di origine in un solo file.MergeFiles: Merges all files from the source folder to one file. Se viene specificato il nome del file o del BLOB , il nome del file unito sarà il nome specificato.If the file or blob name is specified, the merged file name is the specified name. In caso contrario, il nome del file viene generato automaticamente.Otherwise, the file name is autogenerated.
NoNo

esempi ricorsivi e copyBehaviorrecursive and copyBehavior examples

In questa sezione viene descritto il comportamento derivante dell'operazione di copia per diverse combinazioni di valori ricorsivi e copyBehavior.This section describes the resulting behavior of the Copy operation for different combinations of recursive and copyBehavior values.

ricorsivarecursive copyBehaviorcopyBehavior Comportamento risultanteResulting behavior
truetrue preserveHierarchypreserveHierarchy Per una cartella di origine Cartella1 con la struttura seguente:For a source folder Folder1 with the following structure:

Cartella1Folder1
    File1    File1
    File2    File2
    Sottocartella1    Subfolder1
         File3        File3
        File4        File4
         File5        File5

la cartella di destinazione Cartella1 viene creata con la stessa struttura dell'originethe target folder Folder1 is created with the same structure as the source

Cartella1Folder1
    File1    File1
    File2    File2
    Sottocartella1    Subfolder1
         File3        File3
        File4        File4
         File5.        File5.
truetrue flattenHierarchyflattenHierarchy Per una cartella di origine Cartella1 con la struttura seguente:For a source folder Folder1 with the following structure:

Cartella1Folder1
    File1    File1
    File2    File2
    Sottocartella1    Subfolder1
         File3        File3
        File4        File4
         File5        File5

la Cartella1 di destinazione viene creata con la struttura seguente:the target Folder1 is created with the following structure:

Cartella1Folder1
    Nome generato automaticamente per File1    auto-generated name for File1
    nome generato automaticamente per File2    auto-generated name for File2
    nome generato automaticamente per File3    auto-generated name for File3
    nome generato automaticamente per File4    auto-generated name for File4
    nome generato automaticamente per File5    auto-generated name for File5
truetrue mergeFilesmergeFiles Per una cartella di origine Cartella1 con la struttura seguente:For a source folder Folder1 with the following structure:

Cartella1Folder1
    File1    File1
    File2    File2
    Sottocartella1    Subfolder1
         File3        File3
        File4        File4
         File5        File5

la Cartella1 di destinazione viene creata con la struttura seguente:the target Folder1 is created with the following structure:

Cartella1Folder1
    Il contenuto di File1 + File2 + File3 + File4 + File 5 viene unito in un file con nome file generato automaticamente    File1 + File2 + File3 + File4 + File 5 contents are merged into one file with auto-generated file name
falsefalse preserveHierarchypreserveHierarchy Per una cartella di origine Cartella1 con la struttura seguente:For a source folder Folder1 with the following structure:

Cartella1Folder1
    File1    File1
    File2    File2
    Sottocartella1    Subfolder1
         File3        File3
        File4        File4
         File5        File5

la cartella di destinazione Cartella1 viene creata con la struttura seguentethe target folder Folder1 is created with the following structure

Cartella1Folder1
    File1    File1
    File2    File2


Sottocartella1 con File3, File4 e File5 non considerati.Subfolder1 with File3, File4, and File5 are not picked up.
falsefalse flattenHierarchyflattenHierarchy Per una cartella di origine Cartella1 con la struttura seguente:For a source folder Folder1 with the following structure:

Cartella1Folder1
    File1    File1
    File2    File2
    Sottocartella1    Subfolder1
         File3        File3
        File4        File4
         File5        File5

la cartella di destinazione Cartella1 viene creata con la struttura seguentethe target folder Folder1 is created with the following structure

Cartella1Folder1
    Nome generato automaticamente per File1    auto-generated name for File1
    nome generato automaticamente per File2    auto-generated name for File2


Sottocartella1 con File3, File4 e File5 non considerati.Subfolder1 with File3, File4, and File5 are not picked up.
falsefalse mergeFilesmergeFiles Per una cartella di origine Cartella1 con la struttura seguente:For a source folder Folder1 with the following structure:

Cartella1Folder1
    File1    File1
    File2    File2
    Sottocartella1    Subfolder1
         File3        File3
        File4        File4
         File5        File5

la cartella di destinazione Cartella1 viene creata con la struttura seguentethe target folder Folder1 is created with the following structure

Cartella1Folder1
    Il contenuto di File1 + File2 viene unito in un file con un nome file generato automaticamente.    File1 + File2 contents are merged into one file with auto-generated file name. Nome generato automaticamente per File1auto-generated name for File1

Sottocartella1 con File3, File4 e File5 non considerati.Subfolder1 with File3, File4, and File5 are not picked up.

Formati di file e di compressione supportatiSupported file and compression formats

Per i dettagli, vedere l'articolo relativo File e formati di compressione in Azure Data Factory.For details, see the File and compression formats in Azure Data Factory article.

Esempi JSON per la copia dei dati da e in un Data Lake StoreJSON examples for copying data to and from Data Lake Store

Gli esempi seguenti offrono definizioni JSON di esempio.The following examples provide sample JSON definitions. È possibile usare queste definizioni di esempio per creare una pipeline usando Visual Studio o Azure PowerShell.You can use these sample definitions to create a pipeline by using Visual Studio or Azure PowerShell. Gli esempi mostrano come copiare dati da e in un Data Lake Store e un archivio BLOB di Azure.The examples show how to copy data to and from Data Lake Store and Azure Blob storage. Tuttavia, i dati possono essere copiati direttamente da qualsiasi origine a qualunque sink supportato.However, data can be copied directly from any of the sources to any of the supported sinks. Per altre informazioni, vedere la sezione "Archivi dati e formati supportati" nell'articolo Spostare dati con l'attività di copia.For more information, see the section "Supported data stores and formats" in the Move data by using Copy Activity article.

Esempio: Copiare dati da un archivio BLOB di Azure ad Azure Data Lake StoreExample: Copy data from Azure Blob Storage to Azure Data Lake Store

Il codice di esempio di questa sezione mostra:The example code in this section shows:

Gli esempi mostrano come i dati di una serie temporale da un archivio BLOB di Azure vengono copiati in Data Lake Store ogni ora.The examples show how time-series data from Azure Blob Storage is copied to Data Lake Store every hour.

Servizio collegato Archiviazione di AzureAzure Storage linked service

{
  "name": "StorageLinkedService",
  "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
    }
  }
}

Servizio collegato di Azure Data Lake StoreAzure Data Lake Store linked service

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": "<service principal key>",
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        }
    }
}

Nota

Per i dettagli di configurazione, vedere la sezione Proprietà del servizio collegato.For configuration details, see the Linked service properties section.

Set di dati di input del BLOB di AzureAzure blob input dataset

Nell'esempio seguente, i dati vengono prelevati da un nuovo BLOB ogni ora ("frequency": "Hour", "interval": 1).In the following example, data is picked up from a new blob every hour ("frequency": "Hour", "interval": 1). Il percorso della cartella e il nome del file per il BLOB vengono valutati dinamicamente in base all'ora di inizio della sezione in fase di elaborazione.The folder path and file name for the blob are dynamically evaluated based on the start time of the slice that is being processed. Il percorso della cartella usa le parti relative anno, mese e giorno dell'ora di inizio.The folder path uses the year, month, and day portion of the start time. Il nome file usa la parte relativa all'ora dell'ora di inizio.The file name uses the hour portion of the start time. L'impostazione "external": true comunica al servizio Data Factory che la tabella è esterna alla data factory e non è prodotta da un'attività al suo interno.The "external": true setting informs the Data Factory service that the table is external to the data factory and is not produced by an activity in the data factory.

{
  "name": "AzureBlobInput",
  "properties": {
    "type": "AzureBlob",
    "linkedServiceName": "StorageLinkedService",
    "typeProperties": {
      "folderPath": "mycontainer/myfolder/yearno={Year}/monthno={Month}/dayno={Day}",
      "partitionedBy": [
        {
          "name": "Year",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "yyyy"
          }
        },
        {
          "name": "Month",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "MM"
          }
        },
        {
          "name": "Day",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "dd"
          }
        },
        {
          "name": "Hour",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "HH"
          }
        }
      ]
    },
    "external": true,
    "availability": {
      "frequency": "Hour",
      "interval": 1
    },
    "policy": {
      "externalData": {
        "retryInterval": "00:01:00",
        "retryTimeout": "00:10:00",
        "maximumRetry": 3
      }
    }
  }
}

Set di dati di output di Azure Data Lake StoreAzure Data Lake Store output dataset

L'esempio seguente copia i dati in Data Lake Store.The following example copies data to Data Lake Store. I nuovi dati vengono copiati in Data Lake Store ogni ora.New data is copied to Data Lake Store every hour.

{
    "name": "AzureDataLakeStoreOutput",
    "properties": {
        "type": "AzureDataLakeStore",
        "linkedServiceName": "AzureDataLakeStoreLinkedService",
        "typeProperties": {
            "folderPath": "datalake/output/"
        },
        "availability": {
            "frequency": "Hour",
            "interval": 1
        }
    }
}

Attività di copia in una pipeline con un'origine BLOB e un sink Data Lake StoreCopy activity in a pipeline with a blob source and a Data Lake Store sink

Nell'esempio seguente, la pipeline contiene un'attività di copia configurata per usare i set di dati di input e di output.In the following example, the pipeline contains a copy activity that is configured to use the input and output datasets. L'attività di copia è pianificata per essere eseguita ogni ora.The copy activity is scheduled to run every hour. Nella definizione JSON della pipeline, il tipo source è impostato su BlobSource e il tipo sink è impostato su AzureDataLakeStoreSink.In the pipeline JSON definition, the source type is set to BlobSource, and the sink type is set to AzureDataLakeStoreSink.

{
    "name":"SamplePipeline",
    "properties":
    {
        "start":"2014-06-01T18:00:00",
        "end":"2014-06-01T19:00:00",
        "description":"pipeline with copy activity",
        "activities":
        [
            {
                "name": "AzureBlobtoDataLake",
                "description": "Copy Activity",
                "type": "Copy",
                "inputs": [
                    {
                        "name": "AzureBlobInput"
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureDataLakeStoreOutput"
                    }
                ],
                "typeProperties": {
                    "source": {
                        "type": "BlobSource"
                    },
                    "sink": {
                        "type": "AzureDataLakeStoreSink"
                    }
                },
                "scheduler": {
                    "frequency": "Hour",
                    "interval": 1
                },
                "policy": {
                    "concurrency": 1,
                    "executionPriorityOrder": "OldestFirst",
                    "retry": 0,
                    "timeout": "01:00:00"
                }
            }
        ]
    }
}

Esempio: Copiare dati da Azure Data Lake Store a un BLOB di AzureExample: Copy data from Azure Data Lake Store to an Azure blob

Il codice di esempio di questa sezione mostra:The example code in this section shows:

Il codice copia i dati di una serie temporale da Data Lake Store in un archivio BLOB di Azure ogni ora.The code copies time-series data from Data Lake Store to an Azure blob every hour.

Servizio collegato di Azure Data Lake StoreAzure Data Lake Store linked service

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": "<service principal key>",
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
        }
    }
}

Nota

Per i dettagli di configurazione, vedere la sezione Proprietà del servizio collegato.For configuration details, see the Linked service properties section.

Servizio collegato Archiviazione di AzureAzure Storage linked service

{
  "name": "StorageLinkedService",
  "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
    }
  }
}

Set di dati di input di Azure Data LakeAzure Data Lake input dataset

In questo esempio, impostando "external"su true si comunica al servizio Data Factory che la tabella è esterna alla data factory e non è prodotta da un'attività al suo interno.In this example, setting "external" to true informs the Data Factory service that the table is external to the data factory and is not produced by an activity in the data factory.

{
    "name": "AzureDataLakeStoreInput",
    "properties":
    {
        "type": "AzureDataLakeStore",
        "linkedServiceName": "AzureDataLakeStoreLinkedService",
        "typeProperties": {
            "folderPath": "datalake/input/",
            "fileName": "SearchLog.tsv",
            "format": {
                "type": "TextFormat",
                "rowDelimiter": "\n",
                "columnDelimiter": "\t"
            }
        },
        "external": true,
        "availability": {
            "frequency": "Hour",
            "interval": 1
        },
        "policy": {
            "externalData": {
                "retryInterval": "00:01:00",
                "retryTimeout": "00:10:00",
                "maximumRetry": 3
            }
        }
    }
}

Set di dati di output del BLOB di AzureAzure blob output dataset

Nell'esempio seguente, i dati vengono scritti su un nuovo BLOB ogni ora ("frequency": "Hour", "interval": 1).In the following example, data is written to a new blob every hour ("frequency": "Hour", "interval": 1). Il percorso della cartella per il BLOB viene valutato dinamicamente in base all'ora di inizio della sezione in fase di elaborazione.The folder path for the blob is dynamically evaluated based on the start time of the slice that is being processed. Il percorso della cartella usa le parti anno, mese, giorno e ora dell'ora di inizio.The folder path uses the year, month, day, and hours portion of the start time.

{
  "name": "AzureBlobOutput",
  "properties": {
    "type": "AzureBlob",
    "linkedServiceName": "StorageLinkedService",
    "typeProperties": {
      "folderPath": "mycontainer/myfolder/yearno={Year}/monthno={Month}/dayno={Day}/hourno={Hour}",
      "partitionedBy": [
        {
          "name": "Year",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "yyyy"
          }
        },
        {
          "name": "Month",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "MM"
          }
        },
        {
          "name": "Day",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "dd"
          }
        },
        {
          "name": "Hour",
          "value": {
            "type": "DateTime",
            "date": "SliceStart",
            "format": "HH"
          }
        }
      ],
      "format": {
        "type": "TextFormat",
        "columnDelimiter": "\t",
        "rowDelimiter": "\n"
      }
    },
    "availability": {
      "frequency": "Hour",
      "interval": 1
    }
  }
}

Attività di copia in una pipeline con un'origine Azure Data Lake Store e un sink BLOBA copy activity in a pipeline with an Azure Data Lake Store source and a blob sink

Nell'esempio seguente, la pipeline contiene un'attività di copia configurata per usare i set di dati di input e di output.In the following example, the pipeline contains a copy activity that is configured to use the input and output datasets. L'attività di copia è pianificata per essere eseguita ogni ora.The copy activity is scheduled to run every hour. Nella definizione JSON della pipeline, il tipo source è impostato su AzureDataLakeStoreSource e il tipo sink è impostato su BlobSink.In the pipeline JSON definition, the source type is set to AzureDataLakeStoreSource, and the sink type is set to BlobSink.

{
    "name":"SamplePipeline",
    "properties":{
        "start":"2014-06-01T18:00:00",
        "end":"2014-06-01T19:00:00",
        "description":"pipeline for copy activity",
        "activities":[
            {
                "name": "AzureDakeLaketoBlob",
                "description": "copy activity",
                "type": "Copy",
                "inputs": [
                    {
                        "name": "AzureDataLakeStoreInput"
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureBlobOutput"
                    }
                ],
                "typeProperties": {
                    "source": {
                        "type": "AzureDataLakeStoreSource",
                    },
                    "sink": {
                        "type": "BlobSink"
                    }
                },
                "scheduler": {
                    "frequency": "Hour",
                    "interval": 1
                },
                "policy": {
                    "concurrency": 1,
                    "executionPriorityOrder": "OldestFirst",
                    "retry": 0,
                    "timeout": "01:00:00"
                }
            }
        ]
    }
}

Nella definizione dell'attività di copia, è anche possibile mappare le colonne dal set di dati di origine a colonne nel set di dati sink.In the copy activity definition, you can also map columns from the source dataset to columns in the sink dataset. Per altre informazioni, vedere Mapping delle colonne del set di dati in Azure Data Factory.For details, see Mapping dataset columns in Azure Data Factory.

Prestazioni e ottimizzazionePerformance and tuning

Per informazioni sui fattori che incidono sulle prestazioni dell'attività di copia e su come ottimizzarle, vedere l'articolo Guida alle prestazioni dell'attività di copia e all'ottimizzazione.To learn about the factors that affect Copy Activity performance and how to optimize it, see the Copy Activity performance and tuning guide article.