Dela via


Kopiera data från Azure Storage-blobar till Azure Data Lake Storage Gen1

Data Lake Storage Gen1 innehåller ett kommandoradsverktyg, AdlCopy, för att kopiera data från följande källor:

  • Från Azure Storage-blobar till Data Lake Storage Gen1. Du kan inte använda AdlCopy för att kopiera data från Data Lake Storage Gen1 till Azure Storage-blobar.
  • Mellan två Data Lake Storage Gen1 konton.

Du kan också använda AdlCopy-verktyget i två olika lägen:

  • Fristående, där verktyget använder Data Lake Storage Gen1 resurser för att utföra uppgiften.
  • Med hjälp av ett Data Lake Analytics konto, där de enheter som är tilldelade till ditt Data Lake Analytics-konto används för att utföra kopieringsåtgärden. Du kanske vill använda det här alternativet när du vill utföra kopieringsuppgifterna på ett förutsägbart sätt.

Förutsättningar

Innan du påbörjar den här artikeln måste du ha:

Syntax för AdlCopy-verktyget

Använd följande syntax för att arbeta med AdlCopy-verktyget

AdlCopy /Source <Blob or Data Lake Storage Gen1 source> /Dest <Data Lake Storage Gen1 destination> /SourceKey <Key for Blob account> /Account <Data Lake Analytics account> /Units <Number of Analytics units> /Pattern

Parametrarna i syntaxen beskrivs nedan:

Alternativ Beskrivning
Källa Anger platsen för källdata i Azure Storage-bloben. Källan kan vara en blobcontainer, en blob eller ett annat Data Lake Storage Gen1 konto.
Dest Anger Data Lake Storage Gen1 mål att kopiera till.
SourceKey Anger lagringsåtkomstnyckeln för Azure Storage-blobkällan. Detta krävs endast om källan är en blobcontainer eller en blob.
Konto Valfritt. Använd det här om du vill använda Azure Data Lake Analytics-kontot för att köra kopieringsjobbet. Om du använder alternativet /Account i syntaxen men inte anger ett Data Lake Analytics konto använder AdlCopy ett standardkonto för att köra jobbet. Om du använder det här alternativet måste du också lägga till källan (Azure Storage Blob) och målet (Azure Data Lake Storage Gen1) som datakällor för ditt Data Lake Analytics-konto.
Enheter Anger antalet Data Lake Analytics enheter som ska användas för kopieringsjobbet. Det här alternativet är obligatoriskt om du använder alternativet /Account för att ange Data Lake Analytics-kontot.
Mönster Anger ett regex-mönster som anger vilka blobar eller filer som ska kopieras. AdlCopy använder skiftlägeskänslig matchning. Standardmönstret när inget mönster anges är att kopiera alla objekt. Det går inte att ange flera filmönster.

Använda AdlCopy (som fristående) för att kopiera data från en Azure Storage-blob

  1. Öppna en kommandotolk och navigera till katalogen där AdlCopy är installerat, vanligtvis %HOMEPATH%\Documents\adlcopy.

  2. Kör följande kommando för att kopiera en specifik blob från källcontainern till en Data Lake Storage Gen1 mapp:

    AdlCopy /source https://<source_account>.blob.core.windows.net/<source_container>/<blob name> /dest swebhdfs://<dest_adlsg1_account>.azuredatalakestore.net/<dest_folder>/ /sourcekey <storage_account_key_for_storage_container>
    

    Exempel:

    AdlCopy /source https://mystorage.blob.core.windows.net/mycluster/HdiSamples/HdiSamples/WebsiteLogSampleData/SampleLog/909f2b.log /dest swebhdfs://mydatalakestorage.azuredatalakestore.net/mynewfolder/ /sourcekey uJUfvD6cEvhfLoBae2yyQf8t9/BpbWZ4XoYj4kAS5Jf40pZaMNf0q6a8yqTxktwVgRED4vPHeh/50iS9atS5LQ==
    

    Anteckning

    Syntaxen ovan anger vilken fil som ska kopieras till en mapp i Data Lake Storage Gen1-kontot. AdlCopy-verktyget skapar en mapp om det angivna mappnamnet inte finns.

    Du uppmanas att ange autentiseringsuppgifterna för den Azure-prenumeration som du har ditt Data Lake Storage Gen1 konto under. Du ser utdata som liknar följande:

    Initializing Copy.
    Copy Started.
    100% data copied.
    Finishing Copy.
    Copy Completed. 1 file copied.
    
  3. Du kan också kopiera alla blobar från en container till Data Lake Storage Gen1-kontot med följande kommando:

    AdlCopy /source https://<source_account>.blob.core.windows.net/<source_container>/ /dest swebhdfs://<dest_adlsg1_account>.azuredatalakestore.net/<dest_folder>/ /sourcekey <storage_account_key_for_storage_container>  
    

    Exempel:

    AdlCopy /Source https://mystorage.blob.core.windows.net/mycluster/example/data/gutenberg/ /dest adl://mydatalakestorage.azuredatalakestore.net/mynewfolder/ /sourcekey uJUfvD6cEvhfLoBae2yyQf8t9/BpbWZ4XoYj4kAS5Jf40pZaMNf0q6a8yqTxktwVgRED4vPHeh/50iS9atS5LQ==
    

Saker att tänka på gällande prestanda

Om du kopierar från ett Azure Blob Storage konto kan du begränsas under kopieringen på bloblagringssidan. Detta försämrar kopieringsjobbets prestanda. Mer information om gränserna för Azure Blob Storage finns i Azure Storage-gränser för Azure-prenumerationer och tjänstbegränsningar.

Använda AdlCopy (som fristående) för att kopiera data från ett annat Data Lake Storage Gen1 konto

Du kan också använda AdlCopy för att kopiera data mellan två Data Lake Storage Gen1 konton.

  1. Öppna en kommandotolk och navigera till katalogen där AdlCopy är installerat, vanligtvis %HOMEPATH%\Documents\adlcopy.

  2. Kör följande kommando för att kopiera en specifik fil från ett Data Lake Storage Gen1 konto till ett annat.

    AdlCopy /Source adl://<source_adlsg1_account>.azuredatalakestore.net/<path_to_file> /dest adl://<dest_adlsg1_account>.azuredatalakestore.net/<path>/
    

    Exempel:

    AdlCopy /Source adl://mydatastorage.azuredatalakestore.net/mynewfolder/909f2b.log /dest adl://mynewdatalakestorage.azuredatalakestore.net/mynewfolder/
    

    Anteckning

    Syntaxen ovan anger vilken fil som ska kopieras till en mapp i målkontot Data Lake Storage Gen1. AdlCopy-verktyget skapar en mapp om det angivna mappnamnet inte finns.

    Du uppmanas att ange autentiseringsuppgifterna för den Azure-prenumeration som du har ditt Data Lake Storage Gen1 konto under. Du ser utdata som liknar följande:

    Initializing Copy.
    Copy Started.|
    100% data copied.
    Finishing Copy.
    Copy Completed. 1 file copied.
    
  3. Följande kommando kopierar alla filer från en specifik mapp i källkontot Data Lake Storage Gen1 till en mapp i Data Lake Storage Gen1 målkontot.

    AdlCopy /Source adl://mydatastorage.azuredatalakestore.net/mynewfolder/ /dest adl://mynewdatalakestorage.azuredatalakestore.net/mynewfolder/
    

Saker att tänka på gällande prestanda

När du använder AdlCopy som ett fristående verktyg körs kopian på delade, Azure-hanterade resurser. Vilken prestanda du kan få i den här miljön beror på systembelastningen och tillgängliga resurser. Det här läget används bäst för små överföringar på ad hoc-basis. Inga parametrar behöver justeras när du använder AdlCopy som ett fristående verktyg.

Använda AdlCopy (med Data Lake Analytics konto) för att kopiera data

Du kan också använda ditt Data Lake Analytics-konto för att köra AdlCopy-jobbet för att kopiera data från Azure Storage-blobar till Data Lake Storage Gen1. Du använder vanligtvis det här alternativet när data som ska flyttas ligger i intervallet gigabyte och terabyte, och du vill ha bättre och förutsägbart prestandagenomflöde.

Om du vill använda ditt Data Lake Analytics-konto med AdlCopy för att kopiera från en Azure Storage-blob måste källan (Azure Storage Blob) läggas till som en datakälla för ditt Data Lake Analytics-konto. Anvisningar om hur du lägger till ytterligare datakällor i ditt Data Lake Analytics-konto finns i Hantera Data Lake Analytics-kontodatakällor.

Anteckning

Om du kopierar från ett Azure Data Lake Storage Gen1-konto som källa med ett Data Lake Analytics-konto behöver du inte associera Data Lake Storage Gen1-kontot med Data Lake Analytics-kontot. Kravet på att associera källarkivet med Data Lake Analytics-kontot är endast när källan är ett Azure Storage-konto.

Kör följande kommando för att kopiera från en Azure Storage-blob till ett Data Lake Storage Gen1 konto med hjälp av Data Lake Analytics konto:

AdlCopy /source https://<source_account>.blob.core.windows.net/<source_container>/<blob name> /dest swebhdfs://<dest_adlsg1_account>.azuredatalakestore.net/<dest_folder>/ /sourcekey <storage_account_key_for_storage_container> /Account <data_lake_analytics_account> /Units <number_of_data_lake_analytics_units_to_be_used>

Exempel:

AdlCopy /Source https://mystorage.blob.core.windows.net/mycluster/example/data/gutenberg/ /dest swebhdfs://mydatalakestorage.azuredatalakestore.net/mynewfolder/ /sourcekey uJUfvD6cEvhfLoBae2yyQf8t9/BpbWZ4XoYj4kAS5Jf40pZaMNf0q6a8yqTxktwVgRED4vPHeh/50iS9atS5LQ== /Account mydatalakeanalyticaccount /Units 2

På samma sätt kör du följande kommando för att kopiera alla filer från en specifik mapp i källkontot Data Lake Storage Gen1 till en mapp i målkontot Data Lake Storage Gen1 med hjälp av Data Lake Analytics konto:

AdlCopy /Source adl://mysourcedatalakestorage.azuredatalakestore.net/mynewfolder/ /dest adl://mydestdatastorage.azuredatalakestore.net/mynewfolder/ /Account mydatalakeanalyticaccount /Units 2

Saker att tänka på gällande prestanda

När du kopierar data i intervallet terabyte ger användning av AdlCopy med ditt eget Azure Data Lake Analytics-konto bättre och mer förutsägbar prestanda. Parametern som ska justeras är antalet Azure Data Lake Analytics-enheter som ska användas för kopieringsjobbet. Om du ökar antalet enheter ökar kopieringsjobbets prestanda. Varje fil som ska kopieras kan använda högst en enhet. Om du anger fler enheter än antalet filer som kopieras ökar inte prestandan.

Använda AdlCopy för att kopiera data med mönstermatchning

I det här avsnittet får du lära dig hur du använder AdlCopy för att kopiera data från en källa (i vårt exempel nedan använder vi Azure Storage Blob) till ett mål Data Lake Storage Gen1 konto med hjälp av mönstermatchning. Du kan till exempel använda stegen nedan för att kopiera alla filer med .csv-tillägget från källbloben till målet.

  1. Öppna en kommandotolk och navigera till katalogen där AdlCopy är installerat, vanligtvis %HOMEPATH%\Documents\adlcopy.

  2. Kör följande kommando för att kopiera alla filer med *.csv-tillägget från en specifik blob från källcontainern till en Data Lake Storage Gen1 mapp:

    AdlCopy /source https://<source_account>.blob.core.windows.net/<source_container>/<blob name> /dest swebhdfs://<dest_adlsg1_account>.azuredatalakestore.net/<dest_folder>/ /sourcekey <storage_account_key_for_storage_container> /Pattern *.csv
    

    Exempel:

    AdlCopy /source https://mystorage.blob.core.windows.net/mycluster/HdiSamples/HdiSamples/FoodInspectionData/ /dest adl://mydatalakestorage.azuredatalakestore.net/mynewfolder/ /sourcekey uJUfvD6cEvhfLoBae2yyQf8t9/BpbWZ4XoYj4kAS5Jf40pZaMNf0q6a8yqTxktwVgRED4vPHeh/50iS9atS5LQ== /Pattern *.csv
    

Fakturering

  • Om du använder AdlCopy-verktyget som fristående debiteras du för utgående kostnader för att flytta data, om Azure Storage-källkontot inte finns i samma region som Data Lake Storage Gen1-kontot.
  • Om du använder AdlCopy-verktyget med ditt Data Lake Analytics-konto gäller standardavgifterna för Data Lake Analytics fakturering.

Att tänka på när du använder AdlCopy

  • AdlCopy (för version 1.0.5) stöder kopiering av data från källor som tillsammans har fler än tusentals filer och mappar. Men om du får problem med att kopiera en stor datauppsättning kan du distribuera filerna/mapparna till olika undermappar och använda sökvägen till dessa undermappar som källa i stället.

Prestandaöverväganden vid användning av AdlCopy

AdlCopy stöder kopiering av data som innehåller tusentals filer och mappar. Men om du får problem med att kopiera en stor datauppsättning kan du distribuera filerna/mapparna till mindre undermappar. AdlCopy har skapats för ad hoc-kopior. Om du försöker kopiera data regelbundet bör du överväga att använda Azure Data Factory som ger fullständig hantering av kopieringsåtgärderna.

Viktig information

  • 1.0.13 – Om du kopierar data till samma Azure Data Lake Storage Gen1-konto över flera adlcopy-kommandon behöver du inte ange dina autentiseringsuppgifter igen för varje körning längre. Adlcopy cachelagrar nu informationen över flera körningar.

Nästa steg