Ermitteln des Anwendungstyps für Azure Cosmos DB for PostgreSQL

GILT FÜR: Azure Cosmos DB for PostgreSQL (unterstützt von der Citus-Datenbankerweiterung auf PostgreSQL)

Wenn Sie effiziente Abfragen für einen Cluster ausführen möchten, müssen die Tabellen ordnungsgemäß auf die Server verteilt werden. Die empfohlene Verteilung variiert abhängig vom Anwendungstyp und den jeweiligen Abfragemustern.

Es gibt im Wesentlichen zwei Arten von Anwendungen, die gut mit Azure Cosmos DB for PostgreSQL funktionieren. Der erste Schritt bei der Datenmodellierung besteht darin, herauszufinden, welche davon Ihrer Anwendung am ähnlichsten ist.

Auf einen Blick

Mehrinstanzenfähige Anwendungen Echtzeitanwendungen
Manchmal Dutzende oder Hunderte von Tabellen im Schema Kleine Anzahl von Tabellen
Abfragen zu einem Mandanten (Unternehmen/Geschäft) gleichzeitig Relativ einfache Analyseabfragen mit Aggregationen
OLTP-Workloads für Webclients Hohes Erfassungsvolumen von überwiegend unveränderlichen Daten
OLAP-Workloads, die analytische Abfragen pro Mandant bedienen Häufig konzentriert auf große Ereignistabellen

Beispiele und Merkmale

Mehrinstanzenfähige Anwendung

Dabei handelt es sich in der Regel um SaaS-Anwendungen für andere Unternehmen, Konten oder Organisationen. Die meisten SaaS-Anwendungen sind grundsätzlich relational. Sie besitzen eine natürliche Dimension, in der Daten auf Knoten verteilt werden können: einfach Shard nach tenant_id.

Azure Cosmos DB for PostgreSQL ermöglicht es Ihnen, Ihre Datenbank auf Millionen von Mandanten aufzuskalieren, ohne dass Sie Ihre Anwendung umstrukturieren müssen. Sie können die relationale Semantik beibehalten, die Sie benötigen, etwa Joins, Fremdschlüsseleinschränkungen, Transaktionen, ACID und Konsistenz.

  • Beispiele: Websites, die Shops für andere Unternehmen hosten, z. B. eine digitale Marketinglösung oder ein Verkaufsautomatisierungstool.
  • Merkmale: Abfragen im Zusammenhang mit einem einzelnen Mandanten, anstatt Informationen mandantenübergreifend zu verknüpfen. Dies schließt OLTP-Workloads für Webclients sowie OLAP-Workloads ein, die analytische Abfragen pro Mandant bedienen. Das Vorhandensein von Dutzenden oder Hunderten von Tabellen in Ihrem Datenbankschema ist ebenfalls ein Indikator für das mehrinstanzenfähige Datenmodell.

Die Skalierung einer mehrinstanzenfähigen App mit Azure Cosmos DB for PostgreSQL erfordert auch minimale Änderungen am Anwendungscode. Wir bieten Unterstützung für beliebte Frameworks wie Ruby on Rails und Django.

Echtzeitanalysen

Anwendungen, die massive Parallelität benötigen, um Hunderte von Kernen für schnelle Ergebnisse in numerischen, statistischen oder zählenden Abfragen zu koordinieren. Durch Sharding und Parallelisierung von SQL-Abfragen über mehrere Knoten hinweg ermöglicht Azure Cosmos DB for PostgreSQL das Durchführen von Echtzeitabfragen in Milliarden von Datensätzen in weniger als einer Sekunde.

Tabellen in Echtzeitanalyse-Datenmodellen werden in der Regel durch Spalten wie user_id, host_id oder device_id verteilt.

  • Beispiele: Analysedashboards für Kunden, die Antwortzeiten von unter einer Sekunde erfordern.
  • Merkmale: Wenige Tabellen, die sich oft um eine große Tabelle mit Geräte-, Standort- oder Benutzerereignissen gruppieren und ein hohes Erfassungsvolumen von zumeist unveränderlichen Daten erfordern. Relativ einfache (aber rechenintensive) Analyseabfragen, die mehrere Aggregationen und GROUP BY-Anweisungen betreffen.

Wenn Ihre Situation einem der oben beschriebenen Fälle ähnelt, besteht der nächste Schritt darin, zu entscheiden, wie das Sharding Ihrer Daten im Cluster erfolgen soll. Die Auswahl der Verteilungsspalten durch den Datenbankadministrator muss den Zugriffsmustern typischer Abfragen entsprechen, um optimale Leistung zu gewährleisten.

Nächste Schritte