Udostępnij za pośrednictwem


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

DOTYCZY: Usługa Azure Cosmos DB for PostgreSQL (obsługiwana przez rozszerzenie bazy danych Citus do bazy danych PostgreSQL)

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 wielodostępne Aplikacje działające w czasie rzeczywistym
Czasami dziesiątki lub setki tabel w schemacie Mała liczba tabel
Zapytania związane z jedną dzierżawą (firmą/sklepem) w danym momencie 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żaw Często skoncentrowane na dużej tabeli zdarzeń

Przykłady i cechy

Aplikacja wielodostępna

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 for PostgreSQL umożliwia skalowanie bazy danych w poziomie do milionów dzierżaw 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 z wieloma dzierżawami.

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: Pulpity nawigacyjne analizy dostępne dla klientów wymagające czasu odpowiedzi w sekundach podrzędnych.
  • Cechy: Niewiele tabel, często wyśrodkujących się wokół dużej tabeli zdarzeń urządzeń, lokacji lub użytkowników i wymagających dużej ilości pozyskiwania 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

  • Wybieranie kolumny dystrybucji dla tabel w aplikacji w celu wydajnego dystrybuowania danych