Typowe przypadki użycia usługi Azure Cosmos DB

DOTYCZY: Nosql Mongodb Cassandra Gremlin Tabeli

Ten artykuł zawiera omówienie kilku typowych przypadków użycia dla usługi Azure Cosmos DB. Zalecenia zawarte w tym artykule służą jako punkt wyjścia podczas tworzenia aplikacji za pomocą usługi Azure Cosmos DB.

Po przeczytaniu tego artykułu będziesz w stanie odpowiedzieć na następujące pytania:

  • Jakie są typowe przypadki użycia usługi Azure Cosmos DB?
  • Jakie są zalety korzystania z usługi Azure Cosmos DB dla aplikacji detalicznych?
  • Jakie są zalety korzystania z usługi Azure Cosmos DB jako magazynu danych dla systemów Internetu rzeczy (IoT)?
  • Jakie są zalety korzystania z usługi Azure Cosmos DB dla aplikacji internetowych i mobilnych?

Wprowadzenie

Usługa Azure Cosmos DB to rozwiązanie platformy Azure dla szybkiej bazy danych NoSQL z otwartymi interfejsami API dla dowolnej skali. Usługa została zaprojektowana tak, aby umożliwić klientom elastyczne (i niezależne) skalowanie przepływności i magazynu w dowolnej liczbie regionów geograficznych. Usługa Azure Cosmos DB to pierwsza globalnie rozproszona usługa bazy danych na rynku, która oferuje obecnie kompleksowe umowy dotyczące poziomu usług obejmujące przepływność, opóźnienia, dostępność i spójność.

Azure Cosmos DB to globalna rozproszona, wielomodelowa baza danych używana w wielu aplikacjach i przypadkach użycia. Jest to dobry wybór dla każdej aplikacji bezserwerowej , która wymaga krótkich czasów odpowiedzi w milisekundach i musi szybko i globalnie skalować. Obsługuje ona wiele modeli danych (klucz-wartość, dokumenty, grafy i kolumny) oraz wiele interfejsów API usługi Azure Cosmos DB na potrzeby dostępu do danych, w tym interfejs API dla bazy danych MongoDB, interfejs API dla języka Gremlin i interfejs API dla tabel natywnie i w sposób rozszerzalny.

Poniżej przedstawiono niektóre atrybuty usługi Azure Cosmos DB, które sprawiają, że są one dobrze dostosowane do aplikacji o wysokiej wydajności z globalnymi ambicjami.

  • Usługa Azure Cosmos DB natywnie partycjonuje dane pod kątem wysokiej dostępności i skalowalności. Usługa Azure Cosmos DB oferuje 99,99% gwarancji dostępności, przepływności, małych opóźnień i spójności na wszystkich kontach w jednym regionie oraz wszystkich kontach z wieloma regionami ze złagodną spójnością i dostępnością odczytu na wszystkich kontach bazy danych w wielu regionach.
  • Usługa Azure Cosmos DB ma magazyn oparty na dyskach SSD z czasem odpowiedzi o małym opóźnieniu w milisekundach.
  • Obsługa poziomów spójności usługi Azure Cosmos DB, takich jak ostateczna, spójna prefiks, sesja i powiązana nieaktualność, zapewnia pełną elastyczność i niski stosunek kosztów do wydajności. Żadna usługa bazy danych nie oferuje tak dużej elastyczności, jak usługa Azure Cosmos DB w zakresie spójności poziomów.
  • Usługa Azure Cosmos DB ma elastyczny model cenowy przyjazny dla danych, który niezależnie miernikuje magazyn i przepływność.
  • Model zarezerwowanej przepływności usługi Azure Cosmos DB pozwala myśleć pod względem liczby operacji odczytu/zapisu zamiast procesora CPU/pamięci/operacji we/wy na sekundę bazowego sprzętu.
  • Projekt usługi Azure Cosmos DB umożliwia skalowanie do ogromnych woluminów żądań w kolejności biliona żądań dziennie.

Te atrybuty są korzystne w aplikacjach internetowych, mobilnych, gier i IoT, które wymagają niskich czasów odpowiedzi i muszą obsługiwać ogromne ilości operacji odczytu i zapisu.

IoT i telematyka

Przypadki użycia IoT często mają pewne wzorce w sposobie pozyskiwania, przetwarzania i przechowywania danych. Najpierw te systemy muszą pozyskiwać wybuchy danych z czujników urządzeń różnych ustawień regionalnych. Następnie te systemy przetwarzają i analizują dane przesyłane strumieniowo w celu uzyskania szczegółowych informacji w czasie rzeczywistym. Dane są następnie archiwizowane w magazynie zimnym na potrzeby analizy wsadowej. Platforma Microsoft Azure oferuje rozbudowane usługi, które można zastosować do przypadków użycia IoT, takich jak Azure Cosmos DB, Azure Event Hubs, Azure Stream Analytics, Azure Notification Hub, Azure Machine Learning, Azure HDInsight i Power BI.

Architektura referencyjna usługi Azure Cosmos DB IoT

Wzrosty ilości danych mogą być pozyskiwane przez Azure Event Hubs, ponieważ oferuje pozyskiwanie danych o wysokiej przepływności z małym opóźnieniem. Pozyskane dane, które należy przetworzyć w celu uzyskania szczegółowych informacji w czasie rzeczywistym, można przesyłać do usługi Azure Stream Analytics na potrzeby analizy w czasie rzeczywistym. Dane można załadować do usługi Azure Cosmos DB na potrzeby wykonywania zapytań adhoc. Po załadowaniu danych do usługi Azure Cosmos DB dane są gotowe do odpytowania. Ponadto nowe dane i zmiany istniejących danych można odczytywać w kanale zmian. Zestawienie zmian to trwały, dołączany tylko dziennik, który przechowuje zmiany w kontenerach usługi Azure Cosmos DB w kolejności sekwencyjnej. Następnie wszystkie dane lub tylko zmiany danych w usłudze Azure Cosmos DB mogą być używane jako dane referencyjne w ramach analizy w czasie rzeczywistym. Ponadto dane można dodatkowo uściślić i przetworzyć, łącząc dane usługi Azure Cosmos DB z usługą HDInsight dla usług Pig, Hive lub Map/Reduce. Dane uściśliwane są następnie ładowane z powrotem do usługi Azure Cosmos DB na potrzeby raportowania.

Przykładowe rozwiązanie IoT korzystające z usług Azure Cosmos DB, Event Hubs i Apache Storm można znaleźć w repozytorium hdinsight-storm-examples w witrynie GitHub.

Aby uzyskać więcej informacji na temat ofert platformy Azure dla IoT, zobacz Tworzenie Internetu rzeczy.

Sprzedaż detaliczna i marketing

Usługa Azure Cosmos DB jest szeroko używana na własnych platformach handlu elektronicznego firmy Microsoft, które działają w Sklepie Windows i XBox Live. Jest on również używany w branży detalicznej do przechowywania danych katalogu i określania źródła zdarzeń w potokach przetwarzania zamówień.

Scenariusze użycia danych wykazu obejmują przechowywanie i wykonywanie zapytań dotyczących zestawu atrybutów dla jednostek, takich jak osoby, miejsca i produkty. Przykładami danych wykazu są konta użytkowników, katalogi produktów, rejestry urządzeń IoT i rachunki systemów materiałów. Atrybuty tych danych mogą się różnić i mogą zmieniać się wraz z upływem czasu, aby dopasować je do wymagań aplikacji.

Rozważmy przykład katalogu produktów dla dostawcy części samochodowych. Każda część może mieć własne atrybuty oprócz wspólnych atrybutów, które współdzielą wszystkie części. Ponadto atrybuty określonej części mogą ulec zmianie w następnym roku po wydaniu nowego modelu. Usługa Azure Cosmos DB obsługuje elastyczne schematy i dane hierarchiczne, a tym samym dobrze nadaje się do przechowywania danych katalogu produktów.

Architektura referencyjna wykazu detalicznego usługi Azure Cosmos DB

Usługa Azure Cosmos DB jest często używana do określania źródła zdarzeń do architektur opartych na zdarzeniach zasilania przy użyciu funkcji zestawienia zmian . Kanał informacyjny zmian zapewnia mikrousługi podrzędne możliwość niezawodnego i przyrostowego odczytywania wstawień i aktualizacji (na przykład zdarzeń zamówienia) w usłudze Azure Cosmos DB. Ta funkcja może służyć do zapewnienia trwałego magazynu zdarzeń jako brokera komunikatów dla zdarzeń zmieniających się w stanie i przepływu pracy przetwarzania zamówień między wieloma mikrousługami (które można zaimplementować jako bezserwerowe Azure Functions).

Architektura referencyjna potoku zamawiania usługi Azure Cosmos DB

Ponadto dane przechowywane w usłudze Azure Cosmos DB można zintegrować z usługą HDInsight na potrzeby analizy danych big data za pośrednictwem zadań platformy Apache Spark. Aby uzyskać szczegółowe informacje na temat łącznika Spark dla usługi Azure Cosmos DB, zobacz Run a Spark job with Azure Cosmos DB and HDInsight (Uruchamianie zadania spark za pomocą usługi Azure Cosmos DB i usługi HDInsight).

Gry

Warstwa bazy danych jest kluczowym elementem składowym aplikacji gier. Współczesne gry wykonują przetwarzanie graficzne na klientach mobilnych/konsolowych, ale to technologia chmury dostarcza odpowiednio dostosowaną i spersonalizowaną zawartość, taką jak statystyki uzyskane podczas gry, zestawienia najlepszych wyników czy integracja z mediami społecznościowymi. Gry często wymagają opóźnień jedno milisekundowych dla odczytów i zapisów, aby zapewnić wciągające środowisko gry. Baza danych w przypadku gier musi być szybka i musi być w stanie obsłużyć ogromne ilości żądań podczas uruchomień nowych gier i aktualizacji funkcji.

Usługa Azure Cosmos DB jest używana przez gry takie jak The Walking Dead: No Man's Land by Next Games i Halo 5: Guardians by 343 Industries. Usługa Azure Cosmos DB zapewnia następujące korzyści dla deweloperów gier:

  • Usługa Azure Cosmos DB umożliwia elastyczne skalowanie wydajności w górę lub w dół. Dzięki temu gry mogą obsługiwać aktualizowanie profilu i statystyk od kilkudziesięciu do milionów równoczesnych graczy przez wykonanie pojedynczego wywołania interfejsu API.
  • Usługa Azure Cosmos DB obsługuje odczyty i zapisy w milisekundach, aby uniknąć opóźnień podczas gry.
  • Automatyczne indeksowanie usługi Azure Cosmos DB umożliwia filtrowanie wielu różnych właściwości w czasie rzeczywistym, na przykład lokalizowanie graczy według identyfikatorów wewnętrznych graczy lub ich identyfikatorów GameCenter, Facebook, Google ID lub zapytań na podstawie członkostwa gracza w gildii. Jest to możliwe bez tworzenia złożonej infrastruktury indeksowania lub fragmentowania.
  • Funkcje społecznościowe, w tym wiadomości czatu w grze, członkostwa w gildii graczy, wyzwania ukończone, rankingi o wysokiej oceny i wykresy społecznościowe są łatwiejsze do zaimplementowania przy użyciu elastycznego schematu.
  • Usługa Azure Cosmos DB jako zarządzana platforma jako usługa (PaaS) wymagała minimalnej konfiguracji i pracy zarządzania, aby umożliwić szybką iterację i skrócić czas obrotu.

Architektura referencyjna gier usługi Azure Cosmos DB

Aplikacje internetowe i mobilne

Azure Cosmos DB jest często używana w aplikacjach internetowych i mobilnych. Dobrze nadaje się do modelowania interakcji społecznościowych, integracji z usługami innych firm oraz do tworzenia bogatych, spersonalizowanych środowisk. Zestawy SDK usługi Azure Cosmos DB można używać do tworzenia zaawansowanych aplikacji dla systemów iOS i Android przy użyciu popularnej platformy Xamarin.

Aplikacje społecznościowe

Typowym przypadkiem użycia usługi Azure Cosmos DB jest przechowywanie i wykonywanie zapytań dotyczących zawartości wygenerowanej przez użytkownika (UGC) dla aplikacji internetowych, mobilnych i społecznościowych. Niektóre przykłady ugC to sesje czatów, tweety, wpisy w blogu, oceny i komentarze. Często ugC w aplikacjach mediów społecznościowych jest mieszanką wolnego tekstu formularza, właściwości, tagów i relacji, które nie są powiązane ze sztywną strukturą. Zawartość, taka jak czaty, komentarze i wpisy, może być przechowywana w usłudze Azure Cosmos DB bez konieczności przekształcania ani złożonego obiektu do warstw mapowania relacyjnego. Właściwości danych można łatwo dodawać lub modyfikować, aby dopasować wymagania, ponieważ deweloperzy iterują kod aplikacji, co ułatwia szybkie opracowywanie.

Aplikacje integrujące się z sieciami społecznościowymi innych firm muszą reagować na zmieniające się schematy z tych sieci. Ponieważ dane są domyślnie indeksowane automatycznie w usłudze Azure Cosmos DB, dane są gotowe do wykonywania zapytań w dowolnym momencie. W związku z tym te aplikacje mają elastyczność pobierania projekcji zgodnie z ich potrzebami.

Wiele aplikacji społecznościowych działa na skalę globalną i może wykazywać nieprzewidywalne wzorce użycia. Elastyczność skalowania magazynu danych jest niezbędna, ponieważ warstwa aplikacji jest skalowana w celu dopasowania do zapotrzebowania na użycie. Możesz skalować w poziomie, dodając dodatkowe partycje danych na koncie usługi Azure Cosmos DB. Ponadto można również utworzyć dodatkowe konta usługi Azure Cosmos DB w wielu regionach. Aby uzyskać informacje o dostępności regionu usługi Azure Cosmos DB, zobacz Regiony platformy Azure.

Diagram przedstawiający architekturę referencyjną aplikacji internetowej usługi Azure Cosmos DB.

Personalizacja

W dzisiejszych czasach nowoczesne aplikacje mają złożone widoki i środowiska. Są one zazwyczaj dynamiczne, catering dla preferencji użytkownika lub nastrojów i potrzeb marki. W związku z tym aplikacje muszą mieć możliwość efektywnego pobierania spersonalizowanych ustawień w celu szybkiego renderowania elementów i środowisk interfejsu użytkownika.

Format JSON obsługiwany przez usługę Azure Cosmos DB jest efektywnym formatem reprezentującym dane układu interfejsu użytkownika, ponieważ jest nie tylko lekki, ale także może być łatwo interpretowany przez język JavaScript. Usługa Azure Cosmos DB oferuje dostrajane poziomy spójności, które umożliwiają szybkie odczyty z zapisami o małych opóźnieniach. W związku z tym przechowywanie danych układu interfejsu użytkownika, w tym spersonalizowanych ustawień jako dokumentów JSON w usłudze Azure Cosmos DB, jest skutecznym sposobem pobierania tych danych przez sieć.

Architektura referencyjna aplikacji internetowej usługi Azure Cosmos DB

Następne kroki

  • Aby rozpocząć pracę z usługą Azure Cosmos DB, postępuj zgodnie z naszymi przewodnikami Szybki start, które przeprowadzą Cię przez proces tworzenia konta i rozpoczynania pracy z usługą Azure Cosmos DB.

  • Jeśli chcesz dowiedzieć się więcej o klientach korzystających z usługi Azure Cosmos DB, zobacz stronę analizy przypadków klientów .