Identifikace rozhraní API služby Azure Cosmos DB

Dokončeno

Azure Cosmos DB je plně spravovaná a bezserverová distribuovaná databáze Microsoftu pro aplikace libovolné velikosti nebo škálování s podporou relačních i nerelačních úloh. Vývojáři můžou rychle vytvářet a migrovat aplikace pomocí preferovaných opensourcových databázových strojů, včetně PostgreSQL, MongoDB a Apache Cassandra. Při zřizování nové instance Cosmos DB vyberete databázový stroj, který chcete použít. Volba modulu závisí na mnoha faktorech, mezi které patří typ dat, která se mají uložit, potřeba podporovat stávající aplikace a dovednosti vývojářů, kteří pracují s úložištěm dat.

Azure Cosmos DB for NoSQL

Azure Cosmos DB for NoSQL je nativní nerelační služba Microsoftu pro práci s datovým modelem dokumentu. Spravuje data ve formátu dokumentu JSON a navzdory tomu, že se jedná o řešení úložiště dat NoSQL, používá k práci s daty syntaxi SQL.

Dotaz SQL pro databázi Azure Cosmos DB obsahující zákaznická data může vypadat nějak takto:

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

Výsledek tohoto dotazu se skládá z jednoho nebo více dokumentů JSON, jak je znázorněno tady:

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

Azure Cosmos DB pro MongoDB

MongoDB je oblíbená opensourcová databáze, ve které jsou data uložená ve formátu Binary JSON (BSON). Azure Cosmos DB pro MongoDB umožňuje vývojářům používat klientské knihovny MongoDB a kód pro práci s daty ve službě Azure Cosmos DB.

Jazyk MongoDB Query Language (MQL) používá kompaktní objektově orientované syntaxi, ve které vývojáři používají objekty k volání metod. Například následující dotaz používá metodu find k dotazování kolekce produktů v objektu databáze :

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

Výsledky tohoto dotazu se skládají z dokumentů JSON, podobně jako v tomto příkladu:

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

Azure Cosmos DB for PostgreSQL

Azure Cosmos DB for PostgreSQL je distribuovaná možnost PostgreSQL v Azure. Azure Cosmos DB for PostgreSQL je nativní globálně distribuovaná relační databáze PostgreSQL, která automaticky horizontálně rozděluje data, která vám pomůžou vytvářet vysoce škálovatelné aplikace. Aplikace můžete začít vytvářet ve skupině serverů s jedním uzlem stejným způsobem jako s PostgreSQL kdekoli jinde. S rostoucími požadavky na škálovatelnost a výkon aplikace můžete prostřednictvím transparentní distribuce tabulek bezproblémově škálovat na více uzlů. PostgreSQL je systém pro správu relačních databází (RDBMS), ve kterém definujete relační tabulky dat, například můžete definovat tabulku produktů takto:

ProductID ProductName Cena
123 Kladivo 2.99
162 Šroubovák 3.49

Potom můžete zadat dotaz na tuto tabulku a načíst název a cenu konkrétního produktu pomocí jazyka SQL takto:

SELECT ProductName, Price 
FROM Products
WHERE ProductID = 123;

Výsledky tohoto dotazu by obsahovaly řádek pro produkt 123, například takto:

ProductName Cena
Kladivo 2.99

Azure Cosmos DB pro tabulku

Azure Cosmos DB for Table se používá k práci s daty v tabulkách klíč-hodnota, podobně jako Azure Table Storage. Nabízí větší škálovatelnost a výkon než Azure Table Storage. Můžete například definovat tabulku s názvem Zákazníci takto:

PartitionKey RowKey Název E-mail
0 123 Joe Jones joe@litware.com
0 124 Samir Nadoy samir@northwind.com

Rozhraní API pro tabulky pak můžete použít prostřednictvím jedné ze sad SDK specifických pro jazyk k volání koncového bodu služby za účelem načtení dat z tabulky. Například následující požadavek vrátí řádek obsahující záznam pro Samir Nadoy v předchozí tabulce:

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

Azure Cosmos DB pro Apache Cassandra

Azure Cosmos DB pro Apache Cassandra je kompatibilní s Apache Cassandra, což je oblíbená opensourcová databáze, která používá strukturu úložiště řady sloupců. Rodiny sloupců jsou tabulky podobné tabulkám v relační databázi s výjimkou, že pro každý řádek není povinné mít stejné sloupce.

Můžete například vytvořit tabulku Employees takto:

ID Name Manažer
0 Sue Smith
2 Ben Chan Sue Smith

Cassandra podporuje syntaxi založenou na SQL, takže klientská aplikace může načíst záznam pro Ben Chan takto:

SELECT * FROM Employees WHERE ID = 2

Azure Cosmos DB pro Apache Gremlin

Azure Cosmos DB pro Apache Gremlin se používá s daty ve struktuře grafu; ve kterých entitách jsou definovány jako vrcholy, které tvoří uzly v propojeném grafu. Uzly jsou propojené hrany, které představují relace, například takto:

Graf zobrazující zaměstnance a oddělení a propojení mezi nimi

Příklad na obrázku ukazuje dva druhy vrcholů (zaměstnance a oddělení) a hrany, které je spojují (sestavy "Ben" s zaměstnancem "Sue" a oba zaměstnanci pracují v oddělení Hardware).

Syntaxe Gremlin zahrnuje funkce pro práci s vrcholy a hrany, které umožňují v grafu vkládat, aktualizovat, odstraňovat a dotazovat data. Pomocí následujícího kódu můžete například přidat nového zaměstnance jménem Alice , který hlásí zaměstnanci s ID 1 (Sue).

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

Následující dotaz vrátí všechny vrcholy zaměstnanců v pořadí PODLE ID.

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