Identyfikowanie interfejsów API usługi Azure Cosmos DB
Usługa Azure Cosmos DB to w pełni zarządzana i bezserwerowa rozproszona baza danych firmy Microsoft dla aplikacji o dowolnym rozmiarze lub skali z obsługą obciążeń relacyjnych i nierelacyjnych. Deweloperzy mogą szybko tworzyć i migrować aplikacje przy użyciu preferowanych aparatów baz danych typu open source, takich jak PostgreSQL, MongoDB i Apache Cassandra. Podczas aprowizowania nowego wystąpienia usługi Cosmos DB należy wybrać aparat bazy danych, którego chcesz użyć. Wybór aparatu zależy od wielu czynników, w tym typu danych do przechowywania, konieczności obsługi istniejących aplikacji oraz umiejętności deweloperów pracujących z magazynem danych.
Azure Cosmos DB for NoSQL
Usługa Azure Cosmos DB for NoSQL jest natywną usługą nierelacyjną firmy Microsoft do pracy z modelem danych dokumentów. Zarządza ona danymi w formacie dokumentu JSON, a mimo że jest rozwiązaniem do przechowywania danych NoSQL, używa składni SQL do pracy z danymi.
Zapytanie SQL dla bazy danych usługi Azure Cosmos DB zawierającej dane klienta może wyglądać mniej więcej tak:
SELECT *
FROM customers c
WHERE c.id = "joe@litware.com"
Wynik tego zapytania składa się z co najmniej jednego dokumentu JSON, jak pokazano poniżej:
{
"id": "joe@litware.com",
"name": "Joe Jones",
"address": {
"street": "1 Main St.",
"city": "Seattle"
}
}
Usługa Azure Cosmos DB dla bazy danych MongoDB
MongoDB to popularna baza danych typu open source, w której dane są przechowywane w formacie binarnym JSON (BSON). Usługa Azure Cosmos DB dla bazy danych MongoDB umożliwia deweloperom korzystanie z bibliotek klienckich i kodu bazy danych MongoDB do pracy z danymi w usłudze Azure Cosmos DB.
Język zapytań MongoDB (MQL) używa kompaktowej składni zorientowanej na obiekt, w której deweloperzy używają obiektów do wywoływania metod. Na przykład następujące zapytanie używa metody find do wykonywania zapytań dotyczących kolekcji products w obiekcie db:
db.products.find({id: 123})
Wyniki tego zapytania składają się z dokumentów JSON, podobnych do następujących:
{
"id": 123,
"name": "Hammer",
"price": 2.99
}
Azure Cosmos DB for PostgreSQL
Usługa Azure Cosmos DB for PostgreSQL to rozproszona opcja PostgreSQL na platformie Azure. Usługa Azure Cosmos DB for PostgreSQL to natywna, rozproszona globalnie relacyjna baza danych, która automatycznie fragmentuje dane, aby ułatwić tworzenie wysoce skalowalnych aplikacji. Możesz rozpocząć tworzenie aplikacji w pojedynczej grupie serwerów węzłów, tak samo jak w przypadku bazy danych PostgreSQL w dowolnym miejscu. W miarę zwiększania się wymagań dotyczących skalowalności i wydajności aplikacji można bezproblemowo skalować do wielu węzłów przez przezroczyste dystrybuowanie tabel. PostgreSQL to system zarządzania relacyjnymi bazami danych (RDBMS), w którym definiujesz tabele relacyjne danych, na przykład możesz zdefiniować tabelę produktów w następujący sposób:
ProductID | ProductName | Cena |
---|---|---|
123 | Młotek | 2,99 |
162 | Śrubokręt | 3.49 |
Następnie możesz wykonać zapytanie dotyczące tej tabeli, aby pobrać nazwę i cenę określonego produktu przy użyciu języka SQL w następujący sposób:
SELECT ProductName, Price
FROM Products
WHERE ProductID = 123;
Wyniki tego zapytania będą zawierać wiersz dla produktu 123, w następujący sposób:
ProductName | Cena |
---|---|
Młotek | 2,99 |
Usługa Azure Cosmos DB dla tabeli
Usługa Azure Cosmos DB dla tabeli służy do pracy z danymi w tabelach klucz-wartość, podobnie jak w usłudze Azure Table Storage. Zapewnia większą skalowalność i wydajność niż usługa Azure Table Storage. Możesz na przykład zdefiniować tabelę o nazwie Klienci w następujący sposób:
PartitionKey | RowKey | Nazwisko | |
---|---|---|---|
1 | 123 | Joe Jones | joe@litware.com |
1 | 124 | Samir Nadoy | samir@northwind.com |
Następnie możesz użyć interfejsu API tabel za pomocą jednego z zestawów SDK specyficznych dla języka, aby wykonać wywołania punktu końcowego usługi w celu pobrania danych z tabeli. Na przykład następujące żądanie zwraca wiersz zawierający rekord samir Nadoy w poprzedniej tabeli:
https://endpoint/Customers(PartitionKey='1',RowKey='124')
Usługa Azure Cosmos DB dla bazy danych Apache Cassandra
Usługa Azure Cosmos DB dla systemu Apache Cassandra jest zgodna z bazą danych Apache Cassandra, która jest popularną bazą danych typu open source korzystającą ze struktury magazynu rodziny kolumn. Rodziny kolumn to tabele, podobne do tych w relacyjnej bazie danych, z wyjątkiem, że nie jest to obowiązkowe dla każdego wiersza, aby mieć te same kolumny.
Możesz na przykład utworzyć tabelę Employees w następujący sposób:
IDENTYFIKATOR | Nazwisko | Menedżer |
---|---|---|
1 | Sue Smith | |
2 | Ben Chan | Sue Smith |
System Cassandra obsługuje składnię opartą na języku SQL, więc aplikacja kliencka może pobrać rekord dla Ben Chan w następujący sposób:
SELECT * FROM Employees WHERE ID = 2
Usługa Azure Cosmos DB dla języka Apache Gremlin
Usługa Azure Cosmos DB dla języka Apache Gremlin jest używana z danymi w strukturze grafu; w których jednostki są definiowane jako wierzchołki, które tworzą węzły w połączonym grafie. Węzły są połączone za pomocą krawędzi, które reprezentują relacje, w następujący sposób:
Na przykładzie na obrazie przedstawiono dwa rodzaje wierzchołka (pracownika i działu) i krawędzie łączące je (pracownik "Ben" raporty z pracownikiem "Sue", a obaj pracownicy pracują w dziale "Sprzęt").
Składnia języka Gremlin obejmuje funkcje do działania na wierzchołkach i krawędziach, co umożliwia wstawianie, aktualizowanie, usuwanie i wykonywanie zapytań dotyczących danych na grafie. Na przykład możesz użyć następującego kodu, aby dodać nowego pracownika o nazwie Alice, który raportuje do pracownika o identyfikatorze 1 (Sue)
g.addV('employee').property('id', '3').property('firstName', 'Alice')
g.V('3').addE('reports to').to(g.V('1'))
Poniższe zapytanie zwraca wszystkie wierzchołki pracowników w kolejności identyfikatora.
g.V().hasLabel('employee').order().by('id')