Каковы различия в хранилище между Cosmosdb sql api и Cosmosdb cassandra api
В большинстве статей упоминается, что если мы используем Cosmos Db и вновь создаем наше приложение, мы должны использовать Cosmos db sql api . Mongo api и cassandra api можно использовать, когда ваше приложение уже интегрировано с реальными mongo и cassandra, и мы хотим быстро перейти на cosmosdb и не менять экосистему.
Но когда мы создаем новый кластер cosmosdb в лазурном, он запрашивает тип api. Это означает, что внутри должны быть некоторые различия в хранилище и различия в обработке внутренних движков, помимо интерфейсов api(запросов).
Я хотел бы понять, в чем заключаются эти различия, на основании которых мы должны решить, какой API выбрать.
2 ответа
Да, существуют различия в том, как Azure хранит данные. Помимо хранилища, разные API поддерживают собственный проводной протокол, используемый для связи.
Из лазурных гидов:
Azure Cosmos DB - это глобально распределенная многомодельная служба базы данных Microsoft. Если многомодель означает, что Azure Cosmos DB поддерживает несколько API-интерфейсов и несколько моделей данных, разные API-интерфейсы используют разные форматы данных для хранения и проводного протокола. Например, SQL использует JSON, MongoDB использует BSON, Table использует EDM, Cassandra использует CQL, Gremlin использует формат JSON.
Учетные записи API SQL Azure Cosmos DB поддерживают запросы к элементам с использованием sql в качестве языка запросов JSON.
API MongoDB для Azure Cosmos DB совместим с проводным протоколом MongoDB версии 3.6.
API Cassandra для Azure Cosmos DB совместим с версией CQL v4. Однако для команд CQL есть ограничения.
Пожалуйста, обратитесь к https://docs.microsoft.com/en-us/azure/cosmos-db/cassandra-support для получения дополнительных сведений.
Бэкэнд инфраструктуры хранения такой же. Есть некоторая разница для приспособления различных API, но это деталь реализации, предназначенная для обеспечения совместимости и точности с каждым из поддерживаемых API.
Если у вас есть база данных MongoDB или Cassandra и вы хотите перейти на полностью управляемый интерфейс, выберите один из них. Или, если вы глубоко знакомы с MongoDB или Cassandra и не хотите изучать API Cosmos DB, тогда, конечно, выберите один из них.
Все остальные API-интерфейсы построены на основе API-интерфейса Core (SQL) Cosmos DB, а SDK для этого API-интерфейса созданы этой командой. Любые новые функции в Cosmos DB, например Change Streams, основаны на функциях, уже имеющихся в основной службе, поэтому, конечно, новые функции сначала поступают в Core API, а затем в другие API.
Надеюсь, это поможет.