Schnellstart: Verwenden von Azure Cosmos DB for NoSQL mit dem Azure SDK für Rust
In diesem Schnellstart stellen Sie eine einfache Azure Cosmos DB for Table-Anwendung mithilfe des Azure SDK für Rust bereit. Azure Cosmos DB for Table ist ein schemaloser Datenspeicher, der es Anwendungen ermöglicht, strukturierte NoSQL-Daten in der Cloud zu speichern. Sie erfahren, wie Sie Tabellen, Zeilen und grundlegende Aufgaben in Ihrer Azure Cosmos DB-Ressource mithilfe des Azure SDK für Rust erstellen.
Wichtig
Das Rust SDK für Azure Cosmos DB befindet sich derzeit in der Public Preview. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar.
Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
API-Referenzdokumentation | Quellcode der Bibliothek | Paket (Rust) | Azure Developer CLI
Voraussetzungen
- Docker Desktop
- Rust 1.80 oder höher
Sollten Sie kein Azure-Konto haben, erstellen Sie zunächst ein kostenloses Konto.
Installieren der Clientbibliothek
Die Clientbibliothek ist über Rust als CR8-Paket azure_data_cosmos
verfügbar.
Installieren Sie das CR8-Paket
azure_data_cosmos
mithilfe voncargo install
, falls es noch nicht installiert ist.cargo install azure_data_cosmos
Installieren Sie außerdem das CR8-Paket
azure_identity
(sofern noch nicht installiert).cargo install azure_identity
Objektmodell
name | Beschreibung |
---|---|
CosmosClient |
Dieser Typ ist der primäre Client und wird verwendet, um kontoweite Metadaten oder Datenbanken zu verwalten. |
DatabaseClient |
Dieser Typ stellt eine Datenbank innerhalb des Kontos dar. |
CollectionClient |
Dieser Typ wird in erster Linie verwendet, um Lese-, Update- und Löschvorgänge für den Container oder die im Container gespeicherten Elemente auszuführen. |
Codebeispiele
- Authentifizieren des Clients
- Datenbank abrufen
- Container abrufen
- Erstellen eines Elements
- Abrufen eines Elements
- Abfrageelemente
Der Beispielcode in der Vorlage verwendet eine Datenbank mit dem Namen cosmicworks
und einen Container mit dem Namen products
. Der products
-Container enthält Details wie Name, Kategorie, Menge, eindeutiger Bezeichner und ein Verkaufsflag für jedes Produkt. Der Container verwendet die /category
-Eigenschaft als logischen Partitionsschlüssel.
Authentifizieren des Clients
In diesem Beispiel wird eine neue Instanz von CosmosClient
mithilfe von CosmosClient::new
erstellt und mithilfe einer DefaultAzureCredential
-Instanz authentifiziert.
let credential = DefaultAzureCredential::new()?;
let client = CosmosClient::new(&endpoint, credential, None)?;
Datenbank abrufen
Verwenden Sie client.database
, um die vorhandene Datenbank mit dem Namen cosmicworks
abzurufen.
let database = client.database_client("cosmicworks");
Container abrufen
Rufen Sie den vorhandenen products
-Container mithilfe von database.container
ab.
let container = database.container_client("products");
Erstellen eines Elements
Erstellen Sie einen neuen Typ mit allen Membern, die Sie in JSON serialisieren möchten. In diesem Beispiel weist der Typ einen eindeutigen Bezeichner und Felder für Kategorie, Name, Menge, Preis und den Verkauf auf. Leiten Sie die serde::Serialize
-Eigenschaft für diesen Typ ab, damit sie in JSON serialisiert werden kann.
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
pub struct Item {
pub id: String,
pub category: String,
pub name: String,
pub quantity: i32,
pub price: f64,
pub clearance: bool,
}
Erstellen Sie mithilfe von container.upsert_item
ein Element im Container. Mit dieser Methode wird ein Upsertvorgang für das Element ausgeführt, wodurch es effektiv ersetzt wird (sofern schon vorhanden).
let item = Item {
id: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb".to_string(),
category: "gear-surf-surfboards".to_string(),
name: "Yamba Surfboard".to_string(),
quantity: 12,
price: 850.00,
clearance: false,
};
let partition_key = PartitionKey::from(item.category.clone());
let partition_key = PartitionKey::from(item.category.clone());
container.upsert_item(partition_key, item.clone(), None).await?;
Lesen eines Elements
Führen Sie einen Punktlesevorgang aus, indem Sie sowohl die eindeutigen Bezeichner (id
) als auch die Partitionsschlüsselfelder verwenden. Verwenden Sie container.ReadItem
, um das jeweilige Element effizient abzurufen.
let item_id = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb";
let item_partition_key = "gear-surf-surfboards";
let response = container.read_item(item_partition_key, item_id, None).await?;
let item: Item = response.into_json_body().await?;
Abfrageelemente
Führen Sie mithilfe von container.NewQueryItemsPager
eine Abfrage für mehrere Elemente in einem Container durch. Suchen Sie alle Elemente in einer angegebenen Kategorie mithilfe dieser parametrisierten Abfrage:
SELECT * FROM products p WHERE p.category = @category
let item_partition_key = "gear-surf-surfboards";
let query = Query::from("SELECT * FROM c WHERE c.category = @category")
.with_parameter("@category", item_partition_key)?;
let mut pager = container.query_items::<Item>(query, item_partition_key, None)?;
while let Some(page_response) = pager.next().await {
let page = page_response?.into_body().await?;
for item in page.items {
// Do something
}
}
Untersuchen Ihrer Daten
Verwenden Sie die Visual Studio Code-Erweiterung für Azure Cosmos DB, um Ihre NoSQL-Daten zu untersuchen. Sie können Kerndatenbankvorgänge ausführen, einschließlich, aber nicht beschränkt auf:
- Ausführen von Abfragen mit einem Scrapbook oder dem Abfrage-Editor
- Ändern, Aktualisieren, Erstellen und Löschen von Elementen
- Importieren von Massendaten aus anderen Quellen
- Verwalten von Datenbanken und Containern
Weitere Informationen finden Sie unter Verwenden der Visual Studio Code-Erweiterung zum Untersuchen von Azure Cosmos DB for NoSQL-Daten.
Zugehöriger Inhalt
- Schnellstartanleitung für .NET
- Schnellstart für Node.js
- Schnellstartanleitung für Java
- Schnellstartanleitung für Python
- Schnellstartanleitung für Go