Mettre à l’échelle des partitions et réplicas pour interroger et indexer les charges de travail dans Azure SearchScale partitions and replicas for query and indexing workloads in Azure Search

Une fois que vous avez choisi un niveau tarifaire et approvisionné un service de recherche, l’étape suivante, facultative, consiste à augmenter le nombre de réplicas ou de partitions utilisés par votre service.After you choose a pricing tier and provision a search service, the next step is to optionally increase the number of replicas or partitions used by your service. Chaque niveau propose un nombre fixe d’unités de facturation.Each tier offers a fixed number of billing units. Cet article explique comment allouer ces unités pour obtenir une configuration optimale par rapport à vos exigences pour l’exécution des requêtes, l’indexation et le stockage.This article explains how to allocate those units to achieve an optimal configuration that balances your requirements for query execution, indexing, and storage.

Configuration de la ressource est disponible lorsque vous configurez un service à la niveau de base ou l’un de le niveaux Standard ou stockage optimisé.Resource configuration is available when you set up a service at the Basic tier or one of the Standard or Storage Optimized tiers. Pour les services à ces niveaux, la capacité est achetée par incréments d’unités de recherche (SU) où chaque partition et chaque réplica est considéré comme une SU.For services at these tiers, capacity is purchased in increments of search units (SUs) where each partition and replica counts as one SU.

La facture est proportionnelle au nombre de SU : moins elles sont nombreuses, plus la facture diminue.Using fewer SUs results in a proportionally lower bill. La facturation reste en vigueur tant que le service est configuré.Billing is in effect for as long as the service is set up. Si vous n’utilisez pas temporairement un service, la seule manière d’éviter la facturation consiste à supprimer ce service, puis à le recréer lorsque vous en avez besoin.If you are temporarily not using a service, the only way to avoid billing is by deleting the service and then re-creating it when you need it.

Notes

La suppression d’un service a pour effet de supprimer toutes les données qui s’y trouvent.Deleting a service deletes everything on it. Il n’existe aucune fonctionnalité dans Azure Search permettant de sauvegarder et restaurer les données de recherche persistantes.There is no facility within Azure Search for backing up and restoring persisted search data. Pour redéployer un index existant sur un nouveau service, vous devez exécuter le programme initialement utilisé pour le créer et le charger.To redeploy an existing index on a new service, you should run the program used to create and load it originally.

Terminologie : réplicas et partitionsTerminology: replicas and partitions

Réplicas et les partitions sont les principales ressources qui soutiennent un service de recherche.Replicas and partitions are the primary resources that back a search service.

RessourceResource DéfinitionDefinition
PartitionsPartitions Fournissent un stockage des index et des E/S pour les opérations de lecture-écriture (par exemple, lors de la reconstruction ou de l’actualisation d’un index).Provides index storage and I/O for read/write operations (for example, when rebuilding or refreshing an index).
RéplicasReplicas Instances du service de recherche, principalement utilisées pour équilibrer la charge des opérations de requête.Instances of the search service, used primarily to load balance query operations. Chaque réplica héberge toujours une seule copie d’un index.Each replica always hosts one copy of an index. Si vous avez 12 réplicas, vous aurez 12 copies de chaque index chargées sur le service.If you have 12 replicas, you will have 12 copies of every index loaded on the service.

Notes

Il n’existe aucun moyen de manipuler ou de gérer directement les index qui s’exécutent sur un réplica.There is no way to directly manipulate or manage which indexes run on a replica. Une copie de chaque index sur chaque réplica fait partie de l’architecture de service.One copy of each index on every replica is part of the service architecture.

Comment allouer des réplicas et des partitionsHow to allocate replicas and partitions

Dans Azure Search, un service se voit initialement allouer un niveau minimal de ressources consistant en une partition et un réplica.In Azure Search, a service is initially allocated a minimal level of resources consisting of one partition and one replica. Pour les niveaux qui le prennent en charge, vous pouvez ajuster progressivement les ressources de calcul en augmentant les partitions si vous avez besoin de plus de stockage et d’E/S ou de réplicas pour des volumes de requêtes plus importants ou des performances améliorées.For tiers that support it, you can incrementally adjust computational resources by increasing partitions if you need more storage and I/O, or add more replicas for larger query volumes or better performance. Un seul service doit avoir suffisamment de ressources pour gérer toutes les charges de travail (indexation et requêtes).A single service must have sufficient resources to handle all workloads (indexing and queries). Vous ne pouvez pas subdiviser les charges de travail entre plusieurs services.You cannot subdivide workloads among multiple services.

Pour augmenter ou modifier l’allocation des réplicas et des partitions, nous vous recommandons l’aide du portail Azure.To increase or change the allocation of replicas and partitions, we recommend using the Azure portal. Le portail applique des limites sur les combinaisons autorisées inférieures aux limites maximales.The portal enforces limits on allowable combinations that stay below maximum limits. Si vous avez besoin d’une approche d’approvisionnement basée sur le code ou script, le Azure PowerShell ou API REST de gestion sont des solutions alternatives.If you require a script-based or code-based provisioning approach, the Azure PowerShell or the Management REST API are alternative solutions.

En règle générale, les applications de recherche ont besoin de plus de réplicas que de partitions, en particulier lorsque les opérations de service favorisent les charges de travail de requête.Generally, search applications need more replicas than partitions, particularly when the service operations are biased toward query workloads. La section Haute disponibilité explique pourquoi.The section on high availability explains why.

  1. Connectez-vous au portail Azure, puis sélectionnez le service de recherche.Sign in to the Azure portal and select the search service.

  2. Dans paramètres, ouvrez le mise à l’échelle page pour modifier les réplicas et des partitions.In Settings, open the Scale page to modify replicas and partitions.

    La capture d’écran suivante montre un service standard configuré avec un seul réplica et partition.The following screenshot shows a standard service provisioned with one replica and partition. La formule en bas indique combien d’unités de recherche sont utilisés (1).The formula at the bottom indicates how many search units are being used (1). Si le prix unitaire était de 100 $ (pas un prix réel), le coût mensuel de l’exécution de ce service serait 100 $ en moyenne.If the unit price was $100 (not a real price), the monthly cost of running this service would be $100 on average.

    Affichage des valeurs actuelles dans la page mise à l’échelleScale page showing current values

  3. Utilisez le curseur pour augmenter ou diminuer le nombre de partitions.Use the slider to increase or decrease the number of partitions. La formule en bas indique combien d’unités de recherche sont utilisées.The formula at the bottom indicates how many search units are being used.

    Cet exemple double la capacité, avec deux réplicas et chacune des partitions.This example doubles capacity, with two replicas and partitions each. Notez que le nombre d’unités de recherche ; Il est désormais quatre, car la formule de facturation correspond aux réplicas multipliés par les partitions (2 x 2).Notice the search unit count; it is now four because the billing formula is replicas multiplied by partitions (2 x 2). Doubler la capacité double plus le coût d’exécution du service.Doubling capacity more than doubles the cost of running the service. Si le coût unitaire de recherche était de 100 $, la nouvelle facture mensuelle devrait désormais être 400 dollars.If the search unit cost was $100, the new monthly bill would now be $400.

    Actuel par coût unitaire de chaque couche, visitez le page de tarification.For the current per unit costs of each tier, visit the Pricing page.

    Ajouter des réplicas et des partitionsAdd replicas and partitions

  4. Cliquez sur enregistrer pour confirmer les modifications.Click Save to confirm the changes.

    Confirmer les modifications apportées à la mise à l’échelle et la facturationConfirm changes to scale and billing

    Modifications apportées à la capacité de prendront plusieurs heures.Changes in capacity take several hours to complete. Vous ne pouvez pas annuler une fois que le processus a démarré et il est sans surveillance en temps réel pour les ajustements de réplica et partition.You cannot cancel once the process has started and there is no real-time monitoring for replica and partition adjustments. Toutefois, le message suivant reste visible lors de l’exécution de modifications.However, the following message remains visible while changes are underway.

    Message d’état dans le portailStatus message in the portal

Notes

Une fois qu’un service est configuré, il ne peut pas être mis à niveau vers une référence (SKU) supérieure.After a service is provisioned, it cannot be upgraded to a higher SKU. Vous devez créer un service de recherche au nouveau niveau et recharger vos index.You must create a search service at the new tier and reload your indexes. Pour obtenir des instructions sur l’approvisionnement du service, voir Créer un service Azure Search dans le portail .See Create an Azure Search service in the portal for help with service provisioning.

combinaisons de partitions et de réplicasPartition and replica combinations

Un service basique peut avoir exactement une partition et jusqu’à trois réplicas, pour une limite maximale de trois unités de recherche.A Basic service can have exactly one partition and up to three replicas, for a maximum limit of three SUs. Les seules ressources ajustables sont les réplicas.The only adjustable resource is replicas. Vous devez disposer d’au moins 2 réplicas pour la haute disponibilité sur des requêtes.You need a minimum of two replicas for high availability on queries.

Les services de recherche tous les Standard et stockage optimisé peuvent supposer que les combinaisons suivantes de réplicas et de partitions soumises à la limite de 36-SU.All Standard and Storage Optimized search services can assume the following combinations of replicas and partitions, subject to the 36-SU limit.

1 partition1 partition 2 partitions2 partitions 3 partitions3 partitions 4 partitions4 partitions 6 partitions6 partitions 12 partitions12 partitions
1 réplica1 replica 1 unité de recherche1 SU 2 unités de recherche2 SU 3 unités de recherche3 SU 4 unités de recherche4 SU 6 unités de recherche6 SU 12 unités de recherche12 SU
2 réplicas2 replicas 2 unités de recherche2 SU 4 unités de recherche4 SU 6 unités de recherche6 SU 8 unités de recherche8 SU 12 unités de recherche12 SU 24 unités de recherche24 SU
3 réplicas3 replicas 3 unités de recherche3 SU 6 unités de recherche6 SU 9 unités de recherche9 SU 12 unités de recherche12 SU 18 unités de recherche18 SU 36 unités de recherche36 SU
4 réplicas4 replicas 4 unités de recherche4 SU 8 unités de recherche8 SU 12 unités de recherche12 SU 16 unités de recherche16 SU 24 unités de recherche24 SU S.O.N/A
5 réplicas5 replicas 5 unités de recherche5 SU 10 unités de recherche10 SU 15 unités de recherche15 SU 20 unités de recherche20 SU 30 unités de recherche30 SU S.O.N/A
6 réplicas6 replicas 6 unités de recherche6 SU 12 unités de recherche12 SU 18 unités de recherche18 SU 24 unités de recherche24 SU 36 unités de recherche36 SU S.O.N/A
12 réplicas12 replicas 12 unités de recherche12 SU 24 unités de recherche24 SU 36 unités de recherche36 SU S.O.N/A N/AN/A S.O.N/A

Les unités de recherche, leur tarification et leur capacité sont détaillées sur le site web Azure.SUs, pricing, and capacity are explained in detail on the Azure website. Pour plus d'informations, consultez la rubrique Tarification.For more information, see Pricing Details.

Notes

Le nombre de réplicas et de partitions est divisible par 12 de manière égale (plus précisément, 1, 2, 3, 4, 6, 12).The number of replicas and partitions divides evenly into 12 (specifically, 1, 2, 3, 4, 6, 12). Azure Search divise au préalable chaque index en 12 partitions pour que celles-ci puissent être réparties équitablement sur plusieurs partitions.This is because Azure Search pre-divides each index into 12 shards so that it can be spread in equal portions across all partitions. Par exemple, si votre service comporte trois partitions et que vous créez un index, chaque partition contiendra quatre partitions de l'index.For example, if your service has three partitions and you create an index, each partition will contain four shards of the index. Le partitionnement d’un index réalisé par la Recherche Azure est un détail d'implémentation susceptible d’être modifié dans des futures versions.How Azure Search shards an index is an implementation detail, subject to change in future releases. Le nombre de partitions (12 à l’heure actuelle) peut être, à l’avenir, totalement différent.Although the number is 12 today, you shouldn't expect that number to always be 12 in the future.

Haute disponibilitéHigh availability

Nous vous recommandons généralement de démarrer avec une partition et un ou deux réplicas, puis de monter en puissance à mesure que les volumes de requête se créent.Because it's easy and relatively fast to scale up, we generally recommend that you start with one partition and one or two replicas, and then scale up as query volumes build. Les charges de travail de requêtes s’exécutent principalement sur des réplicas.Query workloads run primarily on replicas. Si vous nécessitez une haute disponibilité ou un débit plus important, vous aurez probablement besoin de réplicas supplémentaires.If you need more throughput or high availability, you will probably require additional replicas.

Recommandations générales pour la haute disponibilité :General recommendations for high availability are:

  • Deux réplicas pour la haute disponibilité des charges de travail en lecture seule (requêtes)Two replicas for high availability of read-only workloads (queries)
  • Trois réplicas minimum pour la haute disponibilité des charges de travail en lecture/écriture (les requêtes et l’indexation en tant que documents individuels sont ajoutées, mises à jour ou supprimées)Three or more replicas for high availability of read/write workloads (queries plus indexing as individual documents are added, updated, or deleted)

Les contrats de niveau de service (SLA) pour la Recherche Azure sont ciblés au moment des opérations de requête et des mises à jour d’index qui se composent d’ajout, de mise à jour ou de suppression de documents.Service level agreements (SLA) for Azure Search are targeted at query operations and at index updates that consist of adding, updating, or deleting documents.

Le niveau De base est plafonné à une partition et trois réplicas.Basic tier tops out at one partition and three replicas. Si vous souhaitez pouvoir répondre immédiatement aux fluctuations de la demande sur le plan de l’indexation et du débit des requêtes, songez à passer à l’un des niveaux Standard.If you want the flexibility to immediately respond to fluctuations in demand for both indexing and query throughput, consider one of the Standard tiers. Si vous trouvez que vos besoins de stockage augmente beaucoup plus rapidement que le débit de votre requête, envisagez l’une des niveaux de stockage optimisé.If you find your storage requirements are growing much more rapidly than your query throughput, consider one of the Storage Optimized tiers.

Disponibilité des index lors d’une reconstructionIndex availability during a rebuild

La haute disponibilité pour Azure Search se rapporte aux requêtes et aux mises à jour d’index qui n’impliquent pas la reconstruction d’un index.High availability for Azure Search pertains to queries and index updates that don't involve rebuilding an index. Si vous supprimez un champ, modifiez un type de données ou renommez un champ, vous devez reconstruire l’index.If you delete a field, change a data type, or rename a field, you will need to rebuild the index. Pour reconstruire l’index, vous devez supprimer l’index, le recréer et recharger les données.To rebuild the index, you must delete the index, re-create the index, and reload the data.

Notes

Vous pouvez ajouter de nouveaux champs à un index Recherche Azure sans reconstruire l’index.You can add new fields to an Azure Search index without rebuilding the index. La valeur du nouveau champ sera Null pour tous les documents déjà présents dans l’index.The value of the new field will be null for all documents already in the index.

Pour maintenir la disponibilité de l’index pendant une reconstruction, vous devez disposer d’une copie de l’index avec un nom différent sur le même service ou d’une copie de l’index de même nom sur un autre service, et fournir la redirection ou la logique de basculement dans votre code.To maintain index availability during a rebuild, you must have a copy of the index with a different name on the same service, or a copy of the index with the same name on a different service, and then provide redirection or failover logic in your code.

Récupération d'urgenceDisaster recovery

Il n'existe actuellement aucun mécanisme intégré de récupération d'urgence.Currently, there is no built-in mechanism for disaster recovery. L’ajout de partitions ou de réplicas ne vous permettra pas d’atteindre les objectifs de récupération d'urgence qui ont été fixés.Adding partitions or replicas would be the wrong strategy for meeting disaster recovery objectives. L’approche la plus courante consiste à intégrer la redondance au niveau du service en configurant un deuxième service de recherche dans une autre région.The most common approach is to add redundancy at the service level by setting up a second search service in another region. Comme avec la disponibilité pendant une reconstruction d’index, la redirection ou la logique de basculement doit provenir de votre code.As with availability during an index rebuild, the redirection or failover logic must come from your code.

Augmenter les performances des requêtes avec des réplicasIncrease query performance with replicas

La latence des requêtes vous permet de découvrir si des réplicas supplémentaires doivent être ajoutés.Query latency is an indicator that additional replicas are needed. En règle générale, la première étape vers l’amélioration des performances des requêtes consiste à ajouter davantage de cette ressource.Generally, a first step toward improving query performance is to add more of this resource. Lorsque vous ajoutez des réplicas, les copies supplémentaires de l’index sont mises en ligne pour prendre en charge les charges de travail supérieures de requête et équilibrer la charge des requêtes sur plusieurs réplicas.As you add replicas, additional copies of the index are brought online to support bigger query workloads and to load balance the requests over the multiple replicas.

Nous ne pouvons fournir aucune estimation sur les requêtes par seconde (RPS) : les performances des requêtes dépendent de la complexité de la requête et des charges de travail concurrentes.We cannot provide hard estimates on queries per second (QPS): query performance depends on the complexity of the query and competing workloads. Bien que l’ajout de réplicas entraîne clairement une amélioration de l’évolutivité et des performances, le résultat final n’est pas strictement linéaire : si vous ajoutez trois réplicas, le débit n’est pas forcément multiplié par trois.Although adding replicas clearly results in better performance, the result is not strictly linear: adding three replicas does not guarantee triple throughput.

Pour obtenir de l’aide sur l’estimation des requêtes par seconde pour vos charges de travail, consultez Considérations sur les performances et l’optimisation de Recherche Azure.For guidance in estimating QPS for your workloads, see Azure Search performance and optimization considerations.

Améliorer les performances d’indexation avec des partitionsIncrease indexing performance with partitions

Les applications de recherche nécessitant une actualisation des données en temps réel ou presque ont proportionnellement besoin de plus de partitions que de réplicas.Search applications that require near real-time data refresh will need proportionally more partitions than replicas. L’ajout de partitions répartit les opérations de lecture/écriture sur un plus grand nombre de ressources de calcul.Adding partitions spreads read/write operations across a larger number of compute resources. Il vous offre également davantage d’espace disque pour stocker des documents et des index supplémentaires.It also gives you more disk space for storing additional indexes and documents.

Plus les index sont grands, plus ils sont longs à interroger.Larger indexes take longer to query. Par conséquent, peut-être constaterez-vous que chaque augmentation incrémentielle des partitions nécessite une augmentation plus faible mais proportionnelle des réplicas.As such, you might find that every incremental increase in partitions requires a smaller but proportional increase in replicas. La complexité et le volume de vos requêtes auront une incidence sur la vitesse d’exécution des requêtes.The complexity of your queries and query volume will factor into how quickly query execution is turned around.

Étapes suivantesNext steps

Choisir un niveau de tarification pour Azure SearchChoose a pricing tier for Azure Search