Поделиться через


Копирование данных из BLOB-объектов службы хранилища Azure в Azure Data Lake Storage 1-го поколения

Data Lake Storage 1-го поколения предоставляет средство командной строки AdlCopy для копирования данных из следующих источников:

  • Из больших двоичных объектов службы хранилища Azure в Data Lake Storage 1-го поколения. Невозможно использовать AdlCopy для копирования данных из Data Lake Storage Gen1 в блобы Azure.
  • Между двумя учетными записями Data Lake Storage 1-го поколения.

Кроме того, можно использовать средство AdlCopy в двух разных режимах:

  • Автономный, где средство использует ресурсы Data Lake Storage 1-го поколения для выполнения задачи.
  • Использование учетной записи Data Lake Analytics, в которой единицы, назначенные учетной записи Data Lake Analytics, используются для выполнения операции копирования. Вы можете использовать этот параметр, когда собираетесь выполнять задачи копирования предсказуемым образом.

Предпосылки

Перед началом работы с этой статьей необходимо иметь следующее:

Синтаксис средства AdlCopy

Используйте следующий синтаксис для работы с инструментом 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

Параметры в синтаксисе описаны ниже.

Вариант Описание
Источник Указывает расположение исходных данных в BLOB-объекте хранилища Azure. Источником может быть контейнер больших двоичных объектов, объект BLOB или другая учетная запись Data Lake Storage Gen1.
Dest Указывает конечный пункт назначения для копирования в хранилище данных Data Lake Storage Gen1.
КлючИсточника Указывает ключ доступа к хранилищу для источника BLOB-объектов хранилища Azure. Это необходимо только в том случае, если источник является контейнером BLOB-объектов или большим двоичным объектом.
Счет Необязательно. Используйте это, если вы хотите использовать учетную запись Azure Data Lake Analytics для запуска задания копирования. Если вы используете параметр /Account в синтаксисе, но не указываете учетную запись Data Lake Analytics, AdlCopy использует учетную запись по умолчанию для выполнения задания. Кроме того, при использовании этого параметра необходимо добавить исходный объект (объект BLOB хранилища Azure) и назначение (Azure Data Lake Storage Gen1) как источники данных для вашей учетной записи Data Lake Analytics.
Единицы Указывает количество единиц Data Lake Analytics, которые будут использоваться для задания копирования. Этот параметр является обязательным, если вы используете параметр /Account для указания учетной записи Data Lake Analytics.
Рисунок Уточняет шаблон регулярных выражений, по которому определяются объекты или файлы для копирования. AdlCopy использует сопоставление с учетом регистра. Шаблон по умолчанию, если шаблон не указан, заключается в копировании всех элементов. Указание нескольких шаблонов файлов не поддерживается.

Используйте AdlCopy в автономном режиме для копирования данных из блоба хранилища Azure.

  1. Откройте командную строку и перейдите в каталог, в котором устанавливается AdlCopy, как правило %HOMEPATH%\Documents\adlcopy.

  2. Выполните следующую команду, чтобы скопировать определенный блоб из исходного контейнера в папку 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>
    

    Рассмотрим пример.

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

    Примечание.

    Приведенный выше синтаксис указывает файл, который нужно скопировать в папку в учетной записи Data Lake Storage 1-го поколения. Средство AdlCopy создает папку, если указанное имя папки не существует.

    Вам будет предложено ввести учетные данные для подписки Azure, в которой у вас есть учетная запись Data Lake Storage 1-го поколения. Вы увидите выходные данные, аналогичные следующему:

    Initializing Copy.
    Copy Started.
    100% data copied.
    Finishing Copy.
    Copy Completed. 1 file copied.
    
  3. Вы также можете скопировать все большие двоичные объекты из одного контейнера в учетную запись Data Lake Storage 1-го поколения, выполнив следующую команду:

    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>  
    

    Рассмотрим пример.

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

Вопросы, связанные с производительностью

Если вы копируете из учетной записи хранения BLOB-объектов Azure, ваша скорость может быть ограничена во время копирования на стороне хранилища BLOB-объектов. Это приведет к снижению производительности задания копирования. Дополнительные сведения о пределах хранилища BLOB-объектов Azure см. в разделе пределы хранилища Azure в подписке и службах Azure.

Использование AdlCopy (как автономное) для копирования данных из другой учетной записи Data Lake Storage 1-го поколения

Можно также использовать AdlCopy для копирования данных между двумя учетными записями Data Lake Storage 1-го поколения.

  1. Откройте командную строку и перейдите в каталог, в котором устанавливается AdlCopy, как правило %HOMEPATH%\Documents\adlcopy.

  2. Выполните следующую команду, чтобы скопировать определенный файл из одной учетной записи Data Lake Storage 1-го поколения в другую.

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

    Рассмотрим пример.

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

    Примечание.

    Приведенный выше синтаксис указывает файл, который нужно скопировать в папку в целевой учетной записи Data Lake Storage 1-го поколения. Средство AdlCopy создает папку, если указанное имя папки не существует.

    Вам будет предложено ввести учетные данные для подписки Azure, в которой у вас есть учетная запись Data Lake Storage 1-го поколения. Вы увидите выходные данные, аналогичные следующему:

    Initializing Copy.
    Copy Started.|
    100% data copied.
    Finishing Copy.
    Copy Completed. 1 file copied.
    
  3. Следующая команда копирует все файлы из определенной папки в исходной учетной записи Data Lake Storage 1-го поколения в папку в целевой учетной записи Data Lake Storage 1-го поколения.

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

Вопросы, связанные с производительностью

При использовании AdlCopy в качестве автономного средства копирование выполняется в общих ресурсах, управляемых Azure. Производительность, получаемая в этой среде, зависит от системной нагрузки и доступных ресурсов. Этот режим лучше всего использовать для небольших передач на нерегламентированной основе. Параметры не нужно настраивать при использовании AdlCopy в качестве автономного средства.

Копирование данных с помощью AdlCopy (с учетной записью Data Lake Analytics)

Вы также можете использовать учетную запись Data Lake Analytics для выполнения задания AdlCopy для копирования данных из BLOB-объектов хранилища Azure в Data Lake Storage 1-го поколения. Обычно этот параметр используется при перемещении данных в диапазоне гигабайтов и терабайтов, а также требуется улучшенная и прогнозируемая пропускная способность производительности.

Чтобы использовать учетную запись Data Lake Analytics с AdlCopy для копирования из объекта BLOB службы хранилища Azure, объект BLOB должен быть добавлен в качестве источника данных для вашей учетной записи Data Lake Analytics. Инструкции по добавлению дополнительных источников данных в учетную запись Data Lake Analytics см. в разделе "Управление источниками данных учетной записи Data Lake Analytics".

Примечание.

Если вы копируете из учетной записи Azure Data Lake Storage 1-го поколения в качестве источника, используя учетную запись Data Lake Analytics, вам не нужно связать учетную запись Data Lake Storage 1-го поколения с учетной записью Data Lake Analytics. Требование ассоциировать исходное хранилище с учетной записью Data Lake Analytics возникает только в случае, если источник представлен учетной записью хранения Azure.

Выполните следующую команду, чтобы скопировать блоб хранилища Azure в Data Lake Storage поколения 1 с помощью учетной записи 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>

Рассмотрим пример.

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

Аналогичным образом выполните следующую команду, чтобы скопировать все файлы из определенной папки в исходной учетной записи Data Lake Storage 1-го поколения в папку в целевой учетной записи Data Lake Storage 1-го поколения с помощью учетной записи Data Lake Analytics:

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

Вопросы, связанные с производительностью

При копировании данных объемом в терабайты с использованием AdlCopy и собственной учетной записи Azure Data Lake Analytics достигается более высокая и предсказуемая производительность. Параметр, который следует настроить, — это количество единиц Azure Data Lake Analytics, используемых для задания копирования. Увеличение количества единиц увеличит производительность задания копирования. Каждый файл для копирования может использовать не более одной единицы. Указание большего количества единиц, чем количество копируемых файлов, не увеличит производительность.

Использование AdlCopy для копирования данных с помощью сопоставления шаблонов

В этом разделе объясняется, как с помощью AdlCopy скопировать данные из источника (в нашем примере ниже мы используем BLOB-хранилище Azure) в целевую учетную запись Data Lake Storage Gen1, используя сопоставление шаблонов. Например, выполните следующие действия, чтобы скопировать все файлы с расширением .csv из исходного блоба на место назначения.

  1. Откройте командную строку и перейдите в каталог, в котором устанавливается AdlCopy, как правило %HOMEPATH%\Documents\adlcopy.

  2. Выполните следующую команду, чтобы скопировать все файлы с расширением *.csv из конкретного объекта BLOB исходного контейнера в папку 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
    

    Рассмотрим пример.

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

Выставление счетов

Рекомендации по использованию AdlCopy

  • AdlCopy (для версии 1.0.5) поддерживает копирование данных из источников, которые вместе имеют более тысяч файлов и папок. Однако при возникновении проблем с копированием большого набора данных можно распределить файлы и папки в разные вложенные папки и использовать путь к этим вложенным папкам в качестве источника.

Рекомендации по повышению производительности для использования AdlCopy

AdlCopy поддерживает копирование данных, содержащих тысячи файлов и папок. Однако при возникновении проблем с копированием большого набора данных можно распределить файлы и папки в небольшие вложенные папки. AdlCopy был создан для нерегламентированных копий. Если вы пытаетесь копировать данные на регулярной основе, рекомендуется использовать фабрику данных Azure , которая обеспечивает полное управление операциями копирования.

Примечания к выпуску

  • 1.0.13. Если вы копируете данные в одну учетную запись Azure Data Lake Storage 1-го поколения в нескольких командах adlcopy, вам больше не нужно повторно отправлять учетные данные для каждого запуска. Теперь Adlcopy будет кэшировать эти сведения в нескольких запусках.

Дальнейшие действия