Usare il servizio Importazione/Esportazione di Microsoft Azure per la copia offline dei dati in Data Lake StoreUse the Azure Import/Export service for offline copy of data to Data Lake Store

Questo articolo contiene informazioni su come copiare set di dati di grandi dimensioni (> 200 GB) in Azure Data Lake Store usando metodi di copia offline, ad esempio il servizio Importazione/Esportazione di Azure.In this article, you'll learn how to copy huge data sets (>200 GB) into an Azure Data Lake Store by using offline copy methods, like the Azure Import/Export service. In particolare, il file usato come esempio in questo articolo ha una dimensione di 339.420.860.416 byte, vale a dire circa 319 GB sul disco.Specifically, the file used as an example in this article is 339,420,860,416 bytes, or about 319 GB on disk. Chiameremo questo file 319GB.tsv.Let's call this file 319GB.tsv.

Il servizio Importazione/Esportazione di Azure consente di trasferire in modo sicuro grandi quantità di dati nell'archiviazione BLOB di Azure attraverso la spedizione delle unità disco rigido a un data center di Azure.The Azure Import/Export service helps you to transfer large amounts of data more securely to Azure Blob storage by shipping hard disk drives to an Azure datacenter.

PrerequisitiPrerequisites

Per eseguire le procedure descritte è necessario:Before you begin, you must have the following:

Preparazione dei datiPreparing the data

Prima di usare il servizio di importazione/esportazione, è necessario suddividere il file di dati da trasferire in copie di dimensioni inferiori a 200 GB.Before using the Import/Export service, break the data file to be transferred into copies that are less than 200 GB in size. Lo strumento di importazione non funziona con file di dimensioni superiori a 200 GB.The import tool does not work with files greater than 200 GB. In questa esercitazione il file viene suddiviso in blocchi di 100 GB.In this tutorial, we split the file into chunks of 100 GB each. A tale scopo è possibile usare Cygwin.You can do this by using Cygwin. Cygwin supporta i comandi di Linux.Cygwin supports Linux commands. In questo caso usare il comando seguente:In this case, use the following command:

split -b 100m 319GB.tsv

L'operazione di suddivisione crea file con i nomi riportati di seguito.The split operation creates files with the following names.

319GB.tsv-part-aa

319GB.tsv-part-ab

319GB.tsv-part-ac

319GB.tsv-part-ad

Preparare i dischi con i datiGet disks ready with data

Per preparare le unità disco rigido, seguire le istruzioni in Usare il servizio Importazione/Esportazione di Azure, sezione Preparare le unità.Follow the instructions in Using the Azure Import/Export service (under the Prepare your drives section) to prepare your hard drives. Di seguito è riportata la sequenza generale:Here's the overall sequence:

  1. Procurarsi un disco rigido che soddisfi i requisiti per l'uso con il servizio di Importazione/Esportazione di Azure.Procure a hard disk that meets the requirement to be used for the Azure Import/Export service.
  2. Identificare un account di archiviazione di Azure in cui verranno copiati i dati dopo la spedizione al data center di Azure.Identify an Azure storage account where the data will be copied after it is shipped to the Azure datacenter.
  3. Usare lo strumento di importazione/esportazione di Azure, un'utilità della riga di comando.Use the Azure Import/Export Tool, a command-line utility. Di seguito è riportato un frammento di codice di esempio che indica come usare lo strumento.Here's a sample snippet that shows how to use the tool.

    WAImportExport PrepImport /sk:<StorageAccountKey> /t: <TargetDriveLetter> /format /encrypt /logdir:e:\myexportimportjob\logdir /j:e:\myexportimportjob\journal1.jrn /id:myexportimportjob /srcdir:F:\demo\ExImContainer /dstdir:importcontainer/vf1/
    

    Per altri frammenti di codice di esempio, vedere Usare il servizio Importazione/Esportazione di Azure.See Using the Azure Import/Export service for more sample snippets.

  4. Il comando precedente crea un file journal nel percorso specificato.The preceding command creates a journal file at the specified location. Usare questo file journal per creare un processo di importazione dal portale di Azure.Use this journal file to create an import job from the Azure portal.

Creare un processo di importazioneCreate an import job

È ora possibile creare un processo di importazione usando le istruzioni in Usare il servizio Importazione/Esportazione di Azure, sezione Creare il processo di importazione.You can now create an import job by using the instructions in Using the Azure Import/Export service (under the Create the Import job section). Per questo processo di importazione fornire, oltre ad altri dettagli, anche il file journal creato durante la preparazione delle unità disco.For this import job, with other details, also provide the journal file created while preparing the disk drives.

Spedire fisicamente i dischiPhysically ship the disks

A questo punto è possibile spedire fisicamente i dischi a un data center di Azure,You can now physically ship the disks to an Azure datacenter. dove i dati verranno copiati nei BLOB di Archiviazione di Azure specificato durante la creazione del processo di importazione.There, the data is copied over to the Azure Storage blobs you provided while creating the import job. Inoltre, se durante la creazione del processo si è scelto di inserire le informazioni di rilevamento in un secondo momento, è possibile tornare al processo di importazione e aggiornare il numero di tracciabilità.Also, while creating the job, if you opted to provide the tracking information later, you can now go back to your import job and update the tracking number.

Copiare i dati dai BLOB di Archiviazione di Azure in Azure Data Lake StoreCopy data from Azure Storage blobs to Azure Data Lake Store

Completato il processo di importazione, è possibile verificare se i dati sono disponibili nei BLOB di Archiviazione di Azure specificati.After the status of the import job shows that it's completed, you can verify whether the data is available in the Azure Storage blobs you had specified. È quindi possibile usare diversi metodi per trasferire i dati dai BLOB ad Azure Data Lake Store.You can then use a variety of methods to move that data from the blobs to Azure Data Lake Store. Per tutte le opzioni disponibili per il caricamento di dati, vedere Inserire i dati in Archivio Data Lake.For all the available options for uploading data, see Ingesting data into Data Lake Store.

In questa sezione sono riportate le definizioni JSON che è possibile usare per creare una pipeline di Azure Data Factory per la copia dei dati.In this section, we provide you with the JSON definitions that you can use to create an Azure Data Factory pipeline for copying data. È possibile usare queste definizioni JSON dal portale di Azure, Visual Studio o Azure PowerShell.You can use these JSON definitions from the Azure portal, or Visual Studio, or Azure PowerShell.

Servizio collegato all'origine (BLOB di Archiviazione di Azure)Source linked service (Azure Storage blob)

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

Servizio collegato alla destinazione (Azure Data Lake Store)Target linked service (Azure Data Lake Store)

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "description": "",
        "typeProperties": {
            "authorization": "<Click 'Authorize' to allow this data factory and the activities it runs to access this Data Lake Store with your access rights>",
            "dataLakeStoreUri": "https://<adls_account_name>.azuredatalakestore.net/webhdfs/v1",
            "sessionId": "<OAuth session id from the OAuth authorization session. Each session id is unique and may only be used once>"
        }
    }
}

Set di dati di inputInput data set

{
    "name": "InputDataSet",
    "properties": {
        "published": false,
        "type": "AzureBlob",
        "linkedServiceName": "AzureStorageLinkedService",
        "typeProperties": {
            "folderPath": "importcontainer/vf1/"
        },
        "availability": {
            "frequency": "Hour",
            "interval": 1
        },
        "external": true,
        "policy": {}
    }
}

Set di dati di outputOutput data set

{
"name": "OutputDataSet",
"properties": {
  "published": false,
  "type": "AzureDataLakeStore",
  "linkedServiceName": "AzureDataLakeStoreLinkedService",
  "typeProperties": {
    "folderPath": "/importeddatafeb8job/"
    },
  "availability": {
    "frequency": "Hour",
    "interval": 1
    }
  }
}

Pipeline (attività di copia)Pipeline (copy activity)

{
    "name": "CopyImportedData",
    "properties": {
        "description": "Pipeline with copy activity",
        "activities": [
            {
                "type": "Copy",
                "typeProperties": {
                    "source": {
                        "type": "BlobSource"
                    },
                    "sink": {
                        "type": "AzureDataLakeStoreSink",
                        "copyBehavior": "PreserveHierarchy",
                        "writeBatchSize": 0,
                        "writeBatchTimeout": "00:00:00"
                    }
                },
                "inputs": [
                    {
                        "name": "InputDataSet"
                    }
                ],
                "outputs": [
                    {
                        "name": "OutputDataSet"
                    }
                ],
                "policy": {
                    "timeout": "01:00:00",
                    "concurrency": 1
                },
                "scheduler": {
                    "frequency": "Hour",
                    "interval": 1
                },
                "name": "AzureBlobtoDataLake",
                "description": "Copy Activity"
            }
        ],
        "start": "2016-02-08T22:00:00Z",
        "end": "2016-02-08T23:00:00Z",
        "isPaused": false,
        "pipelineMode": "Scheduled"
    }
}

Per altre informazioni, vedere l'articolo sullo spostamento dei dati dal BLOB di Archiviazione di Azure ad Azure Data Lake Store con Azure Data Factory.For more information, see Move data from Azure Storage blob to Azure Data Lake Store using Azure Data Factory.

Ricostruire i file di dati in Azure Data Lake StoreReconstruct the data files in Azure Data Lake Store

Il file originale da 319 GB è stato suddiviso in file di dimensioni minori, in modo che possano essere trasferiti usando il servizio di Importazione/Esportazione di Azure.We started with a file that was 319 GB, and broke it down into files of smaller size so that it could be transferred by using the Azure Import/Export service. Ora che i dati sono in Azure Data Lake Store, è possibile riportare il file alla dimensione originale.Now that the data is in Azure Data Lake Store, we can reconstruct the file to its original size. A tale scopo, è possibile usare i cmdlet di Azure PowerShell seguenti.You can use the following Azure PowerShell cmldts to do so.

# Login to our account
Login-AzureRmAccount

# List your subscriptions
Get-AzureRmSubscription

# Switch to the subscription you want to work with
Set-AzureRmContext –SubscriptionId
Register-AzureRmResourceProvider -ProviderNamespace "Microsoft.DataLakeStore"

# Join  the files
Join-AzureRmDataLakeStoreItem -AccountName "<adls_account_name" -Paths "/importeddatafeb8job/319GB.tsv-part-aa","/importeddatafeb8job/319GB.tsv-part-ab", "/importeddatafeb8job/319GB.tsv-part-ac", "/importeddatafeb8job/319GB.tsv-part-ad" -Destination "/importeddatafeb8job/MergedFile.csv”

Passaggi successiviNext steps