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
.
Ha még nincs telepítve, telepítse a létrehozást a
azure_data_cosmos
következővelcargo install
: .cargo install azure_data_cosmos
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
- Az ügyfél hitelesítése
- Adatbázis lekérése
- Tároló lekérése
- Elem létrehozása
- Elem lekérése
- Lekérdezési elemek
A sablon mintakódja egy névvel ellátott cosmicworks
adatbázist és egy nevű tárolót products
haszná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 cosmicworks
adatbá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.
Kapcsolódó tartalom
- .NET – rövid útmutató
- Node.js rövid útmutató
- Java – gyorsútmutató
- Python – gyorsútmutató
- Rövid útmutató