Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SI APPLICA A: NoSQL
Importante
Gli indici secondari globali di Azure Cosmos DB per NoSQL sono attualmente in anteprima. Questa anteprima viene fornita senza un contratto di servizio. Al momento, non è consigliabile usare indici secondari globali per i carichi di lavoro di produzione. Alcune funzionalità di questa anteprima potrebbero non essere supportate o potrebbero essere limitate. Per altre informazioni, vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.
Gli indici secondari globali offrono un modo efficace per ottimizzare le prestazioni delle query e semplificare la logica dell'applicazione archiviando i dati con una chiave di partizione diversa e/o un modello di dati. Questo articolo descrive come creare indici secondari globali e come usarli per evitare query tra partizioni.
Prerequisiti
- Un account Azure Cosmos DB esistente.
- Se si ha una sottoscrizione di Azure, creare un nuovo account.
- Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
- In alternativa, è possibile provare Azure Cosmos DB gratuitamente prima di eseguire il commit.
Abilitare gli indici secondari globali
Abilitare la funzionalità di indice secondario globale per l'account Azure Cosmos DB. I backup continui devono essere attivati per l'account prima di abilitare gli indici secondari globali.
Accedi al portale di Azure.
Passare all'account Azure Cosmos DB per NoSQL.
Nel menu delle risorse selezionare Impostazioni.
Passare alla pagina Funzionalità. Selezionare quindi Indice secondario globale per l'API NoSQL (anteprima) e Abilita.
Creare un indice secondario globale
Dopo aver abilitato la funzionalità di indice secondario globale, è possibile creare indici secondari globali.
Creare un contenitore di origine
Gli indici secondari globali archiviano una copia dei dati dal contenitore di origine. Prima di creare un indice secondario globale, creare il contenitore di origine da cui verrà compilato il contenitore dell'indice. Se si ha già un contenitore nell'account Azure Cosmos DB che si vuole usare come origine, è possibile ignorare questi passaggi.
Usare il portale di Azure, gli SDK di Azure, l'interfaccia della riga di comando di Azure o l'API REST per creare un contenitore di origine denominato
gsi-src
con/customerId
come percorso della chiave di partizione.Annotazioni
Il campo
/customerId
viene usato solo come esempio in questo articolo. Per i contenitori personalizzati, selezionare una chiave di partizione che funzioni per la soluzione.Inserire alcuni elementi nel contenitore di origine. Per seguire gli esempi illustrati in questo articolo, assicurarsi che gli elementi abbiano
customerId
eemailAddress
campi. Un elemento di esempio potrebbe essere simile al seguente:{ "id": "eaf0338e-2b61-4163-822f-7bef75bf51de", "customerId": "36c7cc3d-1709-45c6-819f-10e5586a6cb7", "emailAddress": "justine@contoso.com", "name": "Justine" }
Suggerimento
In questo esempio il contenitore di origine viene popolato con dati di esempio prima di aggiungere un contenitore di indici. È anche possibile creare un indice secondario globale da un contenitore di origine vuoto.
Creare un contenitore di indici secondario globale
Dopo aver creato il contenitore di origine, è possibile creare un contenitore di indici secondari globale usando il portale di Azure o l'interfaccia della riga di comando di Azure.
Passare alla sezione Esplora dati nel proprio account Azure Cosmos DB. Selezionare il contenitore di origine,
gsi-src
in questo esempio, e selezionare Nuovo indice secondario globale nell'elenco a discesa.L'ID del contenitore di origine sarà compilato automaticamente. Nel campo Index container ID (ID contenitore index ) immettere
gsi-target
.Nel campo Global secondary index definition (Definizione indice secondario globale ) immettere
SELECT c.customerId, c.emailAddress FROM c
.Nel campo Chiave di partizione immettere
/emailAddress
.I contenitori di indici secondari globali devono utilizzare il throughput con scalabilità automatica. Configurare tutte le altre impostazioni del contenitore desiderate e selezionare OK per creare il contenitore dell'indice secondario globale.
Dopo aver creato il contenitore dell'indice secondario globale, i dati vengono sincronizzati automaticamente dal contenitore di origine. Provare a eseguire operazioni di creazione, aggiornamento ed eliminazione nel contenitore di origine. Verranno visualizzate le stesse modifiche propagate agli elementi nell'indice secondario globale.
Interrogare i dati dagli indici secondari globali
In questo esempio è presente un contenitore di origine partizionato in customerId
e un contenitore di indice secondario globale partizionato in emailAddress
. Senza il contenitore di indici, le query che includono solo l'oggetto emailAddress
sarebbero tra partizioni, ma ora possono essere eseguite sull'indice secondario globale per aumentare l'efficienza.
L'esecuzione di query sui dati da indici secondari globali è simile all'esecuzione di query sui dati da qualsiasi altro contenitore. È possibile usare il portale di Azure, gli SDK di Azure o l'API REST per eseguire query sui dati negli indici secondari globali.
Container container = client.GetDatabase("gsi-db").GetContainer("gsi-target");
FeedIterator<MyClass> myQuery = container.GetItemQueryIterator<MyClass>(new QueryDefinition("SELECT * FROM c WHERE c.emailAddress = 'justine@contoso.com'"));