Partage via


API SQL distribuée Azure Cosmos DB for PostgreSQL

S’APPLIQUE À : Azure Cosmos DB for PostgreSQL (avec l’extension de base de données Citus pour PostgreSQL)

Azure Cosmos DB for PostgreSQL comprend des fonctionnalités dépassant la version standard de PostgreSQL. Vous trouverez ci-dessous une référence par catégorie des fonctions et des options de configuration pour :

  • la parallélisation de l’exécution des requêtes entre les partitions ;
  • la gestion des données partitionnées entre plusieurs serveurs ;
  • la compression des données à l’aide du stockage en colonnes ;
  • l’automatisation du partitionnement des séries chronologiques.

Fonctions SQL

Partitionnement

Nom Description
alter_distributed_table Change la colonne de distribution, le nombre de partitions ou les propriétés de colocalisation d’une table distribuée
citus_copy_shard_placement Répare un placement de partition inactif avec des données provenant d’un emplacement sain
citus_schema_distribute Transformer un schéma PostgreSQL en schéma distribué
citus_schema_undistribute Annuler l’action de citus_schema_distribute
create_distributed_table Transforme une table PostgreSQL en table distribuée (partitionnée)
create_reference_table Assure la synchronisation des copies complètes d’une table sur tous les nœuds
citus_add_local_table_to_metadata Ajouter une table locale aux métadonnées pour activer son interrogation à partir de n’importe quel nœud
isolate_tenant_to_new_shard Crée une partition pour stocker les lignes d’une valeur unique spécifique dans la colonne de distribution
truncate_local_data_after_distributing_table Tronque toutes les lignes locales après la distribution d’une table
undistribute_table Annule l’action create_distributed_table ou create_reference_table

Rééquilibreur de partition

Nom Description
citus_add_rebalance_strategy Ajoute une ligne à pg_dist_rebalance_strategy
citus_move_shard_placement Est généralement utilisé indirectement pendant le rééquilibrage des partitions au lieu d’être appelé directement par un administrateur de base de données
citus_set_default_rebalance_strategy Change la stratégie nommée par son argument pour qu’elle soit la stratégie par défaut choisie lors du rééquilibrage des partitions
get_rebalance_progress Surveille les déplacements planifiés et exécutés par rebalance_table_shards
get_rebalance_table_shards_plan Génère les mouvements de partitions planifiés de rebalance_table_shards sans les exécuter
rebalance_table_shards Déplace les partitions de la table donnée pour les distribuer uniformément entre les workers

Colocalisation

Nom Description
create_distributed_function Exécute la fonction sur des workers à proximité des partitions colocalisées
update_distributed_table_colocation Met à jour ou arrête la colocalisation d’une table distribuée

Stockage en colonnes

Nom Description
alter_columnar_table_set Modifie les paramètres d’une table en colonnes
alter_table_set_access_method Convertit une table entre le stockage heap ou en colonnes

Partitionnement TimeSeries

Nom Description
alter_old_partitions_set_access_method Change la méthode de stockage des partitions
create_time_partitions Crée des partitions d’un intervalle donné pour couvrir une plage de temps donnée
drop_old_time_partitions Supprime toutes les partitions dont les intervalles sont antérieurs à un horodatage donné

Informationnel

Nom Description
citus_get_active_worker_nodes Obtient les noms d’hôte worker et les numéros de port actifs
citus_relation_size Obtient l’espace disque utilisé par toutes les partitions de la table distribuée spécifiée
citus_remote_connection_stats Affiche le nombre de connexions actives pour chaque nœud distant
citus_stat_statements_reset Supprime toutes les lignes de citus_stat_statements
citus_table_size Obtient l’espace disque utilisé par toutes les partitions de la table distribuée spécifiée, hormis les index
citus_total_relation_size Obtient l’espace disque total utilisé par toutes les partitions de la table distribuée spécifiée, y compris l’ensemble des index et des données TOAST
column_to_column_name Convertit la colonne partkey de pg_dist_partition en nom de colonne textuel
get_shard_id_for_distribution_column Recherche l’ID de partition associé à une valeur de la colonne de distribution

Paramètres de serveur

Exécution de la requête

Nom Description
citus.all_modifications_commutative Autorise toutes les commandes à revendiquer un verrou partagé
citus.count_distinct_error_rate Paramètre le taux d’erreur du comptage approximatif postgresql-hll
citus.enable_repartition_joins Autorise les jointures (JOIN) sur des colonnes de non-distribution
citus.enable_repartitioned_insert_select Autorise le repartitionnement des lignes issues de l’instruction SELECT, et leur transfert entre les workers pour insertion
citus.limit_clause_row_fetch_count Nombre de lignes à extraire par tâche pour l’optimisation de la clause LIMIT
citus.local_table_join_policy Emplacement vers lequel les données sont déplacées lors d’une jointure entre des tables locales et distribuées
citus.multi_shard_commit_protocol Protocole de validation à utiliser lors de l’exécution d’une commande COPY sur une table distribuée de hachage
citus.propagate_set_commands Détermine les commandes SET qui sont propagées du coordinateur vers les workers
citus.create_object_propagation Comportement des instructions CREATE dans les transactions pour les objets pris en charge
citus.use_citus_managed_tables Autoriser l’accès aux tables locales dans les requêtes de nœud Worker

Informationnel

Nom Description
citus.explain_all_tasks Configure la sortie de EXPLAIN pour qu’elle affiche toutes les tâches
citus.explain_analyze_sort_method Méthode de tri des tâches dans la sortie de EXPLAIN ANALYZE
citus.log_remote_commands Journalise les requêtes envoyées par le coordinateur aux nœuds worker
citus.multi_task_query_log_level Niveau de journalisation pour toutes les requêtes générant plusieurs tâches
citus.stat_statements_max Nombre maximal de lignes à stocker dans citus_stat_statements
citus.stat_statements_purge_interval Fréquence à laquelle le démon de maintenance supprime tous les enregistrements dans citus_stat_statements qui n’ont pas de correspondance dans pg_stat_statements
citus.stat_statements_track Activer/désactiver le suivi des instructions
citus.show_shards_for_app_name_prefixes Permet aux partitions d’être affichées pour les clients sélectionnés qui souhaitent les voir
citus.override_table_visibility Activer/désactiver le masquage de partitions

Gestion des connexions entre nœuds

Nom Description
citus.executor_slow_start_interval Délai d’attente (en millisecondes) entre les connexions ouvertes sur le même nœud worker
citus.force_max_query_parallelization Ouvre le plus grand nombre de connexions possible
citus.max_adaptive_executor_pool_size Nombre maximal de connexions worker par session
citus.max_cached_conns_per_worker Nombre de connexions maintenues ouvertes pour accélérer les commandes suivantes
citus.node_connection_timeout Délai d’attente (en millisecondes) maximal pour l’établissement d’une connexion

Transfert de données

Nom Description
citus.enable_binary_protocol Utilise le format de sérialisation binaire de PostgreSQL (si applicable) pour transférer les données avec les workers
citus.max_intermediate_result_size Taille (en Ko) des résultats intermédiaires pour les CTE et les sous-requêtes qui ne peuvent pas être poussées vers le bas

Deadlock

Nom Description
citus.distributed_deadlock_detection_factor Délai d’attente avant de vérifier les blocages distribués
citus.log_distributed_deadlock_detection Indique si les informations liées à la détection de blocage distribué sont à enregistrer dans le journal du serveur

Tables système

Le nœud coordinateur contient des tables et des vues de métadonnées pour vous aider à voir les propriétés de données et l’activité des requêtes dans le cluster.

Nom Description
citus_dist_stat_activity Requêtes distribuées qui s’exécutent sur tous les nœuds
citus_lock_waits Requêtes bloquées dans le cluster
citus_shards Indique l’emplacement des partitions, le type de table auquel elles appartiennent et leur taille
citus_stat_statements Fournit des statistiques sur la façon dont les requêtes sont exécutées et pour qui
citus_tables Récapitulatif de toutes les tables distribuées et de référence
citus_worker_stat_activity Requêtes effectuées sur les workers, y compris les tâches sur des partitions individuelles
pg_dist_colocation Indique les partitions de tables devant être regroupées
pg_dist_node Informations sur les nœuds worker dans le cluster
pg_dist_object Objets (comme les types et les fonctions) ayant été créés sur le nœud coordinateur et propagés aux nœuds worker
pg_dist_placement Emplacement des réplicas de partition sur les nœuds worker
pg_dist_rebalance_strategy Stratégies que rebalance_table_shards peut utiliser pour déterminer où déplacer les partitions
pg_dist_shard Indique la table, la colonne de distribution et les plages de valeurs pour chaque partition
time_partitions Informations sur chaque partition gérée par des fonctions comme create_time_partitions et drop_old_time_partitions

Étapes suivantes