Identyfikowanie interfejsów API usługi Azure Cosmos DB

Ukończone

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 Email
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:

Wykres przedstawiający pracowników i działy oraz połączenia między nimi

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')