Delen via


Quickstart: Azure Cosmos DB for NoSQL gebruiken met Azure SDK for Rust

In deze quickstart implementeert u een eenvoudige Azure Cosmos DB for NoSQL-toepassing met behulp van de Azure SDK voor Rust. Azure Cosmos DB for NoSQL is een schemaloos gegevensarchief waarmee toepassingen ongestructureerde gegevens in de cloud kunnen opslaan. Voer query's uit op gegevens in uw containers en voer algemene bewerkingen uit op afzonderlijke items met behulp van de Azure SDK voor Rust.

Belangrijk

De Rust SDK voor Azure Cosmos DB is momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Bepaalde functies worden niet ondersteund of hebben beperkte ondersteuning met beperkte mogelijkheden.

Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.

API-referentiedocumentatie | Bibliotheek broncode | Crate (Rust) | Azure Developer CLI

Vereiste voorwaarden

  • Docker Desktop
  • Rust 1.80 of hoger

Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.

De clientbibliotheek installeren

De clientbibliotheek is beschikbaar via Rust, als azure_data_cosmos crate.

  1. Als dit nog niet is geïnstalleerd, installeer dan de azure_data_cosmos creatie met behulp van cargo install.

    cargo add azure_data_cosmos
    
  2. Installeer ook de azure_identity krat als deze nog niet is geïnstalleerd.

    cargo add azure_identity
    

Bibliotheken importeren

Importeer de typen DefaultAzureCredential, CosmosClient, PartitionKey en Query in uw toepassingscode.

use azure_data_cosmos::{CosmosClient, PartitionKey, Query};
use azure_identity::DefaultAzureCredential;

Objectmodel

Naam Beschrijving
CosmosClient Dit type is de primaire client en wordt gebruikt voor het beheren van metagegevens of databases voor het hele account.
DatabaseClient Dit type vertegenwoordigt een database binnen het account.
ContainerClient Dit type wordt voornamelijk gebruikt om lees-, update- en verwijderbewerkingen uit te voeren op de container of de items die zijn opgeslagen in de container.

Codevoorbeelden

De voorbeeldcode in de sjabloon maakt gebruik van een database met de naam cosmicworks en container.products De products container bevat details zoals naam, categorie, hoeveelheid, een unieke id en een verkoopvlag voor elk product. De container gebruikt de /category eigenschap als een logische partitiesleutel.

De client verifiëren

In dit voorbeeld wordt een nieuw exemplaar van CosmosClient gemaakt met behulp van CosmosClient::new en geverifieerd met een DefaultAzureCredential exemplaar.

let credential = DefaultAzureCredential::new()?;

let client = CosmosClient::new(&endpoint, credential, None)?;

Een database ophalen

Gebruik client.database deze om de bestaande database met de naam cosmicworksop te halen.

let database = client.database_client("cosmicworks");

Een container ophalen

Haal de bestaande products container op met behulp van database.container.

let container = database.container_client("products");

Een item maken

Bouw een nieuw type met alle leden die u in JSON wilt serialiseren. In dit voorbeeld heeft het type een unieke id en velden voor categorie, naam, hoeveelheid, prijs en verkoop. serde::Serialize De eigenschap van dit type afleiden, zodat deze kan worden geserialiseerd naar JSON.

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,
}

Maak een item in de container met behulp van container.upsert_item. Met deze methode wordt het item "geüpsert," wat betekent dat het wordt toegevoegd of bijgewerkt als het al bestaat.

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?;

Een item lezen

Voer een puntleesbewerking uit met behulp van zowel de unieke id (id) als de partitiesleutelvelden. Gebruik container.ReadItem dit om het specifieke item efficiënt op te halen.

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?;

Zoekitems

Voer een query uit op meerdere items in een container met behulp van container.NewQueryItemsPager. Zoek alle items in een opgegeven categorie met behulp van deze geparameteriseerde query:

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
    }

}

Uw gegevens verkennen

Gebruik de Visual Studio Code-extensie voor Azure Cosmos DB om uw NoSQL-gegevens te verkennen. U kunt kerndatabasebewerkingen uitvoeren, waaronder, maar niet beperkt tot:

  • Query's uitvoeren met behulp van een scrapbook of de query-editor
  • Items wijzigen, bijwerken, maken en verwijderen
  • Bulkgegevens importeren uit andere bronnen
  • Databases en containers beheren

Zie De Visual Studio Code-extensie gebruiken om Azure Cosmos DB for NoSQL-gegevens te verkennen voor meer informatie.

Volgende stap