Verteilte SQL-API von Azure Cosmos DB for PostgreSQL

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

Azure Cosmos DB for PostgreSQL enthält mehr Features als die Standardversion von PostgreSQL. Im Folgenden finden Sie eine kategorisierte Referenz zu Funktionen und Konfigurationsoptionen für:

  • Parallelisieren der Abfrageausführung über Shards hinweg
  • Verwalten von horizontal partitionieren Daten zwischen mehreren Servern
  • Komprimieren von Daten mithilfe von spaltenbasiertem Speicher
  • Automatisieren der Partitionierung von Zeitreihen

SQL-Funktionen

Sharding (Horizontales Partitionieren)

Name BESCHREIBUNG
alter_distributed_table Ändert die Verteilungsspalte, die Shardanzahl oder Colocationeigenschaften einer verteilten Tabelle.
citus_copy_shard_placement Repariert eine inaktive Shardplatzierung mithilfe von Daten aus einer fehlerfreien Platzierung.
citus_schema_distribute Umwandeln eines PostgreSQL-Schemas in ein verteiltes Schema
citus_schema_undistribute Rückgängigmachen der Aktion von citus_schema_distribute
create_distributed_table Wandelt eine PostgreSQL-Tabelle in eine verteilte Tabelle (Shardtabelle) um.
create_reference_table Verwaltet vollständige Kopien einer Tabelle auf allen Knoten synchron.
citus_add_local_table_to_metadata Hinzufügen einer lokalen Tabelle zu Metadaten zum Aktivieren der Abfrage von einem beliebigen Knoten
isolate_tenant_to_new_shard Erstellt einen neuen Shard, der Zeilen mit einem bestimmten einzelnen Wert in der Verteilungsspalte enthält.
truncate_local_data_after_distributing_table Schneidet alle lokalen Zeilen nach dem Verteilen einer Tabelle ab.
undistribute_table Macht die Aktion von create_distributed_table oder create_reference_table rückgängig.

Shardausgleich

Name BESCHREIBUNG
citus_add_rebalance_strategy Fügt eine Zeile an pg_dist_rebalance_strategy an.
citus_move_shard_placement Wird in der Regel indirekt beim Shardausgleich verwendet, anstatt direkt von einem Datenbankadministrator aufgerufen zu werden.
citus_set_default_rebalance_strategy Ändert die Strategie, die durch das Argument benannt wird, so, dass sie beim erneuten Ausgleich von Shards als Standard ausgewählt wird.
get_rebalance_progress Überwacht die geplanten und von rebalance_table_shards ausgeführten Verschiebungen.
get_rebalance_table_shards_plan Gibt die geplanten Shardbewegungen von rebalance_table_shards aus, ohne sie auszuführen.
rebalance_table_shards Verschiebt Shards der angegebenen Tabelle, um sie gleichmäßig auf die Worker zu verteilen.

Zusammenstellung

Name BESCHREIBUNG
create_distributed_function Führt die Funktion auf Workern in der Nähe von Shards aus, die Colocation aufweisen.
update_distributed_table_colocation Aktualisiert oder unterbricht die Colocation einer verteilten Tabelle.

Spaltenbasierter Speicher

Name BESCHREIBUNG
alter_columnar_table_set Ändert die Einstellungen für eine spaltenbasierte Tabelle.
alter_table_set_access_method Konvertiert eine Tabelle zwischen Heapspeicher oder spaltenbasiertem Speicher.

Partitionierung von Zeitreihen

Name BESCHREIBUNG
alter_old_partitions_set_access_method Ändert die Speichermethode von Partitionen.
create_time_partitions Erstellt Partitionen eines bestimmten Intervalls, um einen bestimmten Zeitraum abzudecken.
drop_old_time_partitions Entfernt alle Partitionen, deren Intervalle vor einen bestimmten Zeitstempel fallen.

Informational

Name BESCHREIBUNG
citus_get_active_worker_nodes Ruft aktive Workerhostnamen und Portnummern ab.
citus_relation_size Ruft den von allen Shards der angegebenen verteilten Tabelle verwendeten Speicherplatz auf dem Datenträger ab.
citus_remote_connection_stats Zeigt die Anzahl aktiver Verbindungen mit jedem Remoteknoten an.
citus_stat_statements_reset Entfernt alle Zeilen aus citus_stat_statements.
citus_table_size Ruft den von allen Shards der angegebenen verteilten Tabelle verwendeten Speicherplatz auf dem Datenträger ab (mit Ausnahme von Indizes).
citus_total_relation_size Ruft den Speicherplatz auf dem Datenträger ab, der von allen Shards der angegebenen verteilten Tabelle verwendet wird, einschließlich aller Indizes und TOAST-Daten.
column_to_column_name Übersetzt die partkey-Spalte von pg_dist_partition in einen Textspaltennamen.
get_shard_id_for_distribution_column Sucht die Shard-ID, die einem Wert der Verteilungsspalte zugeordnet ist.

Serverparameter

Abfrageausführung

Name BESCHREIBUNG
citus.all_modifications_commutative Lässt zu, dass alle Befehle eine freigegebene Sperre beanspruchen.
citus.count_distinct_error_rate Optimiert die Fehlerrate der ungefähren Zählung von postgresql-hll.
citus.enable_repartition_joins Lässt JOINs für Nichtverteilungsspalten zu.
citus.enable_repartitioned_insert_select Lässt die Neupartitionierung von Zeilen aus der SELECT-Anweisung und deren Übertragung zwischen Workern zum Einfügen zu.
citus.limit_clause_row_fetch_count Die Anzahl der Zeilen, die pro Task für die Optimierung der limit-Klausel abgerufen werden.
citus.local_table_join_policy Gibt an, wohin Daten verschoben werden, wenn ein Join zwischen lokalen und verteilten Tabellen erfolgt.
citus.multi_shard_commit_protocol Das Commitprotokoll, das beim Ausführen von COPY für eine Tabelle mit Hashverteilung verwendet werden soll.
citus.propagate_set_commands Gibt an, welche SET-Befehle vom Koordinator an die Worker propagiert werden.
citus.create_object_propagation Verhalten von Erstellungsanweisungen in Transaktionen für unterstützte Objekte
citus.use_citus_managed_tables Zulassen, dass auf lokale Tabellen in Workerknotenabfragen zugegriffen werden kann

Informational

Name BESCHREIBUNG
citus.explain_all_tasks Bewirkt, dass die EXPLAIN-Ausgabe alle Tasks anzeigt.
citus.explain_analyze_sort_method Sortiermethode der Tasks in der Ausgabe von EXPLAIN ANALYZE.
citus.log_remote_commands Protokolliert Abfragen, die der Koordinator an Workerknoten sendet.
citus.multi_task_query_log_level Protokollebene für jede Abfrage, die mehrere Tasks generiert.
citus.stat_statements_max Maximale Anzahl von Zeilen, die in citus_stat_statements gespeichert werden sollen.
citus.stat_statements_purge_interval Häufigkeit, mit der der Wartungdaemon Datensätze aus citus_stat_statements entfernt, für die in pg_stat_statements keine Übereinstimmung vorliegt.
citus.stat_statements_track Aktiviert/Deaktiviert Anweisungsnachverfolgung.
citus.show_shards_for_app_name_prefixes Ermöglicht es Shards, für ausgewählte Clients anzuzeigen, die sie anzeigen möchten
citus.override_table_visibility Aktivieren/Deaktivieren des Shard-Ausblendens

Knotenübergreifende Verbindungsverwaltung

Name BESCHREIBUNG
citus.executor_slow_start_interval Wartezeit in Millisekunden zwischen dem Öffnen von Verbindungen mit demselben Workerknoten.
citus.force_max_query_parallelization Öffnet so viele Verbindungen wie möglich.
citus.max_adaptive_executor_pool_size Maximale Anzahl von Workerverbindungen pro Sitzung.
citus.max_cached_conns_per_worker Anzahl von Verbindungen, die geöffnet bleiben, um nachfolgende Befehle zu beschleunigen.
citus.node_connection_timeout Maximale Dauer (in Millisekunden) für das Warten auf die Verbindungsherstellung.

Datenübertragung

Name BESCHREIBUNG
citus.enable_binary_protocol Verwendet das binäre Serialisierungsformat von PostgreSQL (falls zutreffend) zum Übertragen von Daten mit Workern.
citus.max_intermediate_result_size Größe in KB von Zwischenergebnissen für CTEs und Unterabfragen, die nicht nach unten gepusht werden können.

Deadlock

Name BESCHREIBUNG
citus.distributed_deadlock_detection_factor Legt die Wartezeit bis zur Suche nach verteilten Deadlocks fest.
citus.log_distributed_deadlock_detection Gibt an, ob die Verarbeitung verteilter Deadlockerkennungen im Serverprotokoll protokolliert werden soll.

Systemtabellen

Der Koordinatorknoten enthält Metadatentabellen und -sichten, mit deren Hilfe Sie Dateneigenschaften und Abfrageaktivitäten im Cluster anzeigen können.

Name BESCHREIBUNG
citus_dist_stat_activity Verteilte Abfragen, die auf allen Knoten ausgeführt werden.
citus_lock_waits Blockierte Abfragen im gesamten Cluster
citus_shards Der Speicherort jedes Shards, der Typ der Tabelle, zu der er gehört, und seine Größe.
citus_stat_statements Statistiken dazu, wie und für wen Abfragen ausgeführt werden.
citus_tables Zusammenfassung aller verteilten Tabellen und Verweistabellen.
citus_worker_stat_activity Abfragen für Worker, einschließlich Tasks für einzelne Shards.
pg_dist_colocation Gibt Shards der Tabellen an, die zusammen platziert werden sollen.
pg_dist_node Informationen zu Workerknoten im Cluster
pg_dist_node Objekte, z. B. von Typen und Funktionen, die auf dem Koordinatorknoten erstellt und an Workerknoten weitergegeben wurden.
pg_dist_placement Der Speicherort von Shardreplikaten auf Workerknoten.
pg_dist_rebalance_strategy Strategien, die rebalance_table_shards verwenden kann, um zu bestimmen, wohin Shards verschoben werden sollen.
pg_dist_shard Tabelle, Verteilungsspalte und Wertbereiche für jeden Shard.
time_partitions Informationen zu jeder Partition, die von Funktionen wie create_time_partitions und drop_old_time_partitions verwaltet wird.

Nächste Schritte