Azure Data Lake Storage Gen2¶
Azure Data Lake Storage Gen2 — это облачное хранилище данных корпоративного уровня, предоставляемое в составе платформы Microsoft Azure. Оно сочетает в себе масштабируемость и производительность Azure Data Lake Storage Gen1 с возможностями управления доступом, совместимостью иерархической файловой системы и блочного хранения Azure Blob Storage. Gen2 предназначено для аналитических рабочих нагрузок, включая обработку больших данных, машинное обучение и потоковую передачу данных.
¶История и предпосылки создания
Azure Data Lake Storage Gen2 было анонсировано в мае 2018 года и стало доступно в коммерческой эксплуатации в марте 2019 года. Его появление было обусловлено необходимостью преодолеть ограничения предыдущих поколений облачных хранилищ для аналитики. Azure Data Lake Storage Gen1, запущенный в 2016 году, предоставлял высокую пропускную способность и масштабируемость, но был ограничен в совместимости с инструментами, разработанными для Hadoop Distributed File System (HDFS). Azure Blob Storage, в свою очередь, обладал широкой совместимостью, но не имел нативной поддержки иерархической файловой системы, что затрудняло оптимизацию операций с каталогами.
Gen2 объединил лучшие черты обоих сервисов: он базируется на архитектуре Blob Storage, но добавляет поверх неё иерархическое пространство имён (HNS) и драйвер Azure Blob File System (ABFS), который обеспечивает совместимость с HDFS. Это позволило использовать существующие инструменты экосистемы Hadoop (например, Apache Spark, Apache Hive, Presto) без модификации кода, одновременно сохранив преимущества Blob Storage, такие как геоизбыточность, шифрование и управление жизненным циклом данных.
¶Архитектура и ключевые характеристики
¶Иерархическое пространство имён (HNS)
Основное отличие Gen2 от Blob Storage — поддержка иерархического пространства имён. В Blob Storage объекты хранятся в плоской структуре: каждый файл (блоб) имеет уникальный путь, но каталоги являются лишь виртуальными префиксами. Gen2 же организует данные в виде дерева каталогов, что позволяет выполнять операции с каталогами (например, переименование, удаление) атомарно и с константной временной сложностью O(1), а не O(N), как в плоской модели. Это критически важно для аналитических нагрузок, где часто требуется переименовывать или перемещать целые папки с миллионами файлов.
¶Протокол ABFS
Для доступа к данным используется драйвер Azure Blob File System (ABFS), реализующий протокол WebHDFS. Он поддерживает аутентификацию через Azure Active Directory (AAD) и управление доступом на основе POSIX-подобных списков контроля доступа (ACL). ABFS обеспечивает прямую интеграцию с распределёнными вычислительными системами, такими как Apache Spark и Azure Databricks, без необходимости в дополнительных шлюзах или прокси.
¶Масштабируемость и производительность
Gen2 может хранить петабайты данных и обрабатывать тысячи одновременных запросов. Производительность измеряется в мегабайтах в секунду на гигабайт хранимых данных (MBps/GB), что позволяет достигать пропускной способности до 100 Гбит/с для одного контейнера. Система автоматически распределяет нагрузку по множеству серверов, обеспечивая линейную масштабируемость.
¶Классификация и типы хранилищ
Azure Data Lake Storage Gen2 поддерживает три уровня доступа к данным, аналогичных Azure Blob Storage:
- Горячий (Hot) — для часто используемых данных. Оптимизирован для низкой задержки чтения и записи.
- Холодный (Cool) — для редко используемых данных. Дешевле по стоимости хранения, но с более высокой платой за операции чтения.
- Архивный (Archive) — для долгосрочного хранения резервных копий и архивов. Самый дешёвый уровень, но с задержкой восстановления данных до нескольких часов.
¶Устройство и управление
¶Контейнеры и файловые системы
В Gen2 данные организуются в контейнеры (аналогичны корзинам в S3). Каждый контейнер может иметь иерархическое пространство имён, включённое при создании. Внутри контейнера создаются каталоги и файлы. Управление осуществляется через портал Azure, Azure CLI, PowerShell или REST API.
¶Безопасность и управление доступом
Gen2 поддерживает многоуровневую модель безопасности:
- Аутентификация через Azure AD — для пользователей и приложений.
- Управление доступом на основе ролей (RBAC) — на уровне подписки, группы ресурсов, контейнера или каталога.
- POSIX-списки ACL — для детального управления правами на чтение, запись и выполнение для отдельных каталогов и файлов.
- Шифрование — данные шифруются на стороне сервера с использованием ключей, управляемых Microsoft (SSE) или клиентом (CMK).
¶Мониторинг и метрики
Azure Monitor собирает метрики производительности (количество запросов, задержка, пропускная способность) и журналы аудита. Доступны оповещения и интеграция с Azure Log Analytics.
¶Применение и сценарии использования
¶Аналитика больших данных
Gen2 является основным хранилищем для сервисов аналитики Azure, таких как Azure Synapse Analytics, Azure Databricks, HDInsight и Azure Data Factory. Оно используется для хранения исходных данных (raw data), промежуточных результатов ETL-процессов и финальных наборов данных для отчётов.
¶Машинное обучение
В пайплайнах машинного обучения Gen2 служит для хранения обучающих выборок, моделей и логов экспериментов. Интеграция с Azure Machine Learning позволяет читать данные напрямую из Gen2 без копирования.
¶Потоковая передача данных
Azure Event Hubs и Azure Stream Analytics могут записывать данные в Gen2 в реальном времени. Это подходит для сбора логов, телеметрии IoT-устройств и финансовых транзакций.
¶Хранение данных для резервного копирования
Благодаря низкой стоимости холодного и архивного уровней, Gen2 используется для долгосрочного хранения резервных копий и compliance-данных.
¶Примеры использования
- Сетевой ритейлер использует Gen2 для хранения данных о покупках клиентов (сотни терабайт) и запускает Spark-задания для сегментации аудитории.
- Научно-исследовательский институт хранит в Gen2 результаты геномных исследований (петабайты) и обрабатывает их с помощью Azure Batch.
- Финансовая организация архивирует транзакционные логи на холодном уровне Gen2 для соответствия регуляторным требованиям.
¶Интересные факты
- Gen2 поддерживает до 63 000 объектов на один контейнер, но на практике ограничение определяется квотой учётной записи хранения (до 500 ТБ по умолчанию, можно увеличить).
- В отличие от HDFS, Gen2 не требует отдельного NameNode — метаданные распределены и управляются автоматически, что повышает отказоустойчивость.
- Gen2 можно использовать как файловую систему для Linux-виртуальных машин через протокол NFS (Network File System).
¶Критика и ограничения
- Зависимость от платформы Azure — Gen2 является проприетарным сервисом, что затрудняет миграцию в другие облака или локальную среду.
- Сложность управления ACL — при большом количестве каталогов и файлов настройка POSIX-списков может стать трудоёмкой.
- Отсутствие полной совместимости с HDFS — некоторые функции HDFS, такие как симлинки и квоты на пространство, не поддерживаются.
- Задержка при записи — из-за необходимости обновления иерархических метаданных задержка записи может быть выше, чем в плоском Blob Storage.
¶Источники
- Microsoft Docs: «What is Azure Data Lake Storage Gen2?»
- Microsoft Docs: «Hierarchical namespace in Azure Data Lake Storage Gen2»
- Microsoft Azure Blog: «Announcing Azure Data Lake Storage Gen2»
- TechNet: «Azure Data Lake Storage Gen2 performance and scalability»
- Azure Architecture Center: «Big data architectures with Azure Data Lake Storage Gen2»
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


