Partilhar via


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

O Data Lake Storage Gen1 fornece uma ferramenta de linha de comando, AdlCopy, para copiar dados das seguintes fontes:

  • De blobs do Azure Storage para o Data Lake Storage Gen1. Não é possível usar o AdlCopy para copiar dados do Data Lake Storage Gen1 para blobs do Armazenamento do Azure.
  • Entre duas contas do Data Lake Storage Gen1.

Além disso, você pode usar a ferramenta AdlCopy em dois modos diferentes:

  • Standalone, onde a ferramenta usa recursos do Data Lake Storage Gen1 para executar a tarefa.
  • Usando uma conta do Data Lake Analytics, onde as unidades atribuídas à sua conta do Data Lake Analytics são usadas para executar a operação de cópia. Talvez você queira usar essa opção quando estiver procurando executar as tarefas de cópia de maneira previsível.

Pré-requisitos

Antes de começar este artigo, você deve ter o seguinte:

Sintaxe da ferramenta AdlCopy

Use a sintaxe a seguir 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
Fonte Especifica o local dos dados de origem no blob de armazenamento do Azure. A origem pode ser um contentor de blobs, um blob ou outra conta do Data Lake Storage Gen1.
Destino Especifica o destino do Data Lake Storage Gen1 para o qual copiar.
Chave da Fonte Especifica a chave de acesso de armazenamento para a origem do blob de armazenamento do Azure. Isto é necessário apenas se a origem for um contentor de blobs ou um blob.
Conta Opcional. Use isso se quiser usar a conta do Azure Data Lake Analytics para executar o trabalho de cópia. Se você usar a opção /Account na sintaxe, mas não especificar uma conta do Data Lake Analytics, o AdlCopy usará uma conta padrão para executar o trabalho. Além disso, se você usar essa opção, deverá adicionar a origem (Blob de Armazenamento do Azure) e o destino (Azure Data Lake Storage Gen1) como fontes de dados para sua conta do Data Lake Analytics.
Unidades Especifica o número de unidades da Análise Data Lake que serão usadas para o trabalho de cópia. Essa opção é obrigatória se você usar a opção /Account para especificar a conta do Data Lake Analytics.
Padrão Especifica um padrão regex que indica quais blobs ou arquivos copiar. O AdlCopy usa correspondência sensível a maiúsculas e minúsculas. O padrão padrão quando nenhum padrão é especificado é copiar todos os itens. Não há suporte para a especificação de vários padrões de arquivo.

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

  1. Abra um prompt de comando e navegue até o diretório onde o AdlCopy está instalado, normalmente %HOMEPATH%\Documents\adlcopy.

  2. Execute o seguinte comando para copiar um blob específico do contêiner 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>
    

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

    Observação

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

    Você será solicitado a inserir as credenciais para a assinatura do Azure sob a qual você tem sua conta do Data Lake Storage Gen1. Você verá uma saída semelhante à seguinte:

    Initializing Copy.
    Copy Started.
    100% data copied.
    Finishing Copy.
    Copy Completed. 1 file copied.
    
  3. Você também pode copiar todos os blobs de um contêiner para a conta do Data Lake Storage Gen1 usando 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 sobre desempenho

Se estiver a copiar de uma conta de Armazenamento de Blobs do Azure, poderá ser limitado durante a cópia do lado do armazenamento dos blobs. Isso irá degradar o desempenho do seu trabalho de cópia. Para saber mais sobre os limites do Azure Blob Storage, veja os Limites de armazenamento do Azure em Limites de assinatura e serviço do Azure.

Use o AdlCopy (como autônomo) para copiar dados de outra conta do Data Lake Storage Gen1

Você também pode usar o AdlCopy para copiar dados entre duas contas do Data Lake Storage Gen1.

  1. Abra um prompt de comando e navegue até o diretório onde o AdlCopy está instalado, normalmente %HOMEPATH%\Documents\adlcopy.

  2. Execute o seguinte comando para copiar um arquivo específico de uma conta do 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/
    

    Observação

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

    Você será solicitado a inserir as credenciais para a assinatura do Azure sob a qual você tem sua conta do Data Lake Storage Gen1. Você verá uma saída semelhante à seguinte:

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

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

Considerações sobre desempenho

Ao usar o AdlCopy como uma ferramenta autônoma, a cópia é executada em recursos compartilhados gerenciados pelo Azure. O desempenho que você pode obter nesse ambiente depende da carga do sistema e dos recursos disponíveis. Este modo é melhor usado para pequenas transferências em uma base ad hoc. Nenhum parâmetro precisa ser ajustado ao usar o AdlCopy como uma ferramenta independente.

Usar o AdlCopy (com a conta do Data Lake Analytics) para copiar dados

Você também pode usar sua conta do Data Lake Analytics para executar o trabalho AdlCopy para copiar dados de blobs de armazenamento do Azure para o Data Lake Storage Gen1. Normalmente, você usaria essa opção quando os dados a serem movidos estivessem no intervalo de gigabytes e terabytes e desejasse uma taxa de transferência de desempenho melhor e previsível.

Para usar sua conta do Data Lake Analytics com o AdlCopy para copiar de um Blob de Armazenamento do Azure, a fonte (Blob de Armazenamento do Azure) deve ser adicionada como uma fonte de dados para sua conta do Data Lake Analytics. Para obter instruções sobre como adicionar fontes de dados adicionais à sua conta do Data Lake Analytics, consulte Gerenciar fontes de dados da conta do Data Lake Analytics.

Observação

Se você estiver copiando de uma conta do Azure Data Lake Storage Gen1 como a fonte usando uma conta do Data Lake Analytics, não será necessário associar a conta do Data Lake Storage Gen1 à conta do Data Lake Analytics. O requisito para associar o repositório de origem à conta do Data Lake Analytics é somente quando a fonte é uma conta de Armazenamento do Azure.

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

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 arquivos de uma pasta específica na conta de origem do Data Lake Storage Gen1 para uma pasta na conta de destino do Data Lake Storage Gen1 usando a conta do Data Lake Analytics:

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

Considerações sobre desempenho

Ao copiar dados no intervalo de terabytes, usar o AdlCopy com sua própria conta do Azure Data Lake Analytics fornece um desempenho melhor e mais previsível. O parâmetro que deve ser ajustado é o número de Unidades de Análise do Azure Data Lake a serem usadas para o trabalho de cópia. Aumentar o número de unidades aumentará o desempenho do seu trabalho de cópia. Cada ficheiro a copiar pode utilizar no máximo uma unidade. Especificar mais unidades do que o número de arquivos que estão sendo copiados não aumentará o desempenho.

Use o AdlCopy para copiar dados usando a correspondência de padrões

Nesta seção, você aprenderá a usar o AdlCopy para copiar dados de uma fonte (em nosso exemplo abaixo, usamos o Blob de Armazenamento do Azure) para uma conta de destino do Data Lake Storage Gen1 usando a correspondência de padrões. Por exemplo, você pode usar as etapas abaixo para copiar todos os arquivos com extensão .csv do blob de origem para o destino.

  1. Abra um prompt de comando e navegue até o diretório onde o AdlCopy está instalado, normalmente %HOMEPATH%\Documents\adlcopy.

  2. Execute o seguinte comando para copiar todos os arquivos com extensão *.csv de um blob específico do contêiner 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 de forma independente, será cobrado pelos custos de saída para mover dados, caso a conta de Armazenamento Azure de origem não esteja na mesma região que a conta do Data Lake Storage Gen1.
  • Se você usar a ferramenta AdlCopy com sua conta do Data Lake Analytics, serão aplicadas as taxas de faturamento padrão Data Lake Analytics.

Considerações sobre o uso do AdlCopy

  • AdlCopy (para a versão 1.0.5), suporta a cópia de dados de fontes que, coletivamente, têm mais de milhares de arquivos e pastas. No entanto, se você encontrar problemas ao copiar um conjunto de dados grande, poderá distribuir os arquivos/pastas em subpastas diferentes e usar o caminho para essas subpastas como origem.

Considerações de desempenho para usar o AdlCopy

AdlCopy suporta a cópia de dados contendo milhares de arquivos e pastas. No entanto, se você encontrar problemas ao copiar um conjunto de dados grande, poderá distribuir os arquivos/pastas em subpastas menores. AdlCopy foi construído para cópias ad hoc. Se você estiver tentando copiar dados de forma recorrente, considere usar do Azure Data Factory que fornece gerenciamento completo em torno das operações de cópia.

Notas de lançamento

  • 1.0.13 - Se você estiver copiando dados para a mesma conta do Azure Data Lake Storage Gen1 em vários comandos adlcopy, não precisará mais reinserir suas credenciais para cada execução. Adlcopy irá agora armazenar essas informações em cache durante várias execuções.

Próximos passos