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.
Pokud ještě není nainstalovaný, nainstalujte vytvoření
azure_data_cosmos
pomocícargo install
.cargo install azure_data_cosmos
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
- Ověření klienta
- Získání databáze
- Získání kontejneru
- Vytvoření položky
- Získání položky
- Dotazování položek
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.
Související obsah
- Rychlý start k .NET
- Rychlý start pro Node.js
- Rychlý start pro Javu
- Rychlý start pro Python
- Rychlý start pro Go