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 Table-toepassing met behulp van de Azure SDK voor Rust. Azure Cosmos DB for Table is een schemaloos gegevensarchief waarmee toepassingen gestructureerde tabelgegevens in de cloud kunnen opslaan. U leert hoe u tabellen, rijen maakt en basistaken uitvoert in uw Azure Cosmos DB-resource 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. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt.

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

API-referentiedocumentatiebibliotheek | broncode | Crate (Rust) | Azure Developer CLI

Vereisten

  • 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 krat.

  1. Als dit nog niet is geïnstalleerd, installeert u het azure_data_cosmos maken met behulp van cargo install.

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

    cargo install azure_identity
    

Objectmodel

Name 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.
CollectionClient 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 gemaakt van het gebruik CosmosClient::new en de verificatie met behulp van CosmosClient 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 effectief vervangen 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?;

Query-items

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