Sdílet prostřednictvím


Rychlý start: Použití služby Azure Cosmos DB for NoSQL se sadou Azure SDK pro Rust

V tomto rychlém startu nasadíte základní aplikaci Azure Cosmos DB for Table pomocí sady Azure SDK pro Rust. Azure Cosmos DB for Table je úložiště dat bez schématu, které umožňuje aplikacím ukládat strukturovaná data tabulek v cloudu. Naučíte se vytvářet tabulky, řádky a provádět základní úlohy v rámci prostředku služby Azure Cosmos DB pomocí sady Azure SDK for Rust.

Důležité

Sada Rust SDK pro Azure Cosmos DB je aktuálně ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti.

Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Referenční dokumentace k | rozhraní API – Knihovna zdrojového kódu | Crate (Rust) | Azure Developer CLI

Požadavky

  • Docker Desktop
  • Rust 1.80 nebo novější

Pokud nemáte účet Azure, vytvořte si bezplatný účet před tím, než začnete.

Instalace klientské knihovny

Klientská knihovna je k dispozici prostřednictvím Rustu azure_data_cosmos jako bedna.

  1. Pokud ještě není nainstalovaný, nainstalujte vytvoření azure_data_cosmos pomocí cargo install.

    cargo install azure_data_cosmos
    
  2. Nainstalujte azure_identity také bednu, pokud ještě není nainstalovaná.

    cargo install azure_identity
    

Objektový model

Název Popis
CosmosClient Tento typ je primární klient a slouží ke správě metadat nebo databází pro celý účet.
DatabaseClient Tento typ představuje databázi v rámci účtu.
CollectionClient Tento typ se primárně používá k provádění operací čtení, aktualizace a odstranění v kontejneru nebo v položkách uložených v kontejneru.

Příklady kódu

Vzorový kód v šabloně používá databázi pojmenovanou cosmicworks a kontejner s názvem products. Kontejner products obsahuje podrobnosti, jako je název, kategorie, množství, jedinečný identifikátor a příznak prodeje pro každý produkt. Kontejner používá /category vlastnost jako klíč logického oddílu.

Ověření klienta

Tato ukázka vytvoří novou instanci CosmosClient použití CosmosClient::new a ověření pomocí DefaultAzureCredential instance.

let credential = DefaultAzureCredential::new()?;

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

Získání databáze

Slouží client.database k načtení existující databáze s názvem cosmicworks.

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

Získání kontejneru

Načtení existujícího products kontejneru pomocí database.container.

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

Vytvoření položky

Sestavte nový typ se všemi členy, které chcete serializovat do FORMÁTU JSON. V tomto příkladu má typ jedinečný identifikátor a pole pro kategorii, název, množství, cenu a prodej. serde::Serialize Odvozujte vlastnost pro tento typ, aby ji bylo možné serializovat do formátu 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,
}

Vytvoření položky v kontejneru pomocí container.upsert_item. Tato metoda "upserts" položku účinně nahradí položku, pokud již existuje.

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

Čtení položky

Proveďte operaci čtení bodu pomocí polí jedinečného identifikátoru (id) i klíče oddílu. Slouží container.ReadItem k efektivnímu načtení konkrétní položky.

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

Dotazování položek

Proveďte dotaz na více položek v kontejneru pomocí container.NewQueryItemsPager. Pomocí tohoto parametrizovaného dotazu vyhledejte všechny položky v zadané kategorii:

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
    }

}

Prozkoumání dat

K prozkoumání dat NoSQL použijte rozšíření Visual Studio Code pro Azure Cosmos DB. Můžete provádět základní databázové operace, mezi které patří mimo jiné:

  • Provádění dotazů pomocí knihy výstřižků nebo editoru dotazů
  • Úpravy, aktualizace, vytváření a odstraňování položek
  • Import hromadných dat z jiných zdrojů
  • Správa databází a kontejnerů

Další informace najdete v tématu Použití rozšíření Visual Studio Code k prozkoumání dat Azure Cosmos DB for NoSQL.

Další krok