Copiar dados dos Blobs de Armazenamento do Azure para o Azure Data Lake Storage Gen1

Data Lake Storage Gen1 fornece uma ferramenta de linha de comandos, AdlCopy, para copiar dados das seguintes origens:

  • Dos blobs do Armazenamento do Azure para Data Lake Storage Gen1. Não pode utilizar o AdlCopy para copiar dados de Data Lake Storage Gen1 para blobs de Armazenamento do Azure.
  • Entre duas contas de Data Lake Storage Gen1.

Além disso, pode utilizar a ferramenta AdlCopy em dois modos diferentes:

  • Autónomo, onde a ferramenta utiliza Data Lake Storage Gen1 recursos para efetuar a tarefa.
  • Utilizar uma conta Data Lake Analytics, onde as unidades atribuídas à sua conta Data Lake Analytics são utilizadas para executar a operação de cópia. Poderá querer utilizar esta opção quando quiser efetuar as tarefas de cópia de forma previsível.

Pré-requisitos

Antes de começar este artigo, tem de ter o seguinte:

Sintaxe da ferramenta AdlCopy

Utilize a seguinte sintaxe para trabalhar com a ferramenta 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

Os parâmetros na sintaxe são descritos abaixo:

Opção Descrição
Origem Especifica a localização dos dados de origem no blob de armazenamento do Azure. A origem pode ser um contentor de blobs, um blob ou outra conta Data Lake Storage Gen1.
Dest Especifica o destino Data Lake Storage Gen1 para o quais copiar.
SourceKey Especifica a chave de acesso ao armazenamento para a origem de blobs de armazenamento do Azure. Isto só é necessário se a origem for um contentor de blobs ou um blob.
Conta Opcional. Utilize esta opção se quiser utilizar a conta do Azure Data Lake Analytics para executar a tarefa de cópia. Se utilizar a opção /Account na sintaxe, mas não especificar uma conta Data Lake Analytics, o AdlCopy utiliza uma conta predefinida para executar a tarefa. Além disso, se utilizar esta opção, tem de adicionar a origem (Blob de Armazenamento do Azure) e o destino (Azure Data Lake Storage Gen1) como origens de dados para a sua conta de Data Lake Analytics.
Unidades Especifica o número de unidades de Data Lake Analytics que serão utilizadas para a tarefa de cópia. Esta opção é obrigatória se utilizar a opção /Account para especificar a conta de Data Lake Analytics.
Padrão Especifica um padrão regex que indica que blobs ou ficheiros deve copiar. O AdlCopy utiliza correspondência sensível a maiúsculas e minúsculas. O padrão predefinido quando não é especificado nenhum padrão é copiar todos os itens. A especificação de vários padrões de ficheiro não é suportada.

Utilizar o AdlCopy (como autónomo) para copiar dados de um blob de Armazenamento do Azure

  1. Abra uma linha de comandos e navegue para o diretório onde o AdlCopy está instalado, normalmente %HOMEPATH%\Documents\adlcopy.

  2. Execute o seguinte comando para copiar um blob específico do contentor de origem para uma pasta de Data Lake Storage Gen1:

    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>
    

    Por exemplo:

    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==
    

    Nota

    A sintaxe acima especifica o ficheiro a ser copiado para uma pasta na conta Data Lake Storage Gen1. A ferramenta AdlCopy cria uma pasta se o nome da pasta especificada não existir.

    Ser-lhe-á pedido que introduza as credenciais da subscrição do Azure na qual tem a sua conta de Data Lake Storage Gen1. Verá um resultado semelhante ao seguinte:

    Initializing Copy.
    Copy Started.
    100% data copied.
    Finishing Copy.
    Copy Completed. 1 file copied.
    
  3. Também pode copiar todos os blobs de um contentor para a conta Data Lake Storage Gen1 com o seguinte comando:

    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>  
    

    Por exemplo:

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

Considerações de desempenho

Se estiver a copiar de uma conta Armazenamento de Blobs do Azure, poderá ser limitado durante a cópia no lado do armazenamento de blobs. Isto irá degradar o desempenho da tarefa de cópia. Para saber mais sobre os limites de Armazenamento de Blobs do Azure, veja Limites do Armazenamento do Azure em Subscrição do Azure e limites de serviço.

Utilizar o AdlCopy (como autónomo) para copiar dados de outra conta Data Lake Storage Gen1

Também pode utilizar o AdlCopy para copiar dados entre duas contas Data Lake Storage Gen1.

  1. Abra uma linha de comandos e navegue para o diretório onde o AdlCopy está instalado, normalmente %HOMEPATH%\Documents\adlcopy.

  2. Execute o seguinte comando para copiar um ficheiro específico de uma conta Data Lake Storage Gen1 para outra.

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

    Por exemplo:

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

    Nota

    A sintaxe acima especifica o ficheiro a ser copiado para uma pasta na conta de destino Data Lake Storage Gen1. A ferramenta AdlCopy cria uma pasta se o nome da pasta especificada não existir.

    Ser-lhe-á pedido que introduza as credenciais da subscrição do Azure na qual tem a sua conta de Data Lake Storage Gen1. Verá um resultado semelhante ao seguinte:

    Initializing Copy.
    Copy Started.|
    100% data copied.
    Finishing Copy.
    Copy Completed. 1 file copied.
    
  3. O comando seguinte copia todos os ficheiros de uma pasta específica na conta de Data Lake Storage Gen1 de origem para uma pasta na conta Data Lake Storage Gen1 de destino.

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

Considerações de desempenho

Ao utilizar o AdlCopy como uma ferramenta autónoma, a cópia é executada em recursos partilhados geridos pelo Azure. O desempenho que poderá obter neste ambiente depende da carga do sistema e dos recursos disponíveis. Este modo é melhor utilizado para pequenas transferências numa base ad hoc. Não é necessário ajustar parâmetros ao utilizar o AdlCopy como uma ferramenta autónoma.

Utilizar o AdlCopy (com Data Lake Analytics conta) para copiar dados

Também pode utilizar a sua conta Data Lake Analytics para executar a tarefa AdlCopy para copiar dados de blobs de armazenamento do Azure para Data Lake Storage Gen1. Normalmente, utilizaria esta opção quando os dados a mover estiverem na gama de gigabytes e terabytes e quiser um débito de desempenho melhor e previsível.

Para utilizar a sua conta Data Lake Analytics com o AdlCopy para copiar a partir de um Blob de Armazenamento do Azure, a origem (Blob de Armazenamento do Azure) tem de ser adicionada como uma origem de dados para a sua conta Data Lake Analytics. Para obter instruções sobre como adicionar origens de dados adicionais à sua conta Data Lake Analytics, veja Gerir Data Lake Analytics origens de dados da conta.

Nota

Se estiver a copiar de uma conta do Azure Data Lake Storage Gen1 como a origem com uma conta Data Lake Analytics, não precisa de associar a conta Data Lake Storage Gen1 à conta Data Lake Analytics. O requisito para associar o arquivo de origem à conta Data Lake Analytics é apenas quando a origem é uma conta de Armazenamento do Azure.

Execute o seguinte comando para copiar de um blob de Armazenamento do Azure para uma conta de Data Lake Storage Gen1 com Data Lake Analytics conta:

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>

Por exemplo:

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

Da mesma forma, execute o seguinte comando para copiar todos os ficheiros de uma pasta específica na conta de Data Lake Storage Gen1 de origem para uma pasta na conta de destino Data Lake Storage Gen1 com Data Lake Analytics conta:

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

Considerações de desempenho

Ao copiar dados no intervalo de terabytes, a utilização do AdlCopy com a sua própria conta do Azure Data Lake Analytics proporciona um desempenho melhor e mais previsível. O parâmetro que deve ser ajustado é o número de Unidades de Data Lake Analytics do Azure a utilizar para a tarefa de cópia. Aumentar o número de unidades irá aumentar o desempenho da tarefa de cópia. Cada ficheiro a ser copiado pode utilizar o máximo de uma unidade. Especificar mais unidades do que o número de ficheiros que estão a ser copiados não aumentará o desempenho.

Utilizar o AdlCopy para copiar dados com a correspondência de padrões

Nesta secção, vai aprender a utilizar o AdlCopy para copiar dados de uma origem (no nosso exemplo abaixo utilizamos o Blob de Armazenamento do Azure) para uma conta de destino Data Lake Storage Gen1 com a correspondência de padrões. Por exemplo, pode utilizar os passos abaixo para copiar todos os ficheiros com .csv extensão do blob de origem para o destino.

  1. Abra uma linha de comandos e navegue para o diretório onde o AdlCopy está instalado, normalmente %HOMEPATH%\Documents\adlcopy.

  2. Execute o seguinte comando para copiar todos os ficheiros com a extensão *.csv de um blob específico do contentor de origem para uma pasta Data Lake Storage Gen1:

    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
    

    Por exemplo:

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

Faturação

  • Se utilizar a ferramenta AdlCopy como autónoma, ser-lhe-ão cobrados os custos de saída para mover dados, se a conta de Armazenamento do Azure de origem não estiver na mesma região que a conta de Data Lake Storage Gen1.
  • Se utilizar a ferramenta AdlCopy com a sua conta Data Lake Analytics, aplicar-se-ão taxas de faturação padrão Data Lake Analytics.

Considerações para utilizar o AdlCopy

  • O AdlCopy (para a versão 1.0.5), suporta a cópia de dados de origens que, coletivamente, têm mais de milhares de ficheiros e pastas. No entanto, se encontrar problemas ao copiar um grande conjunto de dados, pode distribuir os ficheiros/pastas por subpastas diferentes e utilizar o caminho para essas subpastas como a origem.

Considerações de desempenho para utilizar o AdlCopy

O AdlCopy suporta a cópia de dados que contêm milhares de ficheiros e pastas. No entanto, se encontrar problemas ao copiar um conjunto de dados grande, pode distribuir os ficheiros/pastas por subpastas mais pequenas. O AdlCopy foi criado para cópias ad hoc. Se estiver a tentar copiar dados de forma periódica, deve considerar utilizar Azure Data Factory que fornece gestão completa em torno das operações de cópia.

Notas de versão

  • 1.0.13 - Se estiver a copiar dados para a mesma conta Azure Data Lake Storage Gen1 em vários comandos de adlcopy, já não precisa de reintroduzir as suas credenciais para cada execução. O Adlcopy irá agora colocar essas informações em cache em várias execuções.

Passos seguintes