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


Обновление Хранилища BLOB-объектов Azure с помощью возможностей Azure Data Lake Storage 2-го поколения

Эта статья поможет вам включить иерархическое пространство имен и разблокировать такие возможности, как безопасность на уровне файлов и каталогов, а также ускорить операции. Эти возможности широко используются рабочими нагрузками аналитики больших данных и в совокупности называются Azure Data Lake Storage 2-го поколения. Далее приводятся самые популярные возможности:

  • Более высокая пропускная способность, высокое число операций ввода-вывода в секунду (IOPS) и ограничения емкости хранилища.

  • Более быстрые операции (например, операции переименования), так как вы можете работать с URI отдельных узлов.

  • Эффективный механизм запросов, передающий только те данные, которые необходимы для выполнения данной операции.

  • Безопасность на уровне контейнера, каталога и файла.

Дополнительные сведения о них см. в статье Общие сведения о Azure Data Lake Storage 2-го поколения.

Сведения в этой статье помогут оценить влияние на рабочие нагрузки, приложения, затраты, интеграцию служб, средства, функции и документацию. Обязательно внимательно изучите результаты влияния. Когда вы будете готовы обновить учетную запись, см. сведения в пошаговом руководствеОбновление Хранилища BLOB-объектов Azure с помощью возможностей Azure Data Lake Storage 2-го поколения.

Важно!

Обновление является односторонним. После обновления отменить изменения учетной записи невозможно. Рекомендуется проверить обновление в непроизводственной среде.

Влияние на доступность

Запланируйте некоторое время простоя в вашей учетной записи на время завершения процесса обновления. Во время обновления учетной записи операции записи отключаются. Операции чтения не отключены, но мы настоятельно рекомендуем приостановить операции чтения, так как они могут дестабилизировать процесс обновления.

Влияние на рабочие нагрузки и приложения

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

Полный список проблем и способов их решения см. в статье об известных проблемах.

Все рабочие нагрузки Hadoop, использующие драйвер ДРАЙВЕРА BLOB-объектов службы хранилища Windows Azure (WASB), должны быть изменены для использования драйвера файловой системы BLOB-объектов Azure (ABFS). В отличие от драйвера WASB, который направляет запросы в конечную точку службы BLOB-объектов, драйвер ABFS направляет запросы в конечную точку Data Lake Storage вашей учетной записи.

Конечная точка Data Lake Storage

Обновленная учетная запись будет иметь конечную точку Data Lake Storage. URL-адрес этой конечной точки можно найти на портале Azure, открыв страницу Свойства учетной записи хранения.

Категория общего назначения версии 2

Для использования этой конечной точки изменять существующие приложения и рабочие нагрузки не нужно. Многопротокольный доступ в Data Lake Storage позволяет использовать конечную точку службы BLOB-объектов или конечную точку хранилища Data Lake Storage для взаимодействия с данными.

Службы и средства Azure (например, AzCopy) могут использовать конечную точку Data Lake Storage для взаимодействия с данными в учетной записи хранения. Кроме того, эту новую конечную точку необходимо использовать для любых операций, выполняемых с помощью пакетов SDK Data Lake Storage 2-го поколения, команд PowerShell или Azure CLI.

Каталоги

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

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

Метаданные больших двоичных объектов

Перед миграцией метаданные большого двоичного объекта связываются с именем большого двоичного объекта вместе со всем его виртуальным путем. После миграции метаданные связываются только с BLOB-объектом. Виртуальный путь к BLOB-объекту становится коллекцией каталогов. Метаданные BLOB-объекта не применяются ни к одному из этих каталогов.

Операции размещения

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

Операции вывода списка

Операция List Blobs возвращает и каталоги, и файлы. Каждый из них указывается отдельно. Каталоги отображаются в списке как BLOB-объекты нулевой длины. В учетной записи хранения BLOB-объекта без иерархического пространства имен операция List Blobs возвращает только BLOB-объекты, а не каталоги. При использовании операции Path-List Data Lake Storage 2-го поколения каталоги будут отображаться как записи каталогов, а не как BLOB-объекты нулевой длины.

Порядок в списке также отличается. Каталоги и файлы отображаются в порядке поиска в глубину. Учетная запись хранения BLOB-объекта без иерархического пространства имен перечисляет BLOB-объекты в лексикографическом порядке.

Операции переименования BLOB-объектов

Переименование BLOB-объекта гораздо более эффективно, так как клиентские приложения могут переименовывать BLOB-объект в одной операции. В учетных записях без иерархического пространства имен средства и приложения должны скопировать BLOB-объект, а затем удалить исходный BLOB-объект.

Примечание

При переименовании BLOB-объекта время его последнего изменения не обновляется. Это связано с тем, что содержимое BLOB-объекта не изменилось.

Влияние на затраты

Обновление не требуется. После обновления стоимость хранения данных не изменится, но стоимость транзакции меняется. Просмотрите приведенные ниже страницы, чтобы сравнить затраты.

Кроме того, с помощью параметра Учетные записи хранения в Калькуляторе цен Azure можно оценить влияние на затраты после обновления.

Помимо изменений цен, учитывайте экономию средств, связанную с Data Lake Storage 2-го поколения возможностями. Общая стоимость владения обычно снижается из-за более высокой пропускной способности и оптимизированных операций. Более высокая пропускная способность позволяет передавать больше данных за меньшее время. Иерархическое пространство имен повышает эффективность операций.

Влияние на интеграции служб

Хотя большинство интеграций служб Azure будут продолжать работать после включения этих возможностей, некоторые из них остаются в предварительной версии или пока не поддерживаются. Сведения о текущей поддержке интеграций служб Azure с Data Lake Storage 2-го поколения см. в статье Службы Azure, поддерживающие Azure Data Lake Storage 2-го поколения.

Влияние на средства, функции и документацию

После обновления изменится способ взаимодействия с некоторыми функциями. Эти изменения описываются в данном разделе.

Поддержка функции хранилища BLOB-объектов

Хотя большинство функций хранилища BLOB-объектов будут продолжать работать после включения этих возможностей, некоторые из них остаются в предварительной версии или пока не поддерживаются.

Сведения о текущей поддержке функций хранилища BLOB-объектов в Data Lake Storage 2-го поколения см. в статье о поддержке функций хранилища BLOB-объектов.

Журналы диагностики

При включении ведения журналов аналитики службы хранилища теперь можно использовать формат журнала версии 2.0.

Эту новую версию использовать не нужно. Однако все операции, которые применяются к конечной точке Data Lake Storage, регистрируются только в журналах версии 2.0. Некоторые службы и средства (например, AzCopy) будут использовать эту конечную точку для выполнения операций с вашей учетной записью. Чтобы записывать в журнал данные из всех действий, рассмотрите возможность использования формата журнала версии 2.0.

Управление жизненным циклом Azure

В нем объясняется, что политики для перемещения или удаления всех больших двоичных объектов в каталоге не будут удалять сам каталог, пока не будут удалены все большие двоичные объекты в нем, а каталог будет удален на следующий день.

Сетка событий

У новой учетной записи есть две конечные точки: конечная точка Data Lake Storage и конечная точка службы BLOB-объектов. Для работы с данными службы, средства и приложения могут использовать любую из них. В результате в ответе на событие, возвращаемом службой "Сетка событий", в поле URL-адрес которое описывает затронутый BLOB-объект, может быть указана одна из этих двух конечных точек.

В следующем примере JSON показан URL-адрес BLOB-объекта, который отображается в ответе на событие при создании BLOB-объекта с помощью конечной точки службы BLOB-объектов.

{
  "topic": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
  "subject": "/blobServices/default/containers/test-container/blobs/new-file.txt",
  "eventType": "Microsoft.Storage.BlobCreated",
  "eventTime": "2017-06-26T18:41:00.9584103Z",
  "id": "831e1650-001e-001b-66ab-eeb76e069631",
  "data": {
    "api": "PutBlockList",
    "clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
    "requestId": "831e1650-001e-001b-66ab-eeb76e000000",
    "eTag": "\"0x8D4BCC2E4835CD0\"",
    "contentType": "text/plain",
    "contentLength": 524288,
    "blobType": "BlockBlob",
    "url": "https://my-storage-account.blob.core.windows.net/testcontainer/new-file.txt",
    "sequencer": "00000000000004420000000000028963",
    "storageDiagnostics": {
      "batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
    }
  },
  "dataVersion": "",
  "metadataVersion": "1"
}

В следующем примере JSON показан URL-адрес BLOB-объекта, который отображается в ответе на событие при создании BLOB-объекта с помощью конечной точки Data Lake Storage.

{
  "topic": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
  "subject": "/blobServices/default/containers/my-file-system/blobs/new-file.txt",
  "eventType": "Microsoft.Storage.BlobCreated",
  "eventTime": "2017-06-26T18:41:00.9584103Z",
  "id": "831e1650-001e-001b-66ab-eeb76e069631",
  "data": {
    "api": "CreateFile",
    "clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
    "requestId": "831e1650-001e-001b-66ab-eeb76e000000",
    "eTag": "\"0x8D4BCC2E4835CD0\"",
    "contentType": "text/plain",
    "contentLength": 0,
    "contentOffset": 0,
    "blobType": "BlockBlob",
    "url": "https://my-storage-account.dfs.core.windows.net/my-file-system/new-file.txt",
    "sequencer": "00000000000004420000000000028963",
    "storageDiagnostics": {
      "batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
    }
  },
  "dataVersion": "2",
  "metadataVersion": "1"
}

Если ваши приложения используют Сетку событий, возможно, потребуется их изменить, чтобы учесть этот момент.

Обозреватель службы хранилища

Следующие кнопки пока не отображаются на ленте Обозреватель службы хранилища Azure:

Button Причина
Копирование URL-адреса Еще не реализовано
Управление моментальными снимками Еще не реализовано
Отменить удаление Зависит от функций хранилища BLOB-объектов, которые еще не поддерживаются в Data Lake Storage 2-го поколения.

Следующие кнопки работают по-другому в новой учетной записи.

Button Поведение хранилища BLOB-объектов Поведение Data Lake Storage 2-го поколения
Папка Папка является виртуальной и исчезает, если в нее не добавляются файлы. Папка существует даже без добавления в нее файлов.
Переименовать Копирование и последующее удаление исходного BLOB-объекта. Переименовывает тот же BLOB-объект. Является гораздо более эффективной.

Документация

Инструкции по использованию возможностей Data Lake Storage 2-го поколения можно найти здесь: Общие сведения о хранилище Azure Data Lake Storage 2-го поколения.

Расположение руководства по всем существующим функциям хранилища BLOB-объектов не изменилось. Его можно найти здесь: Общие сведения о хранилище BLOB-объектов Azure.

При переходе между наборами содержимого вы заметите некоторые незначительные различия в терминологии. Например, в содержимом о Data Lake Storage 2-го поколения могут использоваться термины файл и файловая система вместо BLOB-объект и контейнер. Термины файл и файловая система уходят глубоко корнями в среду аналитики больших данных с давней историей использования Data Lake Storage. Они понятны пользователям, которые работали с прежними системами. Эти термины не описывают отдельные понятия.

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

Когда вы будете готовы обновить учетную запись хранения для включения возможностей Data Lake Storage 2-го поколения, ознакомьтесь с этим пошаговым руководством.