Partager via


Choisir le nombre de partitions dans Azure Cosmos DB for PostgreSQL

Important

Azure Cosmos DB pour PostgreSQL n’est plus pris en charge pour les nouveaux projets. N’utilisez pas ce service pour les nouveaux projets. Utilisez plutôt l’un des deux services suivants :

  • Utilisez Azure Cosmos DB pour NoSQL pour une solution de base de données distribuée conçue pour des scénarios à grande échelle avec un contrat de niveau de service de disponibilité (SLA) de 99,999%, une mise à l’échelle automatique instantanée et un basculement automatique entre plusieurs régions.

  • Utilisez la fonctionnalité Elastic Clusters d'Azure Database pour PostgreSQL pour un PostgreSQL partagé utilisant l'extension open source Citus.

Le choix du nombre de partitions pour chaque table distribuée est un compromis entre la possibilité d’avoir un nombre plus important de partitions et la surcharge liée à la planification et à l’exécution des requêtes sur ces partitions. Si vous décidez de modifier le nombre de fragments d’une table après sa distribution, vous pouvez utiliser la fonction alter_distributed_table.

Cas d'utilisation SaaS multi-tenant

Le choix optimal varie en fonction de vos modèles d’accès aux données. Par exemple, dans le cas d’usage d’une base de données SaaS multilocataire, nous vous recommandons de choisir entre 32 et 128 partitions. Pour les charges de travail plus petites, par exemple de <100 Go, vous pouvez commencer avec 32 partitions et pour les charges de travail plus volumineuses, vous pouvez choisir 64 ou 128 partitions. Ce choix vous donne la marge de manœuvre nécessaire pour passer de 32 à 128 machines Worker.

Cas d’usage de l’analytique en temps réel

Dans le cas d’usage de l’analytique en temps réel, le nombre de partitions doit être lié au nombre total de cœurs sur les Workers. Pour garantir un parallélisme maximal, vous devez créer suffisamment de partitions sur chaque nœud de sorte qu’il y ait au moins une partition par cœur de processeur. Nous vous recommandons généralement de créer un nombre élevé de partitions initiales, par exemple 2 ou 4 fois le nombre de cœurs de processeur actuels. Le fait d’avoir plus de partitions permet une mise à l’échelle ultérieure si vous ajoutez d’autres Workers et cœurs de processeur.

N’oubliez pas que, pour chaque requête, Azure Cosmos DB for PostgreSQL ouvre une seule connexion de base de données par partition, et que ces connexions sont limitées. Veillez à garder le nombre de fragments suffisamment petit pour que les requêtes distribuées n'aient que rarement à attendre une connexion. Autrement dit, les connexions nécessaires, (max concurrent queries * shard count), ne doivent pas dépasser le nombre total de connexions possibles dans le système, (number of workers * max_connections per worker).

Étapes suivantes