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
- Erfahren Sie mehr über hilfreiche Diagnoseabfragen
- Überprüfen Sie die Liste der Konfigurationsparameter in der zugrunde liegenden PostgreSQL-Datenbank.