Gegevens kopiëren van Azure Storage-blobs naar Azure Data Lake Storage Gen1
Data Lake Storage Gen1 biedt een opdrachtregelprogramma, AdlCopy, om gegevens uit de volgende bronnen te kopiëren:
- Van Azure Storage-blobs naar Data Lake Storage Gen1. U kunt AdlCopy niet gebruiken om gegevens te kopiëren van Data Lake Storage Gen1 naar Azure Storage-blobs.
- Tussen twee Data Lake Storage Gen1 accounts.
U kunt het hulpprogramma AdlCopy ook in twee verschillende modi gebruiken:
- Zelfstandig, waarbij het hulpprogramma Data Lake Storage Gen1 resources gebruikt om de taak uit te voeren.
- Met behulp van een Data Lake Analytics-account, waarbij de eenheden die zijn toegewezen aan uw Data Lake Analytics-account worden gebruikt om de kopieerbewerking uit te voeren. U kunt deze optie gebruiken als u de kopieertaken op een voorspelbare manier wilt uitvoeren.
Vereisten
Voordat u dit artikel gaat lezen, moet u beschikken over het volgende:
- Een Azure-abonnement. Zie Gratis proefversie van Azure ophalen.
- Azure Storage-blobs-container met enkele gegevens.
- Een Data Lake Storage Gen1-account. Zie Aan de slag met Azure Data Lake Storage Gen1 voor instructies over het maken van een account.
- Data Lake Analytics-account (optioneel): zie Aan de slag met Azure Data Lake Analytics voor instructies over het maken van een Data Lake Analytics-account.
- Het hulpprogramma AdlCopy. Installeer het hulpprogramma AdlCopy.
Syntaxis van het hulpprogramma AdlCopy
Gebruik de volgende syntaxis om te werken met het hulpprogramma AdlCopy
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
De parameters in de syntaxis worden hieronder beschreven:
Optie | Beschrijving |
---|---|
Bron | Hiermee geeft u de locatie van de brongegevens in de Azure Storage-blob. De bron kan een blobcontainer, een blob of een ander Data Lake Storage Gen1-account zijn. |
Dest | Hiermee geeft u de Data Lake Storage Gen1 doel naar te kopiëren. |
SourceKey | Hiermee geeft u de opslagtoegangssleutel voor de Azure Storage-blobbron op. Dit is alleen vereist als de bron een blobcontainer of een blob is. |
Account | Optioneel. Gebruik dit als u azure Data Lake Analytics-account wilt gebruiken om de kopieertaak uit te voeren. Als u de optie /Account in de syntaxis gebruikt, maar geen Data Lake Analytics-account opgeeft, gebruikt AdlCopy een standaardaccount om de taak uit te voeren. Als u deze optie gebruikt, moet u ook de bron (Azure Storage Blob) en het doel (Azure Data Lake Storage Gen1) toevoegen als gegevensbronnen voor uw Data Lake Analytics-account. |
Eenheden | Hiermee geeft u het aantal Data Lake Analytics eenheden dat wordt gebruikt voor de kopieertaak. Deze optie is verplicht als u de optie /Account gebruikt om het Data Lake Analytics account op te geven. |
Patroon | Hiermee geeft u een regex-patroon op dat aangeeft welke blobs of bestanden moeten worden gekopieerd. AdlCopy maakt gebruik van hoofdlettergevoelige overeenkomsten. Het standaardpatroon wanneer er geen patroon is opgegeven, is het kopiëren van alle items. Het opgeven van meerdere bestandspatronen wordt niet ondersteund. |
AdlCopy (zelfstandig) gebruiken om gegevens te kopiëren uit een Azure Storage-blob
Open een opdrachtprompt en navigeer naar de map waarin AdlCopy is geïnstalleerd, meestal
%HOMEPATH%\Documents\adlcopy
.Voer de volgende opdracht uit om een specifieke blob van de broncontainer naar een Data Lake Storage Gen1-map te kopiëren:
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>
Bijvoorbeeld:
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==
Notitie
De bovenstaande syntaxis geeft het bestand op dat moet worden gekopieerd naar een map in het Data Lake Storage Gen1-account. Het hulpprogramma AdlCopy maakt een map als de opgegeven mapnaam niet bestaat.
U wordt gevraagd de referenties in te voeren voor het Azure-abonnement waaronder u uw Data Lake Storage Gen1-account hebt. U ziet een uitvoer die er ongeveer als volgt uitziet:
Initializing Copy. Copy Started. 100% data copied. Finishing Copy. Copy Completed. 1 file copied.
U kunt ook alle blobs van één container naar het Data Lake Storage Gen1-account kopiëren met behulp van de volgende opdracht:
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>
Bijvoorbeeld:
AdlCopy /Source https://mystorage.blob.core.windows.net/mycluster/example/data/gutenberg/ /dest adl://mydatalakestorage.azuredatalakestore.net/mynewfolder/ /sourcekey uJUfvD6cEvhfLoBae2yyQf8t9/BpbWZ4XoYj4kAS5Jf40pZaMNf0q6a8yqTxktwVgRED4vPHeh/50iS9atS5LQ==
Prestatieoverwegingen
Als u kopieert vanuit een Azure Blob Storage-account, wordt u mogelijk beperkt tijdens het kopiëren aan de blobopslagzijde. Hierdoor verslechtert de prestaties van uw kopieertaak. Zie Azure Storage-limieten bij Azure-abonnements- en servicelimieten voor meer informatie over de limieten van Azure Blob Storage.
AdlCopy (als zelfstandig) gebruiken om gegevens te kopiëren uit een ander Data Lake Storage Gen1-account
U kunt AdlCopy ook gebruiken om gegevens te kopiëren tussen twee Data Lake Storage Gen1-accounts.
Open een opdrachtprompt en navigeer naar de map waarin AdlCopy is geïnstalleerd, meestal
%HOMEPATH%\Documents\adlcopy
.Voer de volgende opdracht uit om een specifiek bestand van het ene Data Lake Storage Gen1-account naar het andere te kopiëren.
AdlCopy /Source adl://<source_adlsg1_account>.azuredatalakestore.net/<path_to_file> /dest adl://<dest_adlsg1_account>.azuredatalakestore.net/<path>/
Bijvoorbeeld:
AdlCopy /Source adl://mydatastorage.azuredatalakestore.net/mynewfolder/909f2b.log /dest adl://mynewdatalakestorage.azuredatalakestore.net/mynewfolder/
Notitie
Met de bovenstaande syntaxis wordt het bestand opgegeven dat moet worden gekopieerd naar een map in het doelaccount Data Lake Storage Gen1. Het hulpprogramma AdlCopy maakt een map als de opgegeven mapnaam niet bestaat.
U wordt gevraagd de referenties in te voeren voor het Azure-abonnement waaronder u uw Data Lake Storage Gen1-account hebt. U ziet een uitvoer die er ongeveer als volgt uitziet:
Initializing Copy. Copy Started.| 100% data copied. Finishing Copy. Copy Completed. 1 file copied.
Met de volgende opdracht worden alle bestanden van een specifieke map in het bronaccount Data Lake Storage Gen1 naar een map in het doelaccount Data Lake Storage Gen1 gekopieerd.
AdlCopy /Source adl://mydatastorage.azuredatalakestore.net/mynewfolder/ /dest adl://mynewdatalakestorage.azuredatalakestore.net/mynewfolder/
Prestatieoverwegingen
Wanneer u AdlCopy als zelfstandig hulpprogramma gebruikt, wordt de kopie uitgevoerd op gedeelde, door Azure beheerde resources. De prestaties die u in deze omgeving kunt krijgen, zijn afhankelijk van de systeembelasting en beschikbare resources. Deze modus kan het beste worden gebruikt voor kleine overdrachten op ad-hocbasis. Er hoeven geen parameters te worden afgestemd wanneer u AdlCopy als zelfstandig hulpprogramma gebruikt.
AdlCopy (met Data Lake Analytics-account) gebruiken om gegevens te kopiëren
U kunt ook uw Data Lake Analytics-account gebruiken om de AdlCopy-taak uit te voeren om gegevens uit Azure-opslagblobs te kopiëren naar Data Lake Storage Gen1. U gebruikt deze optie meestal wanneer de gegevens die moeten worden verplaatst zich binnen het bereik van gigabytes en terabytes bevinden en u een betere en voorspelbare doorvoer voor prestaties wilt.
Als u uw Data Lake Analytics-account met AdlCopy wilt gebruiken om te kopiëren vanuit een Azure Storage-blob, moet de bron (Azure Storage Blob) worden toegevoegd als gegevensbron voor uw Data Lake Analytics-account. Zie Gegevensbronnen van Data Lake Analytics account beheren voor instructies voor het toevoegen van aanvullende gegevensbronnen aan uw Data Lake Analytics-account.
Notitie
Als u vanuit een Azure Data Lake Storage Gen1-account als bron kopieert met behulp van een Data Lake Analytics-account, hoeft u het Data Lake Storage Gen1-account niet te koppelen aan het Data Lake Analytics-account. De vereiste om het bronarchief te koppelen aan het Data Lake Analytics-account is alleen als de bron een Azure Storage-account is.
Voer de volgende opdracht uit om met behulp van Data Lake Analytics-account van een Azure Storage-blob naar een Data Lake Storage Gen1-account te kopiëren:
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>
Bijvoorbeeld:
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
Voer op dezelfde manier de volgende opdracht uit om alle bestanden uit een specifieke map in het bronaccount Data Lake Storage Gen1 te kopiëren naar een map in het doelaccount Data Lake Storage Gen1 met behulp van Data Lake Analytics-account:
AdlCopy /Source adl://mysourcedatalakestorage.azuredatalakestore.net/mynewfolder/ /dest adl://mydestdatastorage.azuredatalakestore.net/mynewfolder/ /Account mydatalakeanalyticaccount /Units 2
Prestatieoverwegingen
Wanneer u gegevens in het bereik van terabytes kopieert, biedt het gebruik van AdlCopy met uw eigen Azure Data Lake Analytics-account betere en beter voorspelbare prestaties. De parameter die moet worden afgestemd, is het aantal Azure Data Lake Analytics-eenheden dat moet worden gebruikt voor de kopieertaak. Als u het aantal eenheden verhoogt, worden de prestaties van uw kopieertaak verbeterd. Elk te kopiëren bestand kan maximaal één eenheid gebruiken. Als u meer eenheden opgeeft dan het aantal bestanden dat wordt gekopieerd, worden de prestaties niet verbeterd.
AdlCopy gebruiken om gegevens te kopiëren met behulp van patroonkoppeling
In deze sectie leert u hoe u AdlCopy gebruikt om gegevens uit een bron te kopiëren (in het onderstaande voorbeeld gebruiken we Azure Storage Blob) naar een doel-Data Lake Storage Gen1-account met behulp van patroonkoppeling. U kunt bijvoorbeeld de onderstaande stappen gebruiken om alle bestanden met de extensie .csv van de bron-blob naar het doel te kopiëren.
Open een opdrachtprompt en navigeer naar de map waar AdlCopy is geïnstalleerd, meestal
%HOMEPATH%\Documents\adlcopy
.Voer de volgende opdracht uit om alle bestanden met de extensie *.csv te kopiëren van een specifieke blob van de broncontainer naar een Data Lake Storage Gen1 map:
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
Bijvoorbeeld:
AdlCopy /source https://mystorage.blob.core.windows.net/mycluster/HdiSamples/HdiSamples/FoodInspectionData/ /dest adl://mydatalakestorage.azuredatalakestore.net/mynewfolder/ /sourcekey uJUfvD6cEvhfLoBae2yyQf8t9/BpbWZ4XoYj4kAS5Jf40pZaMNf0q6a8yqTxktwVgRED4vPHeh/50iS9atS5LQ== /Pattern *.csv
Billing
- Als u het hulpprogramma AdlCopy als zelfstandige versie gebruikt, worden de uitgaande kosten voor het verplaatsen van gegevens in rekening gebracht als het Azure Storage-bronaccount zich niet in dezelfde regio bevindt als het Data Lake Storage Gen1-account.
- Als u het hulpprogramma AdlCopy gebruikt met uw Data Lake Analytics-account, zijn standaard Data Lake Analytics factureringstarieven van toepassing.
Overwegingen voor het gebruik van AdlCopy
- AdlCopy (voor versie 1.0.5) ondersteunt het kopiëren van gegevens uit bronnen die samen meer dan duizenden bestanden en mappen bevatten. Als u echter problemen ondervindt bij het kopiëren van een grote gegevensset, kunt u de bestanden/mappen distribueren naar verschillende submappen en in plaats daarvan het pad naar deze submappen als bron gebruiken.
Prestatieoverwegingen voor het gebruik van AdlCopy
AdlCopy ondersteunt het kopiëren van gegevens die duizenden bestanden en mappen bevatten. Als u echter problemen ondervindt bij het kopiëren van een grote gegevensset, kunt u de bestanden/mappen distribueren naar kleinere submappen. AdlCopy is gemaakt voor ad-hockopieën. Als u gegevens op terugkerende basis probeert te kopiëren, kunt u overwegen om Azure Data Factory te gebruiken die volledig beheer biedt voor de kopieerbewerkingen.
Opmerkingen bij de release
- 1.0.13 - Als u gegevens kopieert naar hetzelfde Azure Data Lake Storage Gen1-account via meerdere adlcopy-opdrachten, hoeft u uw referenties niet meer voor elke uitvoering opnieuw in te voeren. Met Adlcopy wordt deze informatie nu in de cache opgeslagen in meerdere uitvoeringen.