Определение API-интерфейсов Azure Cosmos DB

Завершено

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

Azure Cosmos DB for NoSQL

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

SQL-запрос к базе данных Azure Cosmos DB, содержащей данные клиента, может выглядеть примерно так:

SELECT *
FROM customers c
WHERE c.id = "joe@litware.com"

Результат этого запроса состоит из одного или нескольких документов JSON, как показано ниже:

{
   "id": "joe@litware.com",
   "name": "Joe Jones",
   "address": {
        "street": "1 Main St.",
        "city": "Seattle"
    }
}

Azure Cosmos DB for MongoDB

MongoDB — это популярная база данных с открытым кодом, в которой данные хранятся в двоичном формате JSON (BSON). Azure Cosmos DB для MongoDB позволяет разработчикам использовать клиентские библиотеки MongoDB и код для работы с данными в Azure Cosmos DB.

Язык запросов MongoDB (MQL) использует компактный, объектно-ориентированный синтаксис, в котором разработчики используют объекты для вызова методов. Например, следующий запрос использует метод find для запроса коллекции products в объекте db:

db.products.find({id: 123})

Результаты этого запроса состоят из документов JSON и выглядят следующим образом:

{
   "id": 123,
   "name": "Hammer",
   "price": 2.99
}

Azure Cosmos DB for PostgreSQL

Azure Cosmos DB для PostgreSQL — это распределенный параметр PostgreSQL в Azure. Azure Cosmos DB для PostgreSQL — это собственная реляционная база данных PostgreSQL, которая автоматически сегментирует данные для создания высокомасштабируемых приложений. Вы можете приступить к созданию приложений в одной группе серверов узлов так же, как и в PostgreSQL в любом другом месте. По мере роста требований к масштабируемости и производительности приложения можно легко выполнить масштабирование до нескольких узлов, прозрачно распределяя таблицы. PostgreSQL — это реляционная система управления базами данных (RDBMS), в которой определяются реляционные таблицы данных, например вы можете определить таблицу таких продуктов:

ProductID НаименованиеПродукта Цена,
123 Hammer 2,99
162 Screwdriver 3.49

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

SELECT ProductName, Price 
FROM Products
WHERE ProductID = 123;

Результаты этого запроса содержат строку для продукта 123, как показано ниже.

НаименованиеПродукта Цена,
Hammer 2,99

Azure Cosmos DB for Table

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

PartitionKey RowKey Имя. Эл. почта
1 123 Joe Jones joe@litware.com
1 124 Samir Nadoy samir@northwind.com

Затем вы можете использовать API таблиц с помощью одного из пакетов SDK для конкретного языка, чтобы выполнить вызовы к конечной точке службы для получения данных из таблицы. Например, следующий запрос возвращает строку, содержащую запись для Samir Nadoy в предыдущей таблице:

https://endpoint/Customers(PartitionKey='1',RowKey='124')

Azure Cosmos DB for Apache Cassandra

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

Например, вы можете создать таблицу Employees следующим образом:

ИД Имя. Manager
1 Sue Smith
2 Ben Chan Sue Smith

Cassandra поддерживает синтаксис на основе SQL, поэтому клиентское приложение может получить запись для Ben Chan следующим образом:

SELECT * FROM Employees WHERE ID = 2

Azure Cosmos DB for Apache Gremlin

Azure Cosmos DB для Apache Gremlin используется с данными в структуре графа; в которых сущности определяются как вершины, которые формируют узлы в подключенном графе. Узлы соединяются по ребрам, которые представляют связи следующим образом:

Диаграмма: сотрудники и отделы и связи между ними

В примере на изображении показаны два типа вершин (сотрудник и отдел) и ребра, соединяющие их (сотрудник Ben является подчиненным сотрудника Sue, и оба сотрудника работают в отделе Hardware).

Синтаксис Gremlin включает функции для работы с вершинами и ребрами, позволяя вставлять, обновлять, удалять и запрашивать данные в графе. Например, можно использовать следующий код, чтобы добавить нового сотрудника с именем Alice, который будет подчиненным сотрудника с идентификатором 1 (Sue).

g.addV('employee').property('id', '3').property('firstName', 'Alice')
g.V('3').addE('reports to').to(g.V('1'))

Следующий запрос возвращает все вершины employee по порядку, который определяется идентификаторами.

 g.V().hasLabel('employee').order().by('id')