Общие сведения о распределенных реляционных базах данных
Область применения: Azure Cosmos DB для PostgreSQL (на базе расширения базы данных Citus до PostgreSQL)
Azure Cosmos DB — это глобально распределенная платформа баз данных для NoSQL и реляционных баз данных любого масштаба. В этой статье рассматриваются распределенные реляционные базы данных в контексте параметра реляционного API Azure Cosmos DB.
Дополнительные сведения о других вариантах хранения данных в Azure см. в разделе "Выбор правильного хранилища данных" в Центре архитектуры Azure.
Сложности
Многие раз, когда вы читаете о больших объемах или больших транзакционных рабочих нагрузках, легко подумать, что эти рабочие нагрузки гораздо больше, чем любое приложение может столкнуться. Предположение о том, что рабочая нагрузка будет оставаться небольшой, может быть безопасным предположением в начале проекта, идеи или организации. Однако это предположение может быстро привести к сценарию, в котором рабочая нагрузка вашего приложения растет далеко за рамки прогнозов, которые вы сделали. Это не редкость, чтобы услышать истории рабочих нагрузок, которые соответствуют максимальной пропускной способности или обработке базы данных одного экземпляра, которая была экономичной и производительностью в начале проекта.
Реляционные базы данных
Реляционные базы данных упорядочивают данные в табличном формате (строка или столбец) с отношениями между разными таблицами в базах данных. Реляционные базы данных распространены в различных предприятиях. У этих предприятий часто есть множество разработчиков программного обеспечения, которые написали код для реляционной базы данных или администраторов, которые разрабатывают схемы и управляют платформами реляционных баз данных. Реляционные базы данных также часто поддерживают транзакции с гарантиями ACID.
К сожалению, многие реляционные системы баз данных изначально настраиваются организациями с одним узлом с верхними ограничениями на вычислительные ресурсы, память и сетевые ресурсы. Этот контекст может привести к неправильному предположению о том, что все реляционные базы данных являются одним узлом по своей природе.
Распределенные базы данных
При использовании многих облачных документов часто приходится слышать о преимуществах баз данных NoSQL, что делает его похожим на реляционные базы данных не является разумным выбором для крупномасштабных баз данных или распределенных рабочих нагрузок. Хотя многие распределенные базы данных являются нереляционными, это варианты для распределенных рабочих нагрузок реляционной базы данных.
Многие из этих вариантов для распределенных реляционных баз данных требуют от организации планирования крупномасштабных и распределения с самого начала проекта. Это требование планирования может добавить значительную сложность в начале проекта, чтобы убедиться, что все соответствующие узлы сервера настроены, управляются и поддерживаются вашей командой. Требования к планированию, реализации и сети для глобально распределенной реляционной базы данных могут быть гораздо сложнее, чем стоять на одном экземпляре (или узле).
Azure Cosmos DB
Azure Cosmos DB — это платформа баз данных, которая предлагает api распределенных данных как в NoSQL, так и в реляционных вариантах. В частности, реляционный API для Azure Cosmos DB основан на PostgreSQL и расширении Citus.
Citus — это расширение PostgreSQL, которое добавляет поддержку Postgres для распределения данных и транзакций. Azure Cosmos DB для PostgreSQL — это полностью управляемая служба с помощью Citus, которая автоматически обеспечивает высокий уровень доступности без необходимости вручную планировать, управлять и поддерживать отдельные узлы сервера. С помощью API для PostgreSQL вы можете начать с полностью управляемого кластера с одним узлом, создать решение базы данных, а затем масштабировать его в готовом режиме по мере роста потребностей вашего приложения с течением времени. При использовании API для PostgreSQL нет необходимости заранее планировать сложный проект распространения или планировать проект для переноса данных из одного узла в распределенную базу данных вниз по дороге.
Следующие шаги
Хотите приступить к работе с Azure Cosmos DB?