Szybki start: używanie usługi Azure Cosmos DB dla noSQL z zestawem Azure SDK dla języka Rust
W tym przewodniku Szybki start wdrożysz podstawową aplikację usługi Azure Cosmos DB dla tabel przy użyciu zestawu Azure SDK for Rust. Usługa Azure Cosmos DB dla tabel to bez schematu magazyn danych, który umożliwia aplikacjom przechowywanie danych ze strukturą tabeli w chmurze. Dowiesz się, jak tworzyć tabele, wiersze i wykonywać podstawowe zadania w ramach zasobu usługi Azure Cosmos DB przy użyciu zestawu Azure SDK for Rust.
Ważne
Zestaw Rust SDK dla usługi Azure Cosmos DB jest obecnie w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone.
Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
Dokumentacja interfejsu API Dokumentacja | biblioteki kodu | źródłowego Crate (Rust) | Interfejs wiersza polecenia dla deweloperów platformy Azure
Wymagania wstępne
- Docker Desktop
- Rust 1.80 lub nowszy
Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Instalowanie biblioteki klienta
Biblioteka kliencka jest dostępna za pośrednictwem rust, ponieważ skrzynia azure_data_cosmos
.
Jeśli jeszcze nie zainstalowano, zainstaluj
azure_data_cosmos
polecenie create przy użyciu poleceniacargo install
.cargo install azure_data_cosmos
Ponadto zainstaluj skrzynię
azure_identity
, jeśli jeszcze nie została zainstalowana.cargo install azure_identity
Model obiektów
Nazwa/nazwisko | opis |
---|---|
CosmosClient |
Ten typ jest podstawowym klientem i służy do zarządzania metadanymi lub bazami danych w całym koncie. |
DatabaseClient |
Ten typ reprezentuje bazę danych w ramach konta. |
CollectionClient |
Ten typ jest używany głównie do wykonywania operacji odczytu, aktualizacji i usuwania w kontenerze lub elementach przechowywanych w kontenerze. |
Przykłady kodu
- Uwierzytelnianie użytkownika
- Pobieranie bazy danych
- Pobieranie kontenera
- Tworzenie elementu
- Pobieranie elementu
- Elementy kwerend
Przykładowy kod w szablonie używa bazy danych o nazwie i kontenera o nazwie cosmicworks
products
. Kontener products
zawiera szczegóły, takie jak nazwa, kategoria, ilość, unikatowy identyfikator i flaga sprzedaży dla każdego produktu. Kontener używa /category
właściwości jako klucza partycji logicznej.
Uwierzytelnianie użytkownika
Ten przykład tworzy nowe wystąpienie CosmosClient
użycia i CosmosClient::new
uwierzytelnia się przy użyciu DefaultAzureCredential
wystąpienia.
let credential = DefaultAzureCredential::new()?;
let client = CosmosClient::new(&endpoint, credential, None)?;
Pobieranie bazy danych
Użyj client.database
polecenia , aby pobrać istniejącą bazę danych o nazwie cosmicworks
.
let database = client.database_client("cosmicworks");
Pobieranie kontenera
Pobierz istniejący products
kontener przy użyciu polecenia database.container
.
let container = database.container_client("products");
Tworzenie elementu
Skompiluj nowy typ ze wszystkimi elementami członkowskimi, które chcesz serializować w formacie JSON. W tym przykładzie typ ma unikatowy identyfikator i pola dla kategorii, nazwy, ilości, ceny i sprzedaży. Utwórz cechę serde::Serialize
tego typu, aby można było ją serializować w formacie 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,
}
Utwórz element w kontenerze przy użyciu polecenia container.upsert_item
. Ta metoda "upserts" element skutecznie zastępuje element, jeśli już istnieje.
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?;
Odczytywanie elementu
Wykonaj operację odczytu punktu przy użyciu pól unikatowego identyfikatora (id
) i klucza partycji. Służy container.ReadItem
do wydajnego pobierania określonego elementu.
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?;
Elementy kwerend
Wykonaj zapytanie dotyczące wielu elementów w kontenerze przy użyciu polecenia container.NewQueryItemsPager
. Znajdź wszystkie elementy w określonej kategorii przy użyciu tego sparametryzowanego zapytania:
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
}
}
Eksplorowanie danych
Użyj rozszerzenia programu Visual Studio Code dla usługi Azure Cosmos DB, aby eksplorować dane NoSQL. Podstawowe operacje bazy danych, w tym między innymi:
- Wykonywanie zapytań przy użyciu elementu scrapbook lub edytora zapytań
- Modyfikowanie, aktualizowanie, tworzenie i usuwanie elementów
- Importowanie danych zbiorczych z innych źródeł
- Zarządzanie bazami danych i kontenerami
Aby uzyskać więcej informacji, zobacz How-to use Visual Studio Code extension to explore Azure Cosmos DB for NoSQL data (Jak używać rozszerzenia programu Visual Studio Code do eksplorowania danych usługi Azure Cosmos DB for NoSQL).
Powiązana zawartość
- Przewodnik Szybki start dla platformy .NET
- przewodnik Szybki start dotyczący Node.js
- Przewodnik Szybki start dla języka Java
- Przewodnik Szybki start dla języka Python
- Szybki start dla języka Go