Wybieranie interfejsu API w usłudze Azure Cosmos DB
DOTYCZY: NoSQL MongoDB Kasandra Gremlin Stół PostgreSQL
Usługa Azure Cosmos DB to w pełni zarządzana baza danych NoSQL, relacyjna i wektorowa na potrzeby nowoczesnego tworzenia aplikacji. Usługa Azure Cosmos DB pobiera administrację bazą danych z rąk dzięki automatycznemu zarządzaniu, aktualizacjom i poprawce. Obsługuje również zarządzanie pojemnością dzięki ekonomicznemu bezserwerowemu i automatycznym opcjom skalowania, które odpowiadają na potrzeby aplikacji, aby dopasować pojemność do zapotrzebowania.
Interfejsy API w usłudze Azure Cosmos DB
Usługa Azure Cosmos DB oferuje wiele interfejsów API baz danych, takich jak NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin i Table. Korzystając z tych interfejsów API, można modelować dane rzeczywiste przy użyciu dokumentów, klucz-wartość, grafów i modeli danych rodziny kolumn. Te interfejsy API umożliwiają aplikacjom traktowanie usługi Azure Cosmos DB tak, jakby były to różne inne technologie baz danych, bez konieczności wprowadzania obciążeń związanych z zarządzaniem i skalowaniem. Usługa Azure Cosmos DB ułatwia korzystanie z ekosystemów, narzędzi i umiejętności, które już masz do modelowania danych i wykonywania zapytań za pomocą różnych interfejsów API.
Wszystkie interfejsy API oferują automatyczne skalowanie magazynu i przepływności, elastyczności i gwarancji wydajności. Nie ma jednego najlepszego interfejsu API i możesz wybrać jeden z interfejsów API do skompilowania aplikacji. Ten artykuł pomoże Ci wybrać interfejs API na podstawie wymagań dotyczących obciążenia i zespołu.
Zagadnienia dotyczące wybierania interfejsu API
Interfejs API dla noSQL jest natywny dla usługi Azure Cosmos DB.
Interfejs API dla baz danych MongoDB, PostgreSQL, Cassandra, Gremlin i Table implementuje protokół przewodowy aparatów baz danych typu open source. Te interfejsy API najlepiej nadają się, jeśli spełnione są następujące warunki:
- Jeśli masz istniejące aplikacje MongoDB, PostgreSQL Cassandra lub Gremlin
- Jeśli nie chcesz ponownie pisać całej warstwy dostępu do danych
- Jeśli chcesz używać ekosystemu deweloperów typu open source, sterowników klientów, wiedzy i zasobów dla bazy danych
- Jeśli chcesz użyć podstawowych funkcji usługi Azure Cosmos DB, takich jak:
- Globalne rozproszenie
- Elastyczne skalowanie magazynu i przepływności
- Wysoka wydajność na dużą skalę
- Małe opóźnienia
- Możliwość uruchamiania obciążeń transakcyjnych i analitycznych
- W pełni zarządzana platforma
- Jeśli tworzysz zmodernizowane aplikacje w środowisku wielochmurowym
Nowe aplikacje można tworzyć przy użyciu tych interfejsów API lub migrować istniejące dane. Aby uruchomić zmigrowane aplikacje, zmień parametry połączenia aplikacji i kontynuuj uruchamianie tak jak poprzednio. Podczas migrowania istniejących aplikacji należy ocenić obsługę funkcji tych interfejsów API.
Na podstawie obciążenia musisz wybrać interfejs API pasujący do wymagań. Na poniższej ilustracji przedstawiono wykres blokowy przedstawiający sposób wybierania odpowiedniego interfejsu API podczas tworzenia nowych aplikacji lub migrowania istniejących aplikacji do usługi Azure Cosmos DB:
Diagram drzewa decyzyjnego do wybrania interfejsu API w usłudze Azure Cosmos DB. Połowa diagramu ilustruje, ile istniejących obciążeń bazy danych typu open source może używać odpowiednich interfejsów API dla usługi Azure Cosmos DB. Druga połowa diagramu ilustruje, w jaki sposób nowe aplikacje mogą korzystać z interfejsu API dla NoSQL lub korzystać z istniejących umiejętności z interfejsami API dla baz danych typu open source.
Interfejs API dla noSQL
Interfejs API usługi Azure Cosmos DB dla noSQL przechowuje dane w formacie dokumentu. Oferuje ona najlepsze kompleksowe środowisko pracy, ponieważ mamy pełną kontrolę nad interfejsem, usługą i bibliotekami klienta zestawu SDK. Każda nowa funkcja wdrożona w usłudze Azure Cosmos DB jest najpierw dostępna na kontach interfejsu API dla noSQL. Konta NoSQL zapewniają obsługę wykonywania zapytań o elementy przy użyciu składni języka Structured Query Language (SQL), jednej z najbardziej znanych i popularnych języków zapytań do wykonywania zapytań względem obiektów JSON. Aby dowiedzieć się więcej, zobacz moduł szkoleniowy interfejsu API usługi Azure Cosmos DB dla noSQL i wprowadzenie do zapytań SQL.
Jeśli przeprowadzasz migrację z innych baz danych, takich jak Oracle, DynamoDB, HBase itp., a jeśli chcesz używać modernizowanych technologii do tworzenia aplikacji, zalecanym rozwiązaniem jest interfejs API for NoSQL. Interfejs API for NoSQL obsługuje analizę i oferuje izolację wydajności między obciążeniami operacyjnymi i analitycznymi.
Interfejs API dla bazy danych MongoDB
Interfejs API usługi Azure Cosmos DB dla bazy danych MongoDB przechowuje dane w strukturze dokumentów za pośrednictwem formatu BSON. Jest on zgodny z protokołem przewodowym MongoDB; nie używa jednak żadnego natywnego kodu powiązanego z bazą danych MongoDB. Interfejs API dla bazy danych MongoDB jest doskonałym wyborem, jeśli chcesz korzystać z szerszego ekosystemu i umiejętności bazy danych MongoDB bez naruszania korzystania z funkcji usługi Azure Cosmos DB.
Funkcje zapewniane przez usługę Azure Cosmos DB, których nie trzeba naruszać, obejmują:
- Skalowanie
- Wysoka dostępność
- Replikacja geograficzna
- Wiele lokalizacji zapisu
- Automatyczne i przezroczyste zarządzanie fragmentami
- Przezroczysta replikacja między magazynami operacyjnymi i analitycznymi
Istniejące aplikacje bazy danych MongoDB można używać z interfejsem API dla bazy danych MongoDB, zmieniając tylko parametry połączenia. Istniejące dane można przenosić przy użyciu natywnych narzędzi bazy danych MongoDB, takich jak mongodump i mongorestore, lub za pomocą naszego narzędzia azure Database Migration. Narzędzia, takie jak powłoka MongoDB, Kompas bazy danych MongoDB i Robo3T, mogą uruchamiać zapytania i pracować z danymi, tak jak w przypadku natywnej bazy danych MongoDB. Aby dowiedzieć się więcej, zobacz artykuł API for MongoDB (Interfejs API dla bazy danych MongoDB ).
Interfejs API dla bazy danych PostgreSQL
Usługa Azure Cosmos DB for PostgreSQL to zarządzana usługa do uruchamiania bazy danych PostgreSQL na dowolnej skali z supermocą typu open source citus tabel rozproszonych. Przechowuje dane w jednym węźle lub dystrybuowane w konfiguracji z wieloma węzłami.
Usługa Azure Cosmos DB for PostgreSQL jest oparta na natywnej bazie danych PostgreSQL — a nie na rozwidleniu PostgreSQL — i pozwala wybrać wszystkie główne wersje bazy danych obsługiwane przez społeczność postgreSQL. Idealnie nadaje się do uruchamiania w pojedynczej węźle bazy danych z zaawansowanymi funkcjami indeksowania, możliwościami geoprzestrzennymi i obsługą formatu JSONB. Później, jeśli potrzebujesz większej wydajności, możesz dodać węzły do klastra z zerowym przestojem.
Jeśli szukasz zarządzanej relacyjnej bazy danych typu open source z wysoką wydajnością i replikacją geograficzną, zalecanym wyborem jest usługa Azure Cosmos DB for PostgreSQL. Aby dowiedzieć się więcej, zobacz wprowadzenie do usługi Azure Cosmos DB for PostgreSQL.
Interfejs API dla systemu Apache Cassandra
Interfejs API usługi Azure Cosmos DB dla bazy danych Cassandra przechowuje dane w schemacie zorientowanym na kolumnę. Apache Cassandra oferuje wysoce rozproszone, skalowane w poziomie podejście do przechowywania dużych ilości danych, oferując elastyczne podejście do schematu zorientowanego na kolumnę. Interfejs API dla bazy danych Cassandra w usłudze Azure Cosmos DB jest zgodny z tą filozofią, aby zbliżyć się do rozproszonych baz danych NoSQL. Ten interfejs API dla rozwiązania Cassandra jest zgodny z protokołem przewodu zgodnym z natywną bazą danych Apache Cassandra. Jeśli chcesz korzystać z elastyczności i w pełni zarządzanego charakteru usługi Azure Cosmos DB, należy rozważyć użycie interfejsu API dla rozwiązania Cassandra i nadal korzystać z większości natywnych funkcji, narzędzi i ekosystemu apache Cassandra. Ten w pełni zarządzany charakter oznacza, że w interfejsie API dla rozwiązania Cassandra nie trzeba zarządzać systemem operacyjnym, maszyną wirtualną Java, modułem odśmiecywania pamięci, wydajnością odczytu/zapisu, węzłami, klastrami itp.
Aby nawiązać połączenie z interfejsem API dla bazy danych Cassandra, możesz użyć sterowników klienta apache Cassandra. Interfejs API dla bazy danych Cassandra umożliwia interakcję z danymi przy użyciu języka Zapytań Cassandra (CQL) i narzędzi, takich jak powłoka CQL, sterowniki klienta Cassandra, które już znasz. Interfejs API dla bazy danych Cassandra obecnie obsługuje tylko scenariusze OLTP. Korzystając z interfejsu API dla bazy danych Cassandra, możesz również użyć unikatowych funkcji usługi Azure Cosmos DB, takich jak zestawienie zmian. Aby dowiedzieć się więcej, zobacz artykuł API for Cassandra (Interfejs API dla bazy danych Cassandra ). Aby uzyskać więcej informacji, jeśli znasz już platformę Apache Cassandra, ale dopiero zaczynasz korzystać z usługi Azure Cosmos DB, zobacz , jak dostosować się do interfejsu API dla bazy danych Cassandra.
Interfejs API dla języka Apache Gremlin
Interfejs API usługi Azure Cosmos DB dla języka Gremlin umożliwia użytkownikom wykonywanie zapytań grafów i przechowywanie danych jako krawędzi i wierzchołków.
Użyj interfejsu API dla języka Gremlin w scenariuszach:
- Angażowanie danych dynamicznych
- Angażowanie danych ze złożonymi relacjami
- Obejmujenie danych, które są zbyt złożone do modelowania z relacyjnymi bazami danych
- Jeśli chcesz użyć istniejącego ekosystemu i umiejętności języka Gremlin
Interfejs API dla języka Gremlin łączy możliwości algorytmów grafowych baz danych z wysoce skalowalną infrastrukturą zarządzaną. Ten interfejs API zapewnia unikatowe i elastyczne rozwiązanie typowych problemów z danymi związanych z brakiem elastyczności lub podejściami relacyjnymi. Interfejs API dla języka Gremlin obecnie obsługuje tylko scenariusze OLTP.
Interfejs API dla języka Gremlin jest oparty na platformie obliczeniowej grafów Apache TinkerPop . Interfejs API dla języka Gremlin używa tego samego języka zapytań programu Graph do pozyskiwania i wykonywania zapytań o dane. Używa strategii partycji usługi Azure Cosmos DB do wykonywania operacji odczytu/zapisu z aparatu bazy danych programu Graph. Interfejs API dla języka Gremlin ma obsługę protokołu przewodowego w języku Gremlin typu open source, dzięki czemu można użyć zestawów SDK języka Gremlin typu open source do kompilowania aplikacji. Interfejs API dla języka Gremlin współpracuje również z elementami Apache Spark i GraphFrames w przypadku złożonych scenariuszy grafów analitycznych. Aby dowiedzieć się więcej, zobacz artykuł API for Gremlin (Interfejs API dla języka Gremlin ).
Interfejs API dla tabeli
Interfejs API usługi Azure Cosmos DB dla tabel przechowuje dane w formacie klucz/wartość. Jeśli obecnie używasz usługi Azure Table Storage, mogą wystąpić pewne ograniczenia dotyczące opóźnień, skalowania, przepływności, dystrybucji globalnej, zarządzania indeksami, niskiej wydajności zapytań. Interfejs API dla tabeli pozwala przezwyciężyć te ograniczenia i zaleca się przeprowadzenie migracji aplikacji, jeśli chcesz korzystać z zalet usługi Azure Cosmos DB. Interfejs API dla tabeli obsługuje tylko scenariusze OLTP.
Aplikacje napisane dla usługi Azure Table Storage mogą migrować do interfejsu API dla tabel z niewielkimi zmianami kodu i korzystać z możliwości premium. Aby dowiedzieć się więcej, zobacz artykuł API for Table (Interfejs API dla tabeli ).
Planowanie pojemności podczas migrowania danych
Próbujesz zaplanować pojemność migracji do usługi Azure Cosmos DB for NoSQL lub MongoDB z istniejącego klastra bazy danych? Informacje o istniejącym klastrze bazy danych można użyć do planowania pojemności.
- Aby uzyskać więcej informacji na temat szacowania jednostek żądań, jeśli znasz tylko liczbę rdzeni wirtualnych i serwerów w istniejącym klastrze bazy danych podzielonych na fragmenty i replikowane, zobacz szacowanie jednostek żądań przy użyciu rdzeni wirtualnych lub procesorów wirtualnych.
- Aby uzyskać więcej informacji na temat szacowania jednostek żądań, jeśli znasz typowe stawki żądań dla bieżącego obciążenia bazy danych, zobacz Planista pojemności dla interfejsu API dla noSQL i interfejsu API dla bazy danych MongoDB