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 NoSQL pomocí sady Azure SDK pro Rust. Azure Cosmos DB for NoSQL je úložiště dat bez schématu, které umožňuje aplikacím ukládat nestrukturovaná data v cloudu. Dotazujte se na data v kontejnerech a proveďte běžné operace s jednotlivými položkami 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 nejsou podporované nebo mají omezenou podporu s omezenými možnostmi.

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

Referenční dokumentace 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 v Rustu azure_data_cosmos jako crate.

  1. Pokud ještě není nainstalován, nainstalujte azure_data_cosmos pomocí cargo install.

    cargo add azure_data_cosmos
    
  2. Také nainstalujte azure_identity balíček, pokud ještě není nainstalovaný.

    cargo add azure_identity
    

Import knihoven

Naimportujte typy DefaultAzureCredential, CosmosClient, PartitionKey a Query do kódu vaší aplikace.

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

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.
ContainerClient 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 jako logický klíč oddílu.

Ověření klienta

Tato ukázka vytvoří novou instanci CosmosClient pomocí CosmosClient::new a ověří ji pomocí instance DefaultAzureCredential.

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 vloží nebo aktualizuje položku tak, že položku účinně nahradí, 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?;

Přečtěte si položku

Proveďte bodovou operaci čtení s využitím jedinečného identifikátoru (id) i klíče oddílu. Použijte 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í poznámkového bloku 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 o použití rozšíření Visual Studio Code k prozkoumání Azure Cosmos DB pro data NoSQL najdete v tématu Jak prozkoumávat NoSQL data v Azure Cosmos DB pomocí rozšíření pro Visual Studio Code.

Další krok