Cosmos-Daten brauchen Analytics? Mit SQL-Abfragen analysieren
Ein Händler möchte wissen, wie viele Produkte vorhanden sind und wie sich Preise zwischen Kategorien unterscheiden. Jedes Dokument einzeln zu lesen wird mit wachsendem Katalog aufwendig. Cosmos-DB-SQL-Abfragen berechnen Zusammenfassungen direkt aus JSON-Dokumenten im Data Explorer und nutzen dafür den Durchsatz des vorhandenen Containers.
Verwende cosmos-ctappeus → Data Explorer → appdb → products aus dem Trip zur Kontoerstellung. Diese Übung läuft vollständig im Azure-Portal.
Zwei Beispielprodukte hinzufügen
Öffne Items → New Item, füge das erste Dokument ein und wähle Save. Wiederhole dies für das zweite Dokument:
{"id":"analytics-pen","category":"stationery","name":"Pen","price":2,"lab":"analytics"}
{"id":"analytics-mug","category":"home","name":"Mug","price":8,"lab":"analytics"}
Das Feld lab grenzt diese Beispiele von deinen vorhandenen Produkten ab. Existieren diese IDs bereits in ihren Kategorien, passe die betreffenden Elemente an die obigen Werte an.
Wähle products → New SQL Query und führe aus:
SELECT c.id, c.category, c.name, c.price
FROM c
WHERE c.lab = 'analytics'

Prüfe beide Elemente mit Kategorie und numerischem Preis. Der Partitionsschlüssel /category ordnet sie unterschiedlichen logischen Partitionen zu.
Zusammenfassung berechnen
Führe im selben Abfragetab aus:
SELECT COUNT(1) AS productCount,
AVG(c.price) AS averagePrice,
MIN(c.price) AS lowestPrice,
MAX(c.price) AS highestPrice
FROM c
WHERE c.lab = 'analytics'

Erwarte 2 Produkte, Durchschnitt 5, Minimum 2 und Maximum 8. Diese Funktionen fassen passende Dokumente zu einem Ergebnis zusammen. Prüfe Request Charge in der Abfragestatistik: Request Units (RU) messen die verbrauchte Datenbankarbeit; der tatsächliche Wert variiert.
Kategorien vergleichen
Führe aus:
SELECT c.category,
COUNT(1) AS productCount,
AVG(c.price) AS averagePrice
FROM c
WHERE c.lab = 'analytics'
GROUP BY c.category

Erwarte stationery: 1 Produkt, Durchschnitt 2 und home: 1 Produkt, Durchschnitt 8 in beliebiger Reihenfolge. GROUP BY berechnet eine eigene Zusammenfassung je Kategorie.
Diese Abfragen lesen aktive Cosmos-Daten und teilen den Durchsatz mit App-Anfragen. Umfangreiche Abfragen über viele Partitionen können mehr RUs verbrauchen; große regelmäßige Berichte profitieren von einer separaten Analysekopie.
Aufräumen
Lösche unter Items ausschließlich analytics-pen in stationery und analytics-mug in home. Behalte deine ursprünglichen Produkte und das Konto für den nächsten Trip.