Выбор технологии хранения больших данных в Azure

Примечание

29 февраля 2024 года будет прекращена поддержка Azure Data Lake Storage 1-го поколения. Дополнительные сведения см. в официальном объявлении. Если вы используете Azure Data Lake Storage 1-го поколения, перейдите на Azure Data Lake Storage 2-го поколения до этой даты. Дополнительные сведения см. в статье Миграция Azure Data Lake Storage из 1-го поколения в 2-е с помощью портал Azure.

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

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

Варианты при выборе хранилища данных в Azure

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

Хранилище файлов:

Базы данных NoSQL

Аналитические базы данных:

Azure Data Explorer

Большие двоичные объекты службы хранилища Azure

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

Существует несколько служб хранилища Azure, которые можно использовать для хранения данных. Наиболее гибким вариантом хранения BLOB-объектов из многих источников данных является хранилище BLOB-объектов. Большие двоичные объекты по сути являются файлами. Они хранят изображения, документы, HTML-файлы, виртуальные жесткие диски (VHD), большие данные, такие как журналы, резервные копии баз данных, практически все. BLOB-объекты хранятся в контейнерах, которые по принципу использования похожи на папки. Контейнер обеспечивает группирование набора больших двоичных объектов. Учетная запись хранения может содержать неограниченное количество контейнеров. В каждом контейнере может храниться неограниченное количество больших двоичных объектов.

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

Хранилище BLOB-объектов Azure доступно из Hadoop (через HDInsight). HDInsight может использовать контейнер больших двоичных объектов в службе хранилища Azure в качестве файловой системы по умолчанию для кластера. С помощью интерфейса распределенной файловой системы Hadoop, который предоставляется драйвером WASB, все компоненты в HDInsight могут напрямую взаимодействовать со структурированными или неструктурированными данными, хранимыми в виде больших двоичных объектов. К хранилищу BLOB-объектов Azure можно также обращаться через Azure Synapse Analytics с помощью PolyBase.

Вот еще несколько полезных возможностей службы хранилища Azure:

Хранилище Azure Data Lake Storage 1-го поколения

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

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

Azure Data Lake Storage 1-го поколения можно получить из Hadoop (доступно через HDInsight) с помощью интерфейсов REST API, совместимых с WebHDFS. Этот вариант можно использовать вместо службы хранилища Azure, если размер отдельных файлов или их общий объем превышает ограничения, установленные для службы хранилища Azure. Однако при использовании Azure Data Lake Storage 1-го поколения в качестве основного хранилища для кластера HDInsight следует соблюдать рекомендации по настройке производительности, а также конкретные рекомендации по Spark, Hive, MapReduce и Storm. Кроме того, обязательно проверьте доступность Azure Data Lake Storage 1-го поколения в регионе, так как она доступна не во многих регионах, чем служба хранилища Azure, и должна находиться в том же регионе, что и кластер HDInsight.

В сочетании с Azure Data Lake Analytics Azure Data Lake Storage 1-го поколения предназначен для аналитики хранимых данных и настроен на производительность для сценариев аналитики данных. Azure Data Lake Storage 1-го поколения также можно получить через Azure Synapse с помощью функции PolyBase.

Azure Cosmos DB

Azure Cosmos DB — это глобально распределенная многомодельная база данных Майкрософт. Azure Cosmos DB гарантирует задержку в миллисекундах на уровне 99-го процентиля в любой точке мира, предлагает несколько четко определенных моделей согласованности для точной настройки производительности и гарантирует высокий уровень доступности с возможностями множественной адресации.

Azure Cosmos DB является полностью бессхемной службой. Она автоматически индексирует все данные, избавляя вас от необходимости управлять схемой и индексами. В ней есть встроенная поддержка множества моделей данных, включая документы, пары "ключ-значение", графы и модели данных столбцов.

Функциональные возможности Azure Cosmos DB:

HBase в HDInsight

Apache HBase — это база данных NoSQL с открытым кодом, созданная на основе Hadoop по типу Google BigTable. HBase обеспечивает прямой доступ и строгую согласованность для больших объемов неструктурированных и слабоструктурированных данных в бессхемной базе данных, упорядоченных в семейства столбцов.

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

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

Azure Data Explorer

Azure Data Explorer — это быстрая и высокомасштабируемая служба для изучения данных журналов и телеметрии. Она позволяет обрабатывать множество потоков данных, создаваемых современным программным обеспечением, позволяя собирать, хранить и анализировать данные. Обозреватель данных Azure идеально подходит для анализа больших объемов разнообразных данных, поступающих из любых источников данных, таких как веб-сайты, приложения, устройства Интернета вещей и др. Эти данные используются для диагностики, мониторинга, формирования отчетов, машинного обучения и дополнительного анализа. Azure Data Explorer упрощает прием этих данных и позволяет мгновенно выполнять сложные специализированные запросы данных.

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

Основные критерии выбора

Чтобы ограничить количество вариантов, сначала ответьте на следующие вопросы:

  • Нужны ли вам управляемые, высокоскоростные или облачные хранилища для текстовых или двоичных данных любого типа? Если да, то выберите один из вариантов хранения файлов или аналитической обработки.

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

  • Нужно ли вам хранить неструктурированные или частично структурированные данные в бессхемной базе данных? Если да, выберите один из вариантов нереляционных хранилищ или аналитической обработки. Сравните варианты индексирования и моделей баз данных. В зависимости от типа сохраняемых данных, самым важным фактором может оказаться модель базы данных-источника.

  • Можно ли использовать эту службу в вашем регионе? Проверьте региональную доступность для каждой службы Azure. См. страницу Доступность продуктов по регионам.

Матрица возможностей

В следующих таблицах перечислены основные различия в возможностях.

Возможности для хранения файлов

Функция Хранилище Azure Data Lake Storage 1-го поколения Контейнеры хранилища BLOB-объектов
Цель Оптимизированное хранилище для рабочих нагрузок, относящихся к аналитике больших данных Универсальное хранилище объектов для разнообразных сценариев хранения
Варианты использования Данные пакетной и потоковой аналитики или машинного обучения, например файлы журналов, данные Интернета вещей, истории посещений сайтов и большие наборы данных. Любой тип текстовых или двоичных данных, таких как данные серверной части приложений, архивируемые данные, мультимедийные хранилища для потоковой передачи и данные общего назначения.
Структура Иерархическая файловая система Хранилище объектов с одноуровневым пространством имен
Аутентификация Основана на удостоверениях Azure Active Directory Основана на общих секретах — ключи доступа к учетным записям, ключи подписанных URL-адресов и управление доступом на основе ролей Azure (Azure RBAC)
Протокол аутентификации OAuth 2.0. Вызовы должны содержать допустимый маркер JWT (JSON Web Token), выданный Azure Active Directory. Код проверки подлинности сообщения на основе хэша (HMAC). Вызовы должны содержать хэш SHA-256 с кодировкой Base64 для части HTTP-запроса.
Авторизация Списки управления доступом (ACL) POSIX. Списки ACL на основе удостоверений Azure Active Directory можно настроить на уровне файлов и папок. Для авторизации на уровне учетной записи используйте ключи доступа к учетным записям, а для авторизации в учетной записи, контейнере или большом двоичном объекте — ключи подписанных URL-адресов.
Аудит Доступен. Доступно
Шифрование при хранении Прозрачное шифрование данных на стороне сервера. Прозрачное шифрование на стороне сервера; шифрование на стороне клиента.
Пакеты SDK для разработчиков .NET, Java, Python, Node.js .NET, Java, Python, Node.js, C++, Ruby
Производительность рабочих нагрузок аналитики Оптимизированная производительность для параллельных рабочих нагрузок аналитики, высокой пропускной способности и операций ввода-вывода. Не оптимизирована для рабочих нагрузок аналитики
Ограничения размера Нет ограничений на размер учетных записей, размер и количество файлов Определенные ограничения описаны здесь
Геоизбыточность Локальная избыточность (LRS), глобальная избыточность (GRS), геоизбыточность с доступом на чтение (RA-GRS), избыточность в пределах зоны (ZRS). Локальная избыточность (LRS), глобальная избыточность (GRS), геоизбыточность с доступом на чтение (RA-GRS), избыточность в пределах зоны (ZRS). Дополнительные сведения см. здесь.

Возможности баз данных NoSQL

Функция Azure Cosmos DB HBase в HDInsight
Модель базы данных-источника Хранилище документов, граф, хранилище пар "ключ-значение", хранилище широких столбцов Хранилище широких столбцов
Вторичные индексы Да Нет
Поддержка языка SQL Да Да (с помощью драйвера Phoenix JDBC)
Согласованность Строгая согласованность, согласованность с ограниченным устареванием, согласованность уровня сеанса, согласованность префиксов или согласованность в конечном счете. Уровень согласованности "Строгая"
Встроенная интеграция с решением "Функции Azure" Да Нет
Автоматическое глобальное распределение Да Репликация кластера HBase не может быть настроена между регионами с итоговой согласованностью
Модель ценообразования Гибко масштабируемые единицы запроса (ЕЗ) с посекундной оплатой по мере использования, гибко масштабируемое хранилище Поминутная оплата кластера HDInsight (с горизонтальным масштабированием узлов), хранилище

Возможности аналитических баз данных

Возможности Azure Data Explorer
Модель базы данных-источника Реляционное хранилище (хранилище столбцов) данных телеметрии и временных рядов
Поддержка языка SQL Да
Модель ценообразования Эластично масштабируемые экземпляры кластера
Аутентификация Основана на удостоверениях Azure Active Directory
Шифрование при хранении Поддерживается, используются ключи, управляемые клиентом
Производительность рабочих нагрузок аналитики Оптимизированная производительность для параллельных рабочих нагрузок аналитики
Ограничения размера Линейная масштабируемость

Соавторы

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

Основной автор: