Определение 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')