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

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

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

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

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

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

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

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

Внимание

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

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

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

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

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, команд PowerShell или команд Azure CLI.

Directories

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

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

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

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

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

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

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

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

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

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

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

При включении ведения журналов аналитики службы хранилища теперь можно использовать формат журнала версии 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:

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

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

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

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

Здесь можно найти рекомендации по использованию возможностей Data Lake Storage. Общие сведения о Azure Data Lake Storage.

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

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

Следующие шаги

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