Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ebben a rövid útmutatóban üzembe helyez egy alapszintű Azure Cosmos DB for NoSQL-alkalmazást az Azure SDK for Rust használatával. Az Azure Cosmos DB for NoSQL egy séma nélküli adattár, amellyel az alkalmazások strukturálatlan adatokat tárolnak a felhőben. Adatokat kérdezhet le a tárolókban, és az Azure SDK for Rust használatával általános műveleteket hajt végre az egyes elemeken.
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. Bizonyos funkciók nem támogatottak, vagy korlátozott funkcionalitású támogatásuk van.
További információkért lásd: Microsoft Azure Previews Kiegészítő Felhasználási Feltételek.
API-referenciadokumentáció | Kódtár forráskód | Crate (Rust) | Azure Developer CLI
Előfeltételek
- Docker Desktop
- Rust 1.80 vagy újabb
Ha nem rendelkezik Azure-fiókkal, a kezdés előtt hozzon létre egy ingyenes fiókot .
Telepítse a klienskönyvtárat
A klienskönyvtár a Ruston keresztül érhető el, mint azure_data_cosmos láda.
Ha még nincs telepítve, telepítse a
azure_data_cosmoslétrehozásával acargo install.cargo add azure_data_cosmosEzenkívül telepítse a
azure_identityládát, ha még nincs telepítve.cargo add azure_identity
Könyvtárak importálása
Importálja a DefaultAzureCredential, CosmosClient, PartitionKeyés Query típusokat az alkalmazáskódba.
use azure_data_cosmos::{CosmosClient, PartitionKey, Query};
use azure_identity::DefaultAzureCredential;
Objektummodell
| Név | Description |
|---|---|
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. |
ContainerClient |
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. |
Példakódok
- Az ügyfél hitelesítése
- Adatbázis lekérése
- Szerez egy tárolót
- 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 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 CosmosClient példányt CosmosClient::new használatával, és hitelesít egy DefaultAzureCredential példány segítségével.
let credential = DefaultAzureCredential::new()?;
let client = CosmosClient::new(&endpoint, credential, None)?;
Adatbázis lekérése
A client.database paranccsal kérheti le a meglévő, cosmicworks nevű adatbázist.
let database = client.database_client("cosmicworks");
Szerezz egy tárolót
A meglévő products tárolót a database.container használatával kérje le.
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 módszer "upserteli" az elemet, vagyis hatékonyan kicseréli, ha az 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?;
Objektum 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és elemei
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
}
}
Fedezd fel az adataidat
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ó
- Gyors kezdés