Volba rozhraní API ve službě Azure Cosmos DB

PLATÍ PRO: NoSQL MongoDB Cassandra Gremlin Tabulka Postgresql

Azure Cosmos DB je plně spravovaná databáze NoSQL, relační a vektorová databáze pro moderní vývoj aplikací. Azure Cosmos DB přebírá správu databáze z rukou pomocí automatické správy, aktualizací a oprav. Zajišťuje také správu kapacity s nákladově efektivními možnostmi bezserverového a automatického škálování, které reagují na aplikaci, aby odpovídaly kapacitě s poptávkou.

Rozhraní API ve službě Azure Cosmos DB

Azure Cosmos DB nabízí několik databázových rozhraní API, mezi která patří NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin a Table. Pomocí těchto rozhraní API můžete modelovat skutečná data pomocí dokumentů, klíčových hodnot, grafu a datových modelů rodiny sloupců. Tato rozhraní API umožňují vašim aplikacím zacházet se službou Azure Cosmos DB, jako by šlo o různé jiné technologie databází, bez režijních nákladů na správu a škálování přístupů. Azure Cosmos DB vám pomůže používat ekosystémy, nástroje a dovednosti, které už máte pro modelování dat a dotazování pomocí různých rozhraní API.

Všechna rozhraní API nabízejí automatické škálování úložiště a propustnosti, flexibility a záruky výkonu. Neexistuje žádné nejlepší rozhraní API a můžete zvolit jedno z rozhraní API pro sestavení vaší aplikace. Tento článek vám pomůže zvolit rozhraní API na základě vašich požadavků na úlohy a tým.

Důležité informace o výběru rozhraní API

Rozhraní API pro NoSQL je nativní pro službu Azure Cosmos DB.

Rozhraní API pro MongoDB, PostgreSQL, Cassandra, Gremlin a Table implementují wire protokol opensourcových databázových strojů. Tato rozhraní API jsou nejvhodnější, pokud jsou splněny následující podmínky:

  • Pokud máte existující aplikace MongoDB, PostgreSQL Cassandra nebo Gremlin
  • Pokud nechcete přepsat celou vrstvu přístupu k datům
  • Pokud chcete pro vaši databázi používat opensourcový ekosystém vývojářů, ovladače klientů, odborné znalosti a prostředky
  • Pokud chcete použít základní funkce služby Azure Cosmos DB, například:
    • Globální distribuce
    • Elastické škálování úložiště a propustnosti
    • Vysoký výkon ve velkém měřítku
    • Nízká latence
    • Schopnost spouštět transakční a analytické úlohy
    • Plně spravovaná platforma
  • Pokud vyvíjíte modernizované aplikace v prostředí s více cloudy

Pomocí těchto rozhraní API můžete vytvářet nové aplikace nebo migrovat stávající data. Pokud chcete migrované aplikace spustit, změňte připojovací řetězec aplikace a pokračujte v provozu jako předtím. Při migraci existujících aplikací nezapomeňte vyhodnotit podporu funkcí těchto rozhraní API.

Na základě vaší úlohy musíte zvolit rozhraní API, které odpovídá vašemu požadavku. Následující obrázek znázorňuje vývojový diagram, jak zvolit správné rozhraní API při vytváření nových aplikací nebo migraci existujících aplikací do služby Azure Cosmos DB:

Diagram rozhodovacího stromu pro výběr rozhraní API ve službě Azure Cosmos DB

Diagram rozhodovacího stromu pro výběr rozhraní API ve službě Azure Cosmos DB Polovina diagramu znázorňuje, kolik existujících opensourcových databázových úloh může používat odpovídající rozhraní API pro službu Azure Cosmos DB. Druhá polovina diagramu ukazuje, jak můžou nové aplikace používat rozhraní API pro NoSQL, nebo vaše stávající dovednosti s rozhraními API pro opensourcové databáze.

Rozhraní API pro NoSQL

Rozhraní API služby Azure Cosmos DB for NoSQL ukládá data ve formátu dokumentu. Nabízí nejlepší ucelené prostředí, protože máme plnou kontrolu nad rozhraním, službou a klientskými knihovnami SDK. Všechny nové funkce, které se nasadí do služby Azure Cosmos DB, jsou nejprve k dispozici v účtech API pro NoSQL. Účty NoSQL poskytují podporu dotazování položek pomocí syntaxe jazyk SQL (Structured Query Language) (SQL), jeden z nejoblíbenějších a nejoblíbenějších dotazovacího jazyka pro dotazování objektů JSON. Další informace najdete v modulu trénování rozhraní API služby Azure Cosmos DB pro NoSQL a v článku Začínáme s dotazy SQL.

Pokud migrujete z jiných databází, jako je Oracle, DynamoDB, HBase atd. A pokud chcete k vytváření aplikací používat modernizované technologie, doporučujeme použít rozhraní API for NoSQL. Rozhraní API pro NoSQL podporuje analýzy a nabízí izolaci výkonu mezi provozními a analytickými úlohami.

Rozhraní API pro MongoDB

Rozhraní API služby Azure Cosmos DB pro MongoDB ukládá data ve struktuře dokumentů prostřednictvím formátu BSON. Je kompatibilní s wire protocolem MongoDB; nepoužívá ale žádný nativní kód související s MongoDB. Rozhraní API pro MongoDB je skvělou volbou, pokud chcete používat širší ekosystém a dovednosti MongoDB, aniž byste museli ohrozit používání funkcí služby Azure Cosmos DB.

Mezi funkce, které azure Cosmos DB poskytuje, nemusíte ohrozit zabezpečení, patří:

  • Škálování
  • Vysoká dostupnost
  • Geografická replikace
  • Více umístění zápisu
  • Automatická a transparentní správa horizontálních oddílů
  • Transparentní replikace mezi provozními a analytickými úložišti

Stávající aplikace MongoDB můžete používat s rozhraním API pro MongoDB pouhým změnou připojovací řetězec. Jakákoli existující data můžete přesunout pomocí nativních nástrojů MongoDB, jako je mongodump a mongorestore nebo pomocí našeho nástroje pro migraci databází Azure. Nástroje, jako je prostředí MongoDB, Compass MongoDB a Robo3T, můžou spouštět dotazy a pracovat s daty stejně jako s nativní mongoDB. Další informace najdete v článku o rozhraní API pro MongoDB .

Rozhraní API pro PostgreSQL

Azure Cosmos DB for PostgreSQL je spravovaná služba pro provozování PostgreSQL v libovolném měřítku s opensourcovou supermocí Citus distribuovaných tabulek. Ukládá data buď na jednom uzlu, nebo distribuovaná v konfiguraci s více uzly.

Služba Azure Cosmos DB for PostgreSQL je založená na nativním postgreSQL, nikoli na forku PostgreSQL, a umožňuje zvolit všechny hlavní verze databáze podporované komunitou PostgreSQL. Je ideální pro spuštění databáze s jedním uzlem s bohatou podporou indexování, geoprostorových funkcí a podpory JSONB. Pokud později potřebujete vyšší výkon, můžete do clusteru přidat uzly s nulovým výpadkem.

Pokud hledáte spravovanou opensourcovou relační databázi s vysokým výkonem a geografickou replikací, doporučuje se azure Cosmos DB for PostgreSQL. Další informace najdete v úvodu ke službě Azure Cosmos DB for PostgreSQL.

Rozhraní API pro Apache Cassandra

Rozhraní API služby Azure Cosmos DB pro Cassandra ukládá data ve sloupcovém schématu. Apache Cassandra nabízí vysoce distribuovaný a horizontálně škálovaný přístup k ukládání velkých objemů dat a současně nabízí flexibilní přístup ke schématu orientovanému na sloupce. Rozhraní API pro Cassandra ve službě Azure Cosmos DB odpovídá této filozofie přístupu k distribuovaným databázím NoSQL. Toto rozhraní API pro Cassandra je wire protocol kompatibilní s nativní apache Cassandra. Pokud chcete využívat elasticitu a plně spravovanou povahu služby Azure Cosmos DB a stále používat většinu nativních funkcí, nástrojů a ekosystému Apache Cassandra, měli byste zvážit rozhraní API pro Cassandru. Tato plně spravovaná povaha znamená, že rozhraní API pro Cassandru nemusíte spravovat operační systém, virtuální počítač Java, uvolňování paměti, výkon čtení a zápisu, uzly, clustery atd.

K připojení k rozhraní API pro Cassandra pro Cassandra můžete použít klientské ovladače Apache Cassandra. Rozhraní API pro Cassandra umožňuje pracovat s daty pomocí jazyka CQL (Cassandra Query Language) a nástrojů, jako jsou prostředí CQL, klientské ovladače Cassandra, které už znáte. Rozhraní API pro Cassandra aktuálně podporuje pouze scénáře OLTP. Pomocí rozhraní API pro Cassandra můžete také použít jedinečné funkce služby Azure Cosmos DB, jako je kanál změn. Další informace najdete v článku o rozhraní API pro Cassandra . Další informace, pokud už znáte Apache Cassandra, ale s Azure Cosmos DB začínáte, přečtěte si , jak se přizpůsobit rozhraní API pro Cassandra.

Rozhraní API pro Apache Gremlin

Rozhraní API služby Azure Cosmos DB pro Gremlin umožňuje uživatelům vytvářet dotazy na grafy a ukládá data jako hrany a vrcholy.

Pro scénáře použijte rozhraní API pro Gremlin:

  • Zapojení dynamických dat
  • Zapojení dat do složitých vztahů
  • Zapojení dat, která jsou příliš složitá, aby bylo možné modelovat pomocí relačních databází
  • Pokud chcete použít stávající ekosystém a dovednosti Gremlin

Rozhraní API pro Gremlin kombinuje výkon algoritmů grafových databází s vysoce škálovatelnou a spravovanou infrastrukturou. Toto rozhraní API poskytuje jedinečné a flexibilní řešení běžných problémů s daty spojenými s nedostatkem flexibility nebo relačních přístupů. Rozhraní API pro Gremlin aktuálně podporuje pouze scénáře OLTP.

Rozhraní API pro Gremlin je založené na architektuře grafů Apache TinkerPop . Rozhraní API pro Gremlin používá stejný dotazovací jazyk Graphu k ingestování a dotazování dat. Používá strategii oddílů Azure Cosmos DB k provádění operací čtení a zápisu z databázového stroje Graph. Rozhraní API pro Gremlin má podporu přenosového protokolu s opensourcovým rozhraním Gremlin, takže k sestavení aplikace můžete použít opensourcové sady Gremlin SDK. Rozhraní API pro Gremlin funguje také s Apache Sparkem a GraphFrames pro komplexní scénáře analytických grafů. Další informace najdete v článku o rozhraní API pro Gremlin .

Rozhraní API pro tabulku

Rozhraní API služby Azure Cosmos DB pro tabulky ukládá data ve formátu klíč/hodnota. Pokud aktuálně používáte Azure Table Storage, můžou se zobrazit určitá omezení latence, škálování, propustnosti, globální distribuce, správa indexů, nízký výkon dotazů. Rozhraní API pro tabulku tato omezení překonat a doporučuje se migrovat aplikaci, pokud chcete využívat výhody služby Azure Cosmos DB. Rozhraní API pro tabulku podporuje pouze scénáře OLTP.

Aplikace napsané pro Azure Table Storage můžou migrovat do rozhraní API pro tabulku s malými změnami kódu a využívat prémiové funkce. Další informace najdete v článku o rozhraní API pro tabulku .

Plánování kapacity při migraci dat

Pokoušíte se naplánovat kapacitu pro migraci do služby Azure Cosmos DB for NoSQL nebo MongoDB z existujícího databázového clusteru? Informace o stávajícím databázovém clusteru můžete použít k plánování kapacity.

Další kroky