Ridimensionare le partizioni e le repliche per aggiungere capacità per carichi di lavoro di query e indici in Azure ricerca cognitivaScale up partitions and replicas to add capacity for query and index workloads in Azure Cognitive Search

Dopo aver scelto un piano tariffario ed eseguito il provisioning di un servizio di ricerca, il passaggio successivo consente di aumentare il numero di repliche o partizioni usate dal servizio.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. Ogni livello offre un numero fisso di unità di fatturazione.Each tier offers a fixed number of billing units. Questo articolo illustra come assegnare le unità per ottenere una configurazione ottimale che bilanci i requisiti per l'esecuzione di query, indicizzazione e archiviazione.This article explains how to allocate those units to achieve an optimal configuration that balances your requirements for query execution, indexing, and storage.

La configurazione delle risorse è disponibile quando si configura un servizio al livello Basic o a uno dei livelli standard o ottimizzatiper l'archiviazione.Resource configuration is available when you set up a service at the Basic tier or one of the Standard or Storage Optimized tiers. Per tutti i servizi di questi livelli è possibile acquistare capacità a incrementi di unità di ricerca (SU). Le singole partizioni e repliche vengono considerate come una unità di ricerca.For services at these tiers, capacity is purchased in increments of search units (SUs) where each partition and replica counts as one SU.

Usando un numero minore di risultati SU in una fattura proporzionalmente inferiore.Using fewer SUs results in a proportionally lower bill. La fatturazione è attiva per l'intera durata impostata per il servizio.Billing is in effect for as long as the service is set up. Se temporaneamente non si usa un servizio, l'unico modo per evitare la fatturazione è eliminare il servizio e quindi ricrearlo quando sarà necessario.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.

Nota

Eliminando un servizio si elimina tutto il suo contenuto.Deleting a service deletes everything on it. Non è disponibile alcuna funzionalità in Azure ricerca cognitiva per il backup e il ripristino dei dati di ricerca salvati in permanenza.There is no facility within Azure Cognitive Search for backing up and restoring persisted search data. Per ridistribuire un indice esistente in un nuovo servizio è necessario eseguire il programma utilizzato in origine per crearlo e caricarlo.To redeploy an existing index on a new service, you should run the program used to create and load it originally.

Terminologia: repliche e partizioniTerminology: replicas and partitions

Le repliche e le partizioni sono le risorse primarie che eseguono il backup di un servizio di ricerca.Replicas and partitions are the primary resources that back a search service.

GruppiResource DefinizioneDefinition
PartitionsPartitions Offre l'archiviazione degli indici e l'I/O per le operazioni di lettura e scrittura, ad esempio durante la compilazione o l'aggiornamento di un indice.Provides index storage and I/O for read/write operations (for example, when rebuilding or refreshing an index).
ReplicheReplicas Istanze del servizio di ricerca, utilizzate principalmente per il bilanciamento di carico delle operazioni di query.Instances of the search service, used primarily to load balance query operations. Ogni replica ospita sempre una copia di un indice.Each replica always hosts one copy of an index. Se si dispone di 12 repliche, si disporrà di 12 copie di ogni indice caricate nel servizio.If you have 12 replicas, you will have 12 copies of every index loaded on the service.

Nota

Non è possibile manipolare o scegliere direttamente quali indici devono essere eseguiti su una replica.There is no way to directly manipulate or manage which indexes run on a replica. L'architettura del servizio include una copia di ogni indice in ogni replica.One copy of each index on every replica is part of the service architecture.

Come allocare repliche e partizioniHow to allocate replicas and partitions

In Azure ricerca cognitiva un servizio viene inizialmente allocato a un livello minimo di risorse costituito da una partizione e una replica.In Azure Cognitive Search, a service is initially allocated a minimal level of resources consisting of one partition and one replica. Per i livelli che lo supportano, è possibile regolare in modo incrementale le risorse di elaborazione aumentando le partizioni se si ha bisogno di maggiore spazio di archiviazione e I/O o aggiungendo più repliche per volumi di query maggiori o migliori prestazioni.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 singolo servizio deve disporre di risorse sufficienti per gestire tutti i carichi di lavoro (indicizzazione e query).A single service must have sufficient resources to handle all workloads (indexing and queries). Non è possibile suddividere i carichi di lavoro tra più servizi.You cannot subdivide workloads among multiple services.

Per aumentare o modificare l'allocazione delle repliche e delle partizioni, è consigliabile usare il portale di Azure.To increase or change the allocation of replicas and partitions, we recommend using the Azure portal. Il portale impone limiti per le combinazioni consentite che sono inferiori ai limiti massimi.The portal enforces limits on allowable combinations that stay below maximum limits. Se è necessario un approccio di provisioning basato su script o basato sul codice, l' Azure PowerShell o l' API REST di gestione sono soluzioni alternative.If you require a script-based or code-based provisioning approach, the Azure PowerShell or the Management REST API are alternative solutions.

In generale le applicazioni di ricerca richiedono più repliche che partizioni, in particolare quando fra le operazioni del servizio prevalgono i carichi di lavoro di query.Generally, search applications need more replicas than partitions, particularly when the service operations are biased toward query workloads. La sezione relativa alla disponibilità elevata spiega perché.The section on high availability explains why.

  1. Accedere al portale di Azure e selezionare il servizio di ricerca.Sign in to the Azure portal and select the search service.

  2. In Impostazioniaprire la pagina scala per modificare le repliche e le partizioni.In Settings, open the Scale page to modify replicas and partitions.

    Lo screenshot seguente mostra un servizio standard di cui è stato effettuato il provisioning con una replica e una partizione.The following screenshot shows a standard service provisioned with one replica and partition. La formula nella parte inferiore indica il numero di unità di ricerca utilizzate (1).The formula at the bottom indicates how many search units are being used (1). Se il prezzo unitario è $100 (non un prezzo reale), il costo mensile per l'esecuzione di questo servizio sarà in media pari a $100.If the unit price was $100 (not a real price), the monthly cost of running this service would be $100 on average.

    Pagina scala che mostra i valori correntiScale page showing current values

  3. Utilizzare il dispositivo di scorrimento per aumentare o diminuire il numero di partizioni.Use the slider to increase or decrease the number of partitions. La formula nella parte inferiore indica il numero di unità di ricerca utilizzate.The formula at the bottom indicates how many search units are being used.

    Questo esempio raddoppia la capacità, con due repliche e partizioni ciascuna.This example doubles capacity, with two replicas and partitions each. Si noti il numero di unità di ricerca; Ora è quattro perché la formula di fatturazione è rappresentata dalle repliche moltiplicate per le partizioni (2 x 2).Notice the search unit count; it is now four because the billing formula is replicas multiplied by partitions (2 x 2). Raddoppiare la capacità più di raddoppiare il costo di esecuzione del servizio.Doubling capacity more than doubles the cost of running the service. Se il costo unitario di ricerca è $100, la nuova fattura mensile sarà $400.If the search unit cost was $100, the new monthly bill would now be $400.

    Per i costi correnti per unità di ogni livello, visitare la pagina dei prezzi.For the current per unit costs of each tier, visit the Pricing page.

    Aggiungere repliche e partizioniAdd replicas and partitions

  4. Fare clic su Salva per confermare le modifiche.Click Save to confirm the changes.

    Confermare le modifiche per la scalabilità e la fatturazioneConfirm changes to scale and billing

    Per il completamento delle modifiche nella capacità sono necessarie diverse ore.Changes in capacity take several hours to complete. Non è possibile annullare una volta che il processo è stato avviato e non è disponibile alcun monitoraggio in tempo reale per le modifiche della replica e della partizione.You cannot cancel once the process has started and there is no real-time monitoring for replica and partition adjustments. Tuttavia, il messaggio seguente rimane visibile mentre sono in corso le modifiche.However, the following message remains visible while changes are underway.

    Messaggio di stato nel portaleStatus message in the portal

Nota

Dopo aver effettuato il provisioning di un servizio, non è possibile aggiornarlo passando a uno SKU superiore.After a service is provisioned, it cannot be upgraded to a higher SKU. È necessario creare un servizio di ricerca a un nuovo livello e ricaricare gli indici.You must create a search service at the new tier and reload your indexes. Per informazioni sul provisioning del servizio, vedere creare un servizio ricerca cognitiva di Azure nel portale .See Create an Azure Cognitive Search service in the portal for help with service provisioning.

combinazioni di partizioni e replichePartition and replica combinations

Il servizio Basic prevede esattamente una partizione e fino a tre repliche, per un massimo di tre unità di ricerca.A Basic service can have exactly one partition and up to three replicas, for a maximum limit of three SUs. Le repliche sono l'unica risorsa regolabile.The only adjustable resource is replicas. Per la disponibilità elevata relativa alle query è necessario un minimo di due repliche.You need a minimum of two replicas for high availability on queries.

Tutti i servizi di ricerca standard e ottimizzati per l'archiviazione possono presupporre le combinazioni di repliche e partizioni seguenti, soggette al limite di 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 partizione1 partition 2 partizioni2 partitions 3 partizioni3 partitions 4 partizioni4 partitions 6 partizioni6 partitions 12 partizioni12 partitions
1 replica.1 replica 1 unità di ricerca1 SU 2 unità di ricerca2 SU 3 unità di ricerca3 SU 4 unità di ricerca4 SU 6 unità di ricerca6 SU 12 unità di ricerca12 SU
2 repliche2 replicas 2 unità di ricerca2 SU 4 unità di ricerca4 SU 6 unità di ricerca6 SU 8 unità di ricerca8 SU 12 unità di ricerca12 SU 24 unità di ricerca24 SU
3 repliche3 replicas 3 unità di ricerca3 SU 6 unità di ricerca6 SU 9 unità di ricerca9 SU 12 unità di ricerca12 SU 18 unità di ricerca18 SU 36 unità di ricerca36 SU
4 repliche4 replicas 4 unità di ricerca4 SU 8 unità di ricerca8 SU 12 unità di ricerca12 SU 16 unità di ricerca16 SU 24 unità di ricerca24 SU N/DN/A
5 repliche5 replicas 5 unità di ricerca5 SU 10 unità di ricerca10 SU 15 unità di ricerca15 SU 20 unità di ricerca20 SU 30 unità di ricerca30 SU N/DN/A
6 repliche6 replicas 6 unità di ricerca6 SU 12 unità di ricerca12 SU 18 unità di ricerca18 SU 24 unità di ricerca24 SU 36 unità di ricerca36 SU N/DN/A
12 repliche12 replicas 12 unità di ricerca12 SU 24 unità di ricerca24 SU 36 unità di ricerca36 SU N/DN/A N/DN/A N/DN/A

Le unità di ricerca, i prezzi e le capacità sono illustrati in dettaglio nel sito web di Azure.SUs, pricing, and capacity are explained in detail on the Azure website. Per altre informazioni, vedere i dettagli sui prezzi.For more information, see Pricing Details.

Nota

Il numero di repliche e partizioni divide equamente per 12 (in particolare 1, 2, 3, 4, 6, 12).The number of replicas and partitions divides evenly into 12 (specifically, 1, 2, 3, 4, 6, 12). Questo perché Azure ricerca cognitiva suddivide ogni indice in 12 partizioni in modo che sia possibile distribuirlo in parti uguali tra tutte le partizioni.This is because Azure Cognitive Search pre-divides each index into 12 shards so that it can be spread in equal portions across all partitions. Ad esempio, se il servizio ha tre partizioni e si crea un indice, ogni partizione conterrà quattro partizioni dell'indice.For example, if your service has three partitions and you create an index, each partition will contain four shards of the index. La modalità di partizionamento di un indice in Azure ricerca cognitiva è un dettaglio di implementazione, soggetta a modifiche nelle versioni future.How Azure Cognitive Search shards an index is an implementation detail, subject to change in future releases. Sebbene il numero attualmente sia 12, tale numero potrebbe non essere 12 in futuro.Although the number is 12 today, you shouldn't expect that number to always be 12 in the future.

Disponibilità elevataHigh availability

Poiché è facile e relativamente veloce eseguire la scalabilità verticale, è consigliabile in genere iniziare con una partizione e una o due repliche e quindi eseguire la scalabilità verticale come vengono compilati i volumi di query.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. I carichi di lavoro di query vengono eseguiti principalmente nelle repliche.Query workloads run primarily on replicas. Se è necessaria maggiore velocità effettiva o una disponibilità elevata, probabilmente saranno necessarie repliche aggiuntive.If you need more throughput or high availability, you will probably require additional replicas.

Le indicazioni generali per la disponibilità elevata sono:General recommendations for high availability are:

  • Due repliche per la disponibilità elevata di carichi di lavoro di sola lettura, vale a dire query.Two replicas for high availability of read-only workloads (queries)

  • Tre o più repliche per la disponibilità elevata dei carichi di lavoro di lettura e scrittura, vale a dire query e indicizzazione man mano che singoli documenti vengono aggiunti, aggiornati o eliminati.Three or more replicas for high availability of read/write workloads (queries plus indexing as individual documents are added, updated, or deleted)

I contratti di servizio per Azure ricerca cognitiva sono destinati a operazioni di query e a aggiornamenti degli indici che includono l'aggiunta, l'aggiornamento o l'eliminazione di documenti.Service level agreements (SLA) for Azure Cognitive Search are targeted at query operations and at index updates that consist of adding, updating, or deleting documents.

Il livello Basic prevede una partizione e fino a tre repliche.Basic tier tops out at one partition and three replicas. Se si vuole avere la flessibilità necessaria per rispondere immediatamente alle fluttuazioni della richiesta di indicizzazione e velocità effettiva di query, prendere in considerazione uno dei piani 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. Se i requisiti di archiviazione aumentano molto più rapidamente rispetto alla velocità effettiva delle query, prendere in considerazione uno dei livelli ottimizzati per l'archiviazione.If you find your storage requirements are growing much more rapidly than your query throughput, consider one of the Storage Optimized tiers.

Disponibilità degli indici durante la ricompilazioneIndex availability during a rebuild

La disponibilità elevata per Azure ricerca cognitiva riguarda le query e gli aggiornamenti degli indici che non implicano la ricompilazione di un indice.High availability for Azure Cognitive Search pertains to queries and index updates that don't involve rebuilding an index. Se si elimina o si rinomina un campo oppure si modifica il tipo di dati, sarà necessario ricompilare l'indice.If you delete a field, change a data type, or rename a field, you will need to rebuild the index. A tale scopo, è necessario eliminare l'indice, ricrearlo e ricaricare i dati.To rebuild the index, you must delete the index, re-create the index, and reload the data.

Nota

È possibile aggiungere nuovi campi a un indice di ricerca cognitiva di Azure senza ricompilare l'indice.You can add new fields to an Azure Cognitive Search index without rebuilding the index. Il valore del nuovo campo sarà null per tutti i documenti già presenti nell'indice.The value of the new field will be null for all documents already in the index.

Per mantenere la disponibilità degli indici durante la ricompilazione, è necessario avere una copia dell'indice con un nome diverso nelle stesso servizio oppure una copia dell'indice con lo stesso nome in un servizio diverso e quindi specificare la logica di reindirizzamento o di failover nel codice.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.

Ripristino di emergenzaDisaster recovery

Attualmente, non esiste alcun meccanismo incorporato per il ripristino di emergenza.Currently, there is no built-in mechanism for disaster recovery. L'aggiunta di partizioni o repliche sarebbe una strategia errata per soddisfare gli obiettivi di ripristino di emergenza.Adding partitions or replicas would be the wrong strategy for meeting disaster recovery objectives. Il metodo più comune consiste nell'aggiungere ridondanza a livello di servizio impostando un secondo servizio di ricerca in un'altra area.The most common approach is to add redundancy at the service level by setting up a second search service in another region. Come con la disponibilità durante la ricostruzione di un indice, la logica di reindirizzamento o di failover deve provenire dal codice.As with availability during an index rebuild, the redirection or failover logic must come from your code.

Aumentare le prestazioni delle query con le replicheIncrease query performance with replicas

La latenza delle query indica che sono necessarie repliche aggiuntive.Query latency is an indicator that additional replicas are needed. In genere, un primo passo per migliorare le prestazioni delle query consiste nell'aggiungere altre repliche.Generally, a first step toward improving query performance is to add more of this resource. Quando si aggiungono le repliche, copie aggiuntive dell'indice vengono portate online per supportare carichi di lavoro di query maggiori e per bilanciare il carico delle richieste su più repliche.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.

Non è possibile fornire stime precise sulle query al secondo. Le prestazioni, infatti, dipendono dalla complessità della query e dai carichi di lavoro concorrenti.We cannot provide hard estimates on queries per second (QPS): query performance depends on the complexity of the query and competing workloads. Sebbene l'aggiunta di repliche consenta certamente di migliorare le prestazioni, il risultato non è strettamente lineare. L'aggiunta di tre repliche, infatti, non garantisce una velocità effettiva triplicata.Although adding replicas clearly results in better performance, the result is not strictly linear: adding three replicas does not guarantee triple throughput.

Per informazioni aggiuntive sulla stima di query al secondo per i carichi di lavoro, vedere considerazioni sulle prestazioni e sull'ottimizzazione di Azure ricerca cognitiva.For guidance in estimating QPS for your workloads, see Azure Cognitive Search performance and optimization considerations.

Aumentare le prestazioni dell'indicizzazione con le partizioniIncrease indexing performance with partitions

Le applicazioni di ricerca che richiedono l'aggiornamento dei dati quasi in tempo reale avranno bisogno in proporzione di più partizioni che repliche.Search applications that require near real-time data refresh will need proportionally more partitions than replicas. L'aggiunta di partizioni distribuisce le operazioni di lettura/scrittura su un numero più ampio di risorse di calcolo.Adding partitions spreads read/write operations across a larger number of compute resources. Offre inoltre più spazio su disco per l'archiviazione di documenti e indici aggiuntivi.It also gives you more disk space for storing additional indexes and documents.

L'esecuzione di query su indici di dimensioni maggiori può richiedere tempi più lunghi.Larger indexes take longer to query. Di conseguenza, si noterà che ogni aumento incrementale delle partizioni richiede un aumento delle repliche proporzionale ma più limitato.As such, you might find that every incremental increase in partitions requires a smaller but proportional increase in replicas. La complessità e il volume delle query influiscono sulla rapidità di esecuzione delle stesse.The complexity of your queries and query volume will factor into how quickly query execution is turned around.

Passaggi successiviNext steps

Scegliere un piano tariffario per Azure ricerca cognitivaChoose a pricing tier for Azure Cognitive Search