Udostępnij za pomocą


Określanie typu aplikacji dla usługi Azure Cosmos DB for PostgreSQL

Ważne

Usługa Azure Cosmos DB for PostgreSQL nie jest już obsługiwana w przypadku nowych projektów. Nie używaj tej usługi dla nowych projektów. Zamiast tego użyj jednej z tych dwóch usług:

Uruchamianie wydajnych zapytań w klastrze wymaga prawidłowego dystrybuowania tabel między serwerami. Zalecana dystrybucja różni się w zależności od typu aplikacji i jej wzorców zapytań.

Istnieją zasadniczo dwa rodzaje aplikacji, które działają dobrze w usłudze Azure Cosmos DB for PostgreSQL. Pierwszym krokiem modelowania danych jest zidentyfikowanie, które z nich bardziej przypomina aplikację.

Na pierwszy rzut oka

Aplikacje dla wielu lokatorów Aplikacje działające w czasie rzeczywistym
Czasami dziesiątki lub setki tabel w schemacie Mała liczba tabel
Zapytania dotyczące jednego najemcy (firmy/sklepu) na raz Stosunkowo proste zapytania analityczne z agregacjami
Obciążenia OLTP obsługujące klientów internetowych Duża ilość pozyskiwanych danych (zwykle niemodyfikowalnych)
Obciążenia OLAP obsługujące zapytania analityczne dla poszczególnych dzierżawców Często skupiając się wokół dużej tabeli wydarzeń

Przykłady i cechy

Aplikacja wieloznacznikowa

Są to zazwyczaj aplikacje SaaS, które obsługują inne firmy, konta lub organizacje. Większość aplikacji SaaS jest z natury relacyjna. Mają one naturalny wymiar dystrybucji danych między węzłami: po prostu fragmentowanie według tenant_id.

Usługa Azure Cosmos DB dla PostgreSQL umożliwia skalowanie horyzontalne bazy danych do milionów najemców bez konieczności ponownego tworzenia architektury aplikacji. Możesz zachować potrzebną semantykę relacyjną, na przykład sprzężenia, ograniczenia klucza obcego, transakcje, ACID i spójność.

  • Przykłady: witryny internetowe hostujące fronty sklepów dla innych firm, takie jak rozwiązanie do marketingu cyfrowego lub narzędzie do automatyzacji sprzedaży.
  • Cechy: Zapytania dotyczące pojedynczej dzierżawy zamiast dołączania informacji między dzierżawami. Obejmuje to obciążenia OLTP do obsługi klientów internetowych i obciążeń OLAP obsługujących zapytania analityczne dla poszczególnych dzierżaw. Posiadanie kilkudziesięciu lub setek tabel w schemacie bazy danych jest również wskaźnikiem modelu danych o wielu najemcach.

Skalowanie aplikacji wielodostępnej za pomocą usługi Azure Cosmos DB for PostgreSQL wymaga również minimalnych zmian w kodzie aplikacji. Mamy wsparcie dla popularnych struktur, takich jak Ruby on Rails i Django.

Analiza w czasie rzeczywistym

Aplikacje wymagające ogromnego równoległości, koordynujące setki rdzeni, aby szybko uzyskać wyniki liczbowe, statystyczne lub zliczające zapytania. Dzięki fragmentowaniu i równoległości zapytań SQL w wielu węzłach usługa Azure Cosmos DB for PostgreSQL umożliwia wykonywanie zapytań w czasie rzeczywistym w miliardach rekordów w ciągu sekundy.

Tabele w modelach danych analizy w czasie rzeczywistym są zwykle dystrybuowane według kolumn, takich jak user_id, host_id lub device_id.

  • Przykłady: Analizacyjne pulpity nawigacyjne dostępne dla klientów wymagające czasu odpowiedzi w ułamkach sekundy.
  • Cechy: Niewiele tabel, często zorganizowanych wokół dużej tabeli zdarzeń dotyczących urządzeń, lokalizacji lub użytkowników, wymagających dużego przetwarzania głównie niezmiennych danych. Stosunkowo proste (ale intensywnie korzystające z obliczeń) zapytania analityczne obejmujące kilka agregacji i grup BYs.

Jeśli sytuacja przypomina powyższy przypadek, następnym krokiem jest podjęcie decyzji o tym, jak fragmentować dane w klastrze. Wybór kolumn dystrybucji przez administratora bazy danych musi być zgodny z wzorcami dostępu typowych zapytań w celu zapewnienia wydajności.

Następne kroki