Выбор API в Azure Cosmos DB

Область применения: Nosql Mongodb Кассандра Гремлин Стол PostgreSQL

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

API в Azure Cosmos DB

Azure Cosmos DB предлагает несколько API базы данных, включая NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin и Table. С помощью этих API можно моделировать реальные данные на основе документов, пар "ключ — значение", графов и моделей данных семейства столбцов. Эти API позволяют приложениям работать с Azure Cosmos DB так же, как и с другими СУБД, без дополнительных затрат на управление и масштабирование. Azure Cosmos DB помогает использовать экосистемы, инструменты и навыки, которые уже имеются для моделирования данных и выполнения запросов с помощью различных API.

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

Рекомендации по выбору API

API для NoSQL является собственным для Azure Cosmos DB.

API для MongoDB, PostgreSQL, Cassandra, Gremlin и Table реализуют протокол провода ядр субД с открытым кодом. Эти API лучше всего подходят в следующих случаях:

  • Если у вас есть приложения MongoDB, PostgreSQL Cassandra или Gremlin
  • Если вы не хотите переписать весь уровень доступа к данным
  • Если вы хотите использовать экосистему разработчика с открытым исходным кодом, клиентские драйверы, опыт и ресурсы для базы данных
  • Если вы хотите использовать основные функции Azure Cosmos DB, такие как:
    • Глобальное распределение
    • Эластичное масштабирование хранилища и пропускной способности
    • Высокая производительность в масштабе
    • Низкая задержка
    • Возможность выполнения транзакционных и аналитических рабочих нагрузок
    • Полностью управляемая платформа
  • При разработке модернизированных приложений в многооблачной среде

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

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

Схема дерева принятия решений для выбора API в Azure Cosmos DB.

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

API для NoSQL

API Azure Cosmos DB для NoSQL сохраняет данные в формате документа. Она поддерживает самые широкие возможности для полного контроля над интерфейсом, службой и клиентскими библиотеками SDK. Все новые функции, развернутые в Azure Cosmos DB, впервые доступны в API для учетных записей NoSQL. Учетные записи NoSQL поддерживают запросы элементов с помощью синтаксиса язык SQL (SQL), одного из самых знакомых и популярных языков запросов для запроса объектов JSON. Дополнительные сведения см. в модуле обучения API Azure Cosmos DB для NoSQL и начале работы с запросами SQL.

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

API для MongoDB

API Azure Cosmos DB для MongoDB сохраняет данные в структуре документа с помощью формата BSON. Он совместим с протоколом проводной передачи MongoDB; однако он не использует собственный связанный код MongoDB. API для MongoDB — это отличный выбор, если вы хотите использовать более широкую экосистему и навыки MongoDB без ущерба для использования функций Azure Cosmos DB.

Функции, предоставляемые Azure Cosmos DB, не должны компрометировать следующие компоненты:

  • Масштабирование
  • Высокая доступность
  • Георепликация
  • Несколько расположений записи
  • Автоматическое и прозрачное управление сегментами
  • Прозрачная репликация между операционными и аналитическими хранилищами

Вы можете использовать существующие приложения MongoDB с API для MongoDB, просто изменив строку подключения. Вы можете перемещать существующие данные с помощью собственных средств MongoDB, таких как mongodump и mongorestore, а также с помощью нашего средства миграции баз данных Azure. Такие инструменты, как MongoDB Shell, MongoDB Compassи Robo3T, могут выполнять запросы и работать с данными так же, как и непосредственно в MongoDB. Дополнительные сведения см. в статье, посвященной API для MongoDB.

API для PostgreSQL

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

Azure Cosmos DB для PostgreSQL основана на собственном языке PostgreSQL, а не на вилке PostgreSQL, и позволяет выбрать все основные версии базы данных, поддерживаемые сообществом PostgreSQL. Он идеально подходит для запуска базы данных с одним узлом с расширенными возможностями индексирования, геопространственных возможностей и поддержкой JSONB. Позже, если вам нужна дополнительная производительность, можно добавить узлы в кластер с нулевым временем простоя.

Если вы ищете управляемую открытый код реляционную базу данных с высокой производительностью и георепликацией, Azure Cosmos DB для PostgreSQL рекомендуется выбрать. Дополнительные сведения см. в обзоре Azure Cosmos DB для PostgreSQL.

API для Apache Cassandra

API Azure Cosmos DB для Cassandra хранит данные в схеме, ориентированной на столбцы. Apache Cassandra поддерживает высокораспределенный и горизонтальный подход к масштабированию для хранения больших объемов данных в сочетании с гибкими функциями работы с ориентированной на столбцы схемой. API для Cassandra в Azure Cosmos DB соответствует этой философии подходу к распределенным базам данных NoSQL. Этот API для Cassandra совместим с собственным протоколом Apache Cassandra. Вы должны рассмотреть API для Cassandra, если вы хотите воспользоваться эластичностью и полностью управляемым характером Azure Cosmos DB и по-прежнему использовать большинство собственных функций Apache Cassandra, инструментов и экосистемы. Эта полностью управляемая природа означает, что в API для Cassandra вам не нужно управлять ОС, виртуальной машиной Java, сборщиком мусора, производительностью чтения и записи, узлами, кластерами и т. д.

Клиентские драйверы Apache Cassandra можно использовать для подключения к API для Cassandra. API для Cassandra позволяет взаимодействовать с данными с помощью языка запросов Cassandra (CQL) и таких инструментов, как оболочка CQL, клиентские драйверы Cassandra, с которыми вы уже знакомы. API для Cassandra в настоящее время поддерживает только сценарии OLTP. Используя API для Cassandra, вы также можете использовать уникальные функции Azure Cosmos DB, такие как канал изменений. Дополнительные сведения см . в статье API для Cassandra . Дополнительные сведения, если вы уже знакомы с Apache Cassandra, но не знакомы с Azure Cosmos DB, узнайте , как адаптироваться к API для Cassandra.

API для Apache Gremlin

API Azure Cosmos DB для Gremlin позволяет пользователям выполнять запросы графов и хранить данные в виде ребер и вершин.

Используйте API для Gremlin для сценариев:

  • Участие динамических данных
  • Использование данных со сложными связями
  • Использование данных, которые слишком сложны для моделирования с реляционными базами данных
  • Если вы хотите использовать существующую экосистему Gremlin и навыки

API для Gremlin объединяет возможности алгоритмов базы данных графа с высокомасштабируемой управляемой инфраструктурой. Этот API предоставляет уникальное и гибкое решение распространенных проблем с данными, связанных с отсутствием гибкости или реляционных подходов. API для Gremlin в настоящее время поддерживает только сценарии OLTP.

API для Gremlin основан на платформе вычислений графов Apache TinkerPop . API для Gremlin использует тот же язык запросов Graph для приема и запроса данных. В нем применяется стратегия секционирования Azure Cosmos DB для выполнения операций чтения и записи из ядра СУБД Graph. API для Gremlin поддерживает протокол провода с открытым исходным кодом Gremlin, поэтому для создания приложения можно использовать пакеты SDK с открытым кодом Gremlin. API для Gremlin также работает с Apache Spark и GraphFrames для сложных сценариев аналитического графа. Дополнительные сведения см . в статье API для Gremlin .

API для таблицы

API Azure Cosmos DB для таблицы хранит данные в формате key/value. Если вы сейчас используете хранилище таблиц Azure, вы можете увидеть некоторые ограничения в задержке, масштабировании, пропускной способности, глобальном распределении, управлении индексами, низкой производительности запросов. API для таблицы преодолеет эти ограничения и рекомендуется перенести приложение, если вы хотите использовать преимущества Azure Cosmos DB. API для таблиц поддерживает только сценарии OLTP.

Приложения, написанные для хранилища таблиц Azure, могут перенестися в API для таблицы с небольшими изменениями кода и воспользоваться преимуществами возможностей ценовой категории "Премиум". Дополнительные сведения см . в статье API для таблиц .

Планирование емкости при переносе данных

Пытаясь выполнить планирование емкости для миграции в Azure Cosmos DB для NoSQL или MongoDB из существующего кластера базы данных? Для планирования ресурсов можно использовать сведения об имеющемся кластере базы данных.