Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Это важно
Azure Cosmos DB для PostgreSQL больше не поддерживается для новых проектов. Не используйте эту службу для новых проектов. Вместо этого используйте одну из этих двух служб:
Используйте Azure Cosmos DB для NoSQL как распределенное решение базы данных, предназначенное для крупномасштабных сценариев с соглашением об уровне доступности (SLA) 99.999%, мгновенным автомасштабированием и автоматическим переключением в случае отказа в нескольких регионах.
Используйте функцию эластичных кластеров Базы данных Azure для PostgreSQL для сегментированного PostgreSQL с помощью расширения Citus с открытым кодом.
Выполнение эффективных запросов в кластере требует правильного распределения таблиц между серверами. Рекомендуемое распределение зависит от типа приложения и применяемых в нем шаблонов запросов.
Существует широко два типа приложений, которые хорошо работают в Azure Cosmos DB для PostgreSQL. На первом этапе моделирования данных следует определить, к какому из указанных типов ближе ваше приложение.
Краткий обзор
| Приложения с несколькими клиентами | Приложения реального времени |
|---|---|
| Иногда в схеме бывают десятки или даже сотни таблиц. | Небольшое число таблиц |
| Запросы, касающиеся одного арендатора (компании/магазина) за раз | Относительно простые аналитические запросы с агрегатами |
| Рабочие нагрузки OLTP для обслуживания веб-клиентов | Высокий объем в основном неизменяемых данных, поступающих на обработку. |
| Рабочие нагрузки OLAP, которые обслуживают аналитические запросы для каждого арендатора | Часто сосредоточены вокруг большой таблицы событий |
Примеры и характеристики
Многопользовательское приложение
Обычно это приложения SaaS, которые обслуживают другие компании, учетные записи или организации. Большинство приложений SaaS по своей сути реляционные. У них есть естественное измерение для распределения данных по узлам: просто сегментирование по tenant_id.
Azure Cosmos DB для PostgreSQL позволяет масштабировать базу данных до миллионов клиентов, не перепроектировав приложение. Вы можете сохранить необходимую реляционную семантику, такую как соединения, ограничения внешнего ключа, транзакции, ACID и согласованность.
- Примеры: веб-сайты, на которых размещены витрины для других предприятий, например решения для цифрового маркетинга или инструменты автоматизации продаж.
- Характеристики: запросы, относящиеся к одному арендатору, а не объединение информации по арендаторам. Сюда входят рабочие нагрузки OLTP для обслуживания веб-клиентов и рабочие нагрузки OLAP, которые обслуживают аналитические запросы для каждого клиента. Наличие десятков или сотен таблиц в схеме базы данных также является показателем для модели данных с несколькими арендаторами.
Масштабирование мультитенантного приложения с помощью Azure Cosmos DB для PostgreSQL также требует минимальных изменений в коде приложения. У нас есть поддержка популярных фреймворков, таких как Ruby on Rails и Django.
Анализ в реальном времени
Приложения, требующие массового параллелизма, координации сотен ядер для быстрых результатов числовых, статистических или счетных запросов. Сегментируя (шардинг) и параллелизируя запросы SQL на нескольких узлах, Azure Cosmos DB для PostgreSQL позволяет выполнять запросы в режиме реального времени по миллиардам записей менее чем за секунду.
Таблицы в моделях данных аналитики в реальном времени обычно распределяются по столбцам, таким как user_id, host_id или device_id.
- Примеры: панели аналитики, ориентированные на клиентов, для которых требуется время отклика менее секунды.
- Характеристики: несколько таблиц, часто сосредоточенных вокруг большой таблицы событий устройства, сайта или пользователя и требующих большого объема приема в основном неизменяемых данных. Относительно простые (но требовательные к вычислениям) аналитические запросы, включающие несколько агрегатов и GROUP BY.
Если ваша ситуация похожа на любой случай выше, то следующий шаг — решить, как сегментировать данные в кластере. Для обеспечения производительности столбцы распределения, выбранные администратором базы данных, должны соответствовать шаблонам доступа типичных запросов.
Следующие шаги
- Выберите столбец распределения для таблиц в вашем приложении для эффективного распределения данных