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


Общие сведения о моделях данных

Современные решения обрабатывают различные данные, такие как транзакции, события, документы, телеметрия, двоичные ресурсы и аналитические факты. Одно хранилище данных редко удовлетворяет всем шаблонам доступа. Большинство операционных систем применяют "polyglot persistence", что означает, что вы выбираете несколько моделей хранения. В этой статье централизованы канонические определения основных моделей хранилища данных, доступных в Azure, и предоставляются сравнительные таблицы для ускорения выбора моделей перед выбором конкретных служб.

Чтобы выбрать модели данных, выполните следующие действия.

  1. Определите шаблоны доступа к рабочей нагрузке, такие как точечные чтения, агрегации, полнотекстовый поиск, поиск по схожести, поиск по временным окнам и доставка объектов.

  2. Сопоставьте шаблоны с моделями хранения в последующих разделах.

  3. Создайте краткий список служб Azure, реализующих эти модели.

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

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

Как пользоваться руководством

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

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

Общие сведения о классификации

Категория Основная цель Типичные примеры служб Azure
Реляционный (OLTP) Согласованные транзакционные операции База данных SQL Azure, База данных Azure для PostgreSQL или База данных Azure для MySQL
Нереляционные, такие как документ, ключ-значение, семейство столбцов и граф Гибкая схема или рабочие нагрузки, ориентированные на отношения API Azure Cosmos DB, Управляемый Redis Azure, Управляемая Cassandra или HBase
Временной ряд Метрики и события с высокой скоростью приема и отметками времени Анализатор данных Azure
Объект и файл Большое двоичное или частично структурированное хранилище файлов Хранилище Azure Blob или Azure Data Lake Storage
Поиск и индексирование Полнотекстовый и многополевой поиск, вторичное индексирование Поиск с использованием ИИ Azure
Vector Семантическое или приблизительное ближайшее соседство (ANN) Варианты Azure AI Search или Azure Cosmos DB
Аналитика, интерактивная аналитическая обработка (OLAP), массовая параллельная обработка (MPP) Крупномасштабная статистическая обработка или бизнес-аналитика (BI) Microsoft Fabric, Azure Synapse Analytics, Azure Data Explorer, Azure Analysis Services или Azure Databricks

Замечание

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

Реляционные хранилища данных

Системы управления реляционными базами данных упорядочивают данные в нормализованные таблицы с помощью схемы при записи. Они обеспечивают целостность и поддерживают атомарность, согласованность, изоляцию и устойчивость транзакций (ACID) и расширенные запросы SQL.

Сильные стороны: Согласованность транзакций с несколькими строками, сложные соединения, строгие реляционные ограничения и зрелые средства для создания отчетов, администрирования и управления.

Соображения: Горизонтальное масштабирование обычно требует шардинга или секционирования, а нормализация может увеличить затраты на выполнение операций объединения для денормализованных представлений с большим объемом чтения.

Рабочих нагрузок: Управление заказами, отслеживание инвентаризации, запись финансового реестра, выставление счетов и операционные отчеты.

Выбор службы Azure для реляционных хранилищ данных

  • База данных SQL — это управляемая реляционная база данных для современных облачных приложений, использующих подсистему SQL Server.

  • Управляемый экземпляр SQL Azure — это почти полная среда SQL Server в облаке, идеально подходящая для миграций с минимальными изменениями.

  • База данных SQL (гипермасштабирование) — это высокомасштабируемый уровень SQL, предназначенный для больших рабочих нагрузок с быстрым автомасштабированием и быстрыми резервными копиями.

  • База данных Azure для PostgreSQL — это управляемая служба PostgreSQL, которая поддерживает расширения с открытым кодом и гибкие варианты развертывания.

  • База данных Azure для MySQL — это управляемая база данных MySQL для веб-приложений и рабочих нагрузок с открытым кодом.

  • База данных SQL в Fabric — это удобная для разработчика транзакционная база данных на основе базы данных SQL, которую можно легко использовать для создания операционной базы данных в Fabric.

Используйте следующую таблицу, чтобы определить, какая служба Azure соответствует вашим требованиям к варианту использования.

Услуга Лучше всего подходит для Ключевые особенности Пример варианта использования
База данных SQL Облачные приложения Управляемые, эластичные пулы, гипермасштабирование, встроенная высокая доступность, расширенная безопасность Создание современного программного обеспечения как службы (SaaS) с помощью масштабируемой серверной части SQL
Управляемый экземпляр SQL Устаревшие корпоративные приложения Полная поддержка совместимости SQL Server, поддержка переноса и миграции, виртуальные сети, расширенный аудит Перенос локального приложения SQL Server с помощью минимальных изменений кода
База данных SQL (гипермасштабирование) Глобальное распределение Масштабируемость чтения в нескольких регионах, георепликация, быстрая автомасштабирование Обслуживание глобально распределенного приложения, требующего высокой пропускной способности чтения
База данных Azure для PostgreSQL Рабочие нагрузки с открытым кодом, аналитика PostGIS, Гипермасштабирование, гибкий сервер, расширения с открытым кодом Разработка приложения геопространственной аналитики с помощью PostgreSQL и PostGIS
База данных Azure для MySQL Упрощенные веб-приложения Гибкий сервер, совместимость с открытым исходным кодом, экономичность Размещение сайта электронной коммерции на основе WordPress
База данных SQL в Fabric Рабочие нагрузки обработки транзакций в сети (OLTP) в экосистеме Fabric Встроенная подсистема СУБД SQL, масштабируемая и интегрированная в Fabric Создание приложений искусственного интеллекта в операционной модели реляционных данных, которая включает собственные возможности поиска векторов

Нереляционные хранилища данных

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

Хранилища данных документов

Используйте хранилища данных документов для хранения полуструктурированных документов, часто в формате JSON, где каждый документ содержит именованные поля и данные. Эти данные могут быть простыми значениями или сложными элементами, такими как списки и дочерние коллекции. Гибкость схемы для каждого документа позволяет постепенное развитие.

Сильные стороны: Сопоставление объектов естественного приложения, денормализованные агрегаты, индексирование с несколькими полями

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

Рабочие нагрузки: Каталоги продуктов, управление содержимым, магазины профилей

Выбор службы Azure для хранилищ данных документов

  • Azure Cosmos DB для NoSQL — это безсхемная, многорегиональная база данных NoSQL с низкой задержкой при чтении и записи.

  • Azure Cosmos DB для MongoDB — это глобально распределенная база данных, совместимая с проволочным протоколом MongoDB и поддерживающая автомасштабирование.

  • Azure Cosmos DB в Fabric — это бессхемная база данных NoSQL с низкой задержкой чтения и записи, упрощенным управлением и встроенной аналитикой Fabric.

Используйте следующую таблицу, чтобы определить, какая служба Azure соответствует вашим требованиям к варианту использования.

Услуга Лучше всего подходит для Ключевые особенности Пример варианта использования
Azure Cosmos DB для работы с NoSQL Пользовательские модели документов JSON, поддерживающие запросы, подобные SQL Расширенный язык запросов, многорегиональные записи, время жизни (TTL), канал изменений Создание мультитенантной платформы SaaS, поддерживающей гибкие схемы
Azure Cosmos DB for MongoDB Приложения, использующие драйверы MongoDB или API, ориентированные на JSON Глобальное распределение, автомасштабирование, собственный протокол подключения MongoDB Перенос приложения Node.js из MongoDB в Azure
Azure Cosmos DB в Fabric Аналитика в режиме реального времени по данным NoSQL Автоматическое извлечение, преобразование и загрузка (ETL) в OneLake через интеграцию с Fabric Приложения транзакций, включающие аналитические панели мониторинга в режиме реального времени

Хранилища данных семейства столбцов

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

Сильные стороны: Высокая пропускная способность записи, эффективное извлечение широких или разреженных наборов данных, динамическая схема в семействах

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

Рабочие нагрузки: данные телеметрии Интернета вещей (IoT), персонализации, предварительной агрегации и аналитики временных рядов, если не используется выделенная база данных временных рядов

Выбор службы Azure для хранилищ данных семейства столбцов

  • Управляемый экземпляр Azure для Apache Cassandra — это управляемая служба для кластеров Apache Cassandra с открытым кодом.

  • Apache HBase в Azure HDInsight — это масштабируемое хранилище NoSQL для рабочих нагрузок больших данных, созданных на основе Apache HBase и экосистемы Hadoop.

  • Azure Data Explorer (Kusto) — это обработчик аналитики для данных телеметрии, журналов и временных рядов, использующих язык запросов Kusto (KQL).

Используйте следующую таблицу, чтобы определить, какая служба Azure соответствует вашим требованиям к варианту использования.

Услуга Лучше всего подходит для Ключевые особенности Пример варианта использования
Управляемый экземпляр Azure для Apache Cassandra Новые и перенесенные рабочие нагрузки Cassandra Управляемый, собственный Apache Cassandra Сбор телеметрии устройств интернет вещей с поддержкой совместимости с Cassandra
Apache HBase в HDInsight Экосистема Hadoop, пакетная аналитика Интеграция распределенной файловой системы Hadoop (HDFS) с крупномасштабной пакетной обработкой Пакетная обработка данных датчика в производственном заводе
Azure Data Explorer (Kusto) Высокопроизводительная телеметрия, аналитика временных рядов KQL, быстрые нерегламентированные запросы, функции временных окон Аналитика в режиме реального времени для журналов приложений и метрик

Хранилища данных "ключ—значение"

Хранилище данных "ключ-значение" связывает каждое значение данных с уникальным ключом. Большинство хранилищ key-value поддерживают только простые операции запроса, вставки и удаления. Чтобы изменить значение частично или полностью, приложение должно перезаписать существующие данные для всего значения. В большинстве реализаций чтение или запись одного значения является атомарной операцией.

Сильные стороны: Простота, низкая задержка, линейная масштабируемость

Соображения: Ограниченная выразительность запросов, необходимость в переработке для поиска на основе значений, высокая стоимость перезаписи больших значений

Рабочие нагрузки: Кэширование, сеансы, флаги функций, профили пользователей, рекомендательные запросы

Выберите службу Azure для хранилищ данных типа 'ключ-значение'.

  • Управляемый Redis Azure — это управляемое хранилище данных в памяти на основе последней версии Redis Enterprise, которая обеспечивает низкую задержку и высокую пропускную способность.

  • Azure Cosmos DB для таблицы — это хранилище ключей, оптимизированное для быстрого доступа к структурированным данным NoSQL.

  • Azure Cosmos DB для NoSQL — это хранилище данных документов, оптимизированное для быстрого доступа к структурированным данным NoSQL и обеспечивающее горизонтальное масштабирование.

Используйте следующую таблицу, чтобы определить, какая служба Azure соответствует вашим требованиям к варианту использования.

Услуга Лучше всего подходит для Ключевые особенности Пример варианта использования
Управляемый Redis в Azure Высокоскоростное кэширование, состояние сеанса, публикация-подписка Хранилище в памяти, задержка субмиллисекунда, протокол Redis Кэширование страниц продуктов для сайта электронной коммерции
Azure Cosmos DB для таблицы Перенос существующих рабочих нагрузок хранилища таблиц Azure Совместимость API хранилища таблиц Хранение пользовательских настроек и параметров в мобильном приложении
Azure Cosmos DB для работы с NoSQL Высокоскоростное кэширование с большим масштабом и высокой доступностью Без схемы, мультирегиональный, автоматическое масштабирование Кэширование, состояние сеанса, уровень обслуживания

Графовые хранилища данных

База данных графа хранит сведения в виде узлов и ребер. Ребра определяют связи, а узлы и ребра могут иметь свойства, аналогичные столбцам таблицы. Вы можете анализировать подключения между сущностями, такими как сотрудники и отделы.

Сильные стороны: Приоритетное использование связей в шаблонах запросов, эффективные обходы с переменной глубиной

Соображения: Накладные расходы в случае неглубоких связей, требует тщательного моделирования для повышения производительности, не идеально подходит для массового аналитического сканирования

Рабочие нагрузки: Социальные сети, мошеннические сети, графы знаний, зависимости цепочки поставок

Выберите службу Azure для графовых хранилищ данных

Используйте расширения графа SQL Server для хранения графовых данных. Расширение графа расширяет возможности SQL Server, Базы данных SQL и Управляемого экземпляра SQL, чтобы обеспечить моделирование и запрос сложных связей с помощью структур графов непосредственно в реляционной базе данных.

Хранилища данных временных рядов

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

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

Соображения: Управление кардинальностью тегов, стоимость хранения, стратегия понижения детализации

Рабочих нагрузок: Метрики датчиков Интернета вещей, телеметрия приложений, мониторинг, промышленные данные

Выбор службы Azure для хранилищ данных временных рядов

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

Хранилища данных объектов

Храните большие двоичные или полуструктурированные объекты и включают метаданные, которые редко изменяются или остаются неизменяемыми.

Сильные стороны: Практически неограниченное масштабирование, многоуровневые затраты, устойчивость, возможность параллельного чтения

Соображения: Операции с целым объектом, ограниченные запросы метаданных, в конечном итоге — поведение перечисления

Рабочие нагрузки: Медиаресурсы, резервные копии, сырьевые зоны озера данных, архивы журналов

Выбор службы Azure для хранилищ данных объектов

  • Data Lake Storage — это хранилище объектов, оптимизированное для больших данных, которое объединяет иерархическое пространство имен и совместимость HDFS для расширенной аналитики и крупномасштабной обработки данных.

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

Используйте следующую таблицу, чтобы определить, какая служба Azure соответствует вашим требованиям к варианту использования.

Услуга Лучше всего подходит для Ключевые особенности Пример варианта использования
Data Lake Storage Аналитика больших данных и иерархические данные HDFS, иерархическое пространство имен, оптимизированное для аналитики Хранение и запрос петабайт структурированных и неструктурированных данных с помощью Azure Synapse Analytics или Azure Databricks
Хранилище блобов Хранилище объектов общего назначения Неструктурированное пространство имен, простое REST API и многоуровневое хранилище, включающее горячее, холодное и архивное хранилище Размещение изображений, документов, резервных копий и статического содержимого веб-сайта

Поиск и индексирование хранилищ данных

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

Сильные стороны: Полнотекстовые запросы, оценка, лингвистическое анализ, нечеткое сопоставление

Соображения: Итоговая согласованность индексов, отдельный конвейер приема или индексирования, стоимость больших обновлений индекса

Рабочих нагрузок: Поиск по сайту или продукту, поиск по журналам, фильтрация метаданных, обнаружение нескольких атрибутов

Выбор службы Azure для поиска хранилищ данных

Дополнительные сведения см. в разделе "Выбор хранилища данных поиска" в Azure.

Хранилища данных векторного поиска

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

Сильные стороны: Семантический поиск, алгоритмы ANN

Соображения: Индексирование сложности, затраты на хранение, задержка и точность, проблемы интеграции

Рабочих нагрузок: Поиск семантических документов, подсистемы рекомендаций, извлечение изображений и видео, мошенничество и обнаружение аномалий

Выбор службы Azure для хранилищ данных поиска в векторов

Дополнительные сведения см. в разделе "Выбор службы Azure" для поиска векторов.

Хранилища данных аналитики

Хранилища аналитических данных хранят большие данные и обеспечивают их долговременное сохранение в течение всего жизненного цикла аналитического процесса.

Сильные стороны: Масштабируемые вычислительные ресурсы и хранилище, поддержка SQL и Spark, интеграция с инструментами бизнес-аналитики, анализ временных рядов и телеметрии

Соображения: Затраты и сложность оркестрации, задержка запросов для нерегламентированных рабочих нагрузок, управление в нескольких доменах данных

Рабочих нагрузок: Корпоративные отчеты, аналитика больших данных, агрегирование телеметрии, операционные панели мониторинга, конвейеры обработки и анализа данных

Выбор службы Azure для хранилищ данных аналитики

Дополнительные сведения см. в статье "Выбор аналитического хранилища данных в Azure".

Сравнительные характеристики (основные нереляционные модели)

Аспект Документ Семейство столбцов ключ-значение Graph
Нормализация Денормализовано Денормализовано Денормализовано Нормализованные связи
Подход к схеме Схема при чтении Определенные семейства столбцов, схема столбцов при чтении Схема при чтении Схема при чтении
Согласованность (типичная) Настраиваемый для каждого элемента Для каждой строки или семейства Для каждого ключа Для каждого края или семантики обхода
Область атомарности Документ Строка или семейство в зависимости от реализации таблицы Один ключ Графовая транзакция (различается)
Блокировка и параллелизм Оптимистичный (ETag) Пессимистический или оптимистичный, в зависимости от реализации Оптимистичный (ключевой элемент) Оптимистичный (шаблон)
Шаблон доступа Агрегат (сущность) Широкие разреженные агрегаты Точечный поиск по ключу Обход связей
Индексирование Первичный и вторичный Основной и ограниченный вторичный уровень Первичный (ключ) Первичный и иногда вторичный
Фигура данных Гибкая иерархическая система Широкий формат таблицы с разреженными данными Непрозрачное значение Узлы и ребра
Разреженность/широкий подход Да/Да Да/Да Да/нет Нет/Нет
Типичный размер данных Малый–средний Средний–большой Небольшой Небольшой
Измерение масштабирования Число разделов Ширина семейства секций и столбцов Ключевое пространство Число узлов или ребер

Сравнительные характеристики (специализированные нереляционные модели)

Аспект Временной ряд Объект (большой двоичный объект) Поиск и индексирование
Нормализация Нормированный Денормализовано Денормализовано
Schema Схема при чтении (теги) Непрозрачное значение и метаданные Схема для записи (сопоставление индексов)
Область атомарности N/A (добавление) Object Для каждой операции с документом или индексацией
Шаблон доступа Сканирование по временным интервалам, агрегация окон Операции с целым объектом Текстовые запросы и фильтры
Индексирование Время и необязательный вторичный элемент Только ключ (путь) Инвертированные и необязательные аспекты
Фигура данных Табличный (метка времени, тэги, значение) Двоичный или большой двоичный объект с метаданными Маркеризованные текстовые и структурированные поля
Создать профиль Высокочастотное добавление Массовые или редкие обновления Индекс для пакетного или потокового обработки данных
Чтение профиля Агрегированные диапазоны Полное или частичное скачивание Наборы результатов с ранжированием
Драйвер роста Скорость событий, умноженная на коэффициент удержания Количество объектов и размер Индексированный объём документов
Допустимость согласованности Итоговая согласованность для поздно поступающих данных Чтение после записи для каждого объекта В конечном итоге для новых документов

Выбор моделей (эвристика)

Нуждаться Возможно, предпочтительно
Строгие транзакции с несколькими сущностями Реляционная
Развивающаяся агрегатная форма, ИНТЕРФЕЙСы API, ориентированные на JSON Документ
Поиск или кэширование ключей с крайней низкой задержкой ключ-значение
Широкая, разреженная, телеметрия с высокой нагрузкой на запись Семейство столбцов или временные ряды
Глубокий обход связей Graph
Массовые исторические аналитические сканирования Аналитика или OLAP
Большие неструктурированные двоичные файлы или озера данных Object
Релевантность полнотекстового текста и фильтрация Поиск и индексирование
Метрики с высокой загрузкой и метками времени с запросами с оконными функциями Временной ряд
Быстрое сходство (семантика или вектор) Векторный поиск

Объединение моделей и предотвращение ошибок

Используйте несколько моделей, если применяются следующие сценарии:

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

Избегайте преждевременной фрагментации:

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

Следите за следующими распространенными антипаттернами:

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

Когда необходимо повторно оценить выбор модели

Сигнал Возможное действие
Повышение числа динамических соединений в хранилище документов Введение реляционной модели чтения
Высокая нагрузка на ЦП в индексе поиска из-за аналитического агрегирования Разгрузка в подсистему аналитики
Крупные денормализованные документы создают конфликт частичного обновления Преобразование агрегатов или разделение
Запросы по временным окнам медленно выполняются в хранилище семейства столбцов Внедрение базы данных временных рядов с целью
Задержка при поиске точки увеличивается с увеличением глубины обхода графа Добавьте производные материализованные представления

Дальнейшие шаги

Используйте следующие статьи, чтобы выбрать специализированное хранилище данных:

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