Megosztás a következőn keresztül:


Rövid útmutató: Az Azure Cosmos DB for NoSQL használata a Rusthoz készült Azure SDK-val

Ebben a rövid útmutatóban üzembe helyez egy alapszintű Azure Cosmos DB for Table alkalmazást az Azure SDK for Rust használatával. Az Azure Cosmos DB for Table egy séma nélküli adattár, amely lehetővé teszi, hogy az alkalmazások strukturált táblaadatokat tároljanak a felhőben. Megtudhatja, hogyan hozhat létre táblákat, sorokat, és hogyan hajthat végre alapvető feladatokat az Azure Cosmos DB-erőforrásban az Azure SDK for Rust használatával.

Fontos

Az Azure Cosmos DB-hez készült Rust SDK jelenleg nyilvános előzetes verzióban érhető el. Ez az előzetes verzió szolgáltatásszint-szerződés nélkül érhető el, és éles számítási feladatokhoz nem javasoljuk. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik.

További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

API-referenciadokumentáció Kódtár forráskódja | – Crate (Rust) | Azure Developer CLI |

Előfeltételek

  • Docker Desktop
  • Rust 1.80 vagy újabb

Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.

Telepítse az ügyfélkódtárat

Az ügyfélkódtár a Ruston keresztül érhető el ládaként azure_data_cosmos .

  1. Ha még nincs telepítve, telepítse a létrehozást a azure_data_cosmos következővel cargo install: .

    cargo install azure_data_cosmos
    
  2. Emellett telepítse a azure_identity ládát, ha még nincs telepítve.

    cargo install azure_identity
    

Objektummodell

Név Leírás
CosmosClient Ez a típus az elsődleges ügyfél, és a fiókszintű metaadatok vagy adatbázisok kezelésére szolgál.
DatabaseClient Ez a típus a fiókon belüli adatbázist jelöli.
CollectionClient Ez a típus elsősorban olvasási, frissítési és törlési műveletek végrehajtására szolgál a tárolón vagy a tárolóban tárolt elemeken.

Kódpéldák

A sablon mintakódja egy névvel ellátott cosmicworks adatbázist és egy nevű tárolót productshasznál. A products tároló olyan részleteket tartalmaz, mint a név, a kategória, a mennyiség, az egyedi azonosító és az egyes termékekhez tartozó értékesítési jelző. A tároló a tulajdonságot /category logikai partíciókulcsként használja.

Az ügyfél hitelesítése

Ez a minta létrehoz egy új példányt a CosmosClient használathoz CosmosClient::new , és egy DefaultAzureCredential példány használatával hitelesíti azt.

let credential = DefaultAzureCredential::new()?;

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

Adatbázis lekérése

A meglévő, elnevezett cosmicworksadatbázis lekérésére használhatóclient.database.

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

Tároló lekérése

A meglévő products tároló lekérése a következővel database.container: .

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

Elem létrehozása

Hozzon létre egy új típust a JSON-ba szerializálni kívánt összes taggal. Ebben a példában a típus egyedi azonosítóval rendelkezik, és a kategória, a név, a mennyiség, az ár és az értékesítés mezői. Ebből a típusból származtathatja a serde::Serialize tulajdonságot, hogy szerializálható legyen JSON-ra.

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

Hozzon létre egy elemet a tárolóban a következő használatával container.upsert_item: . Ez a metódus "upserts" az elemet hatékonyan cserélje le, ha már létezik.

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

Elem olvasása

Pontolvasási műveletet hajt végre az egyedi azonosító (id) és a partíciókulcs mezőinek használatával. Az adott elem hatékony lekérésére használható container.ReadItem .

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

Lekérdezési elemek

Lekérdezés végrehajtása egy tároló több eleme felett a következő használatával container.NewQueryItemsPager: . Egy adott kategórián belüli összes elem megkeresése ezzel a paraméteres lekérdezéssel:

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
    }

}

Az adatok felfedezése

A NoSQL-adatok megismeréséhez használja az Azure Cosmos DB Visual Studio Code-bővítményét. Alapvető adatbázisműveleteket hajthat végre, beleértve, de nem kizárólagosan az alábbiakat:

  • Lekérdezések végrehajtása egy album vagy a lekérdezésszerkesztő használatával
  • Elemek módosítása, frissítése, létrehozása és törlése
  • Tömeges adatok importálása más forrásokból
  • Adatbázisok és tárolók kezelése

További információ: A Visual Studio Code bővítmény használata az Azure Cosmos DB for NoSQL-adatok megismeréséhez.

Következő lépés