Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
GILT FÜR: Azure Database for PostgreSQL – Flexible Server
In einem Cluster gibt es fünf Typen von Tabellen, die jeweils unterschiedlich auf Knoten gespeichert und für unterschiedliche Zwecke verwendet werden.
Verteilte Tabellen
Beim ersten und am häufigsten verwendeten Typ handelt es sich um verteilte Tabellen. Es scheint sich um normale Tabellen für SQL-Anweisungen zu handeln, sie sind jedoch auf Workerknoten horizontal partitioniert. Dies bedeutet, dass die Zeilen der Tabellen auf verschiedenen Knoten gespeichert werden, und zwar in Fragmenttabellen, sogenannten Shards.
Elastic-Cluster führen nicht nur SQL- sondern auch DDL-Anweisungen (Datenbeschreibungsprache) im gesamten Cluster aus. Das Ändern des Schemas einer verteilten Tabelle aktualisiert kaskadierend alle Shards der Tabelle über mehrere Workerknoten hinweg. Solche Vorgänge müssen über eine Verbindung an Port 5432 erfolgen.
Verteilte Spalte
Elastische Cluster verwenden algorithmisches Sharding, um Zeilen zu Shards zuzuweisen. Die Zuweisung erfolgt deterministisch basierend auf dem Wert einer Tabellenspalte, die als Verteilungsspalte bezeichnet wird. Der Clusteradministrator muss diese Spalte beim Verteilen einer Tabelle festlegen. Für Leistung und Funktionalität ist es wichtig, die richtige Entscheidung zu treffen.
Verweistabellen
Eine Verweistabelle ist ein Typ von verteilter Tabelle, deren gesamter Inhalt in einem einzigen Shard konzentriert ist. Der Shard wird auf jedem Workerknoten repliziert. Abfragen für jeden Worker können lokal auf die Verweisinformationen zugreifen, und zwar ohne den Netzwerkmehraufwand für das Anfordern von Zeilen von einem anderen Knoten. Verweistabellen weisen keine Verteilungsspalte auf, weil nicht zwischen separaten Shards pro Zeile unterschieden werden muss.
Verweistabellen sind in der Regel klein. Sie werden zum Speichern von Daten verwendet, die für Abfragen relevant sind, die auf allen Workerknoten ausgeführt werden. Ein Beispiel hierfür sind Enumerationswerte wie Auftragsstatus oder Produktkategorien.
Lokale Tabellen
Wenn Sie einen elastischen Cluster verwenden, handelt es sich bei jedem Knoten um eine normale PostgreSQL-Datenbank. Sie können auf ihnen normale Tabellen erstellen und diese auf Wunsch nicht horizontal partitionieren.
Kleine Verwaltungstabellen, die nicht an Join-Abfragen teilnehmen, würden sich gut als lokale Tabellen eignen. Ein Beispiel hierfür ist eine users
-Tabelle für die Anmeldung und Authentifizierung von Anwendungen. Diese Art von Tabelle ist nur nützlich, wenn Sie nicht beabsichtigen, die Verbindung zwischen einem elastischen Cluster mit Port 7432 oder 8432 zu lasten.
Lokale verwaltete Tabellen
Flexible Cluster können Metadaten automatisch lokale Tabellen hinzufügen, wenn ein Fremdschlüsselverweis zwischen einer lokalen Tabelle und einer Referenztabelle vorhanden ist. Darüber hinaus können lokal verwaltete Tabellen manuell erstellt werden, indem die Funktion citus_add_local_table_to_metadata auf normalen lokalen Tabellen ausgeführt wird. In Metadaten vorhandene Tabellen werden als verwaltete Tabellen betrachtet und können von jedem Knoten abgefragt werden. Citus kann eine Route zu dem Knoten herstellen, um Daten aus der lokalen verwalteten Tabelle abzurufen. Solche Tabellen werden in der Ansicht citus_tables
als lokal angezeigt.
Schematabellen
Mit schemabasiertem Sharding werden verteilte Schemas automatisch einzelnen Zusammenstellungsgruppen zugeordnet. Die in diesen Schemas erstellten Tabellen werden in zusammengestellte verteilte Tabellen ohne Shardschlüssel konvertiert. Solche Tabellen gelten als Schematabellen und werden in der Ansicht citus_tables
als Schema angezeigt.