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
- Découvrez des requêtes de diagnostic utiles
- Passez en revue la liste des paramètres de configuration de la base de données PostgreSQL sous-jacente.