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