Udostępnij za pośrednictwem


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 .

  1. Jeśli jeszcze nie zainstalowano, zainstaluj azure_data_cosmos polecenie create przy użyciu polecenia cargo install.

    cargo install azure_data_cosmos
    
  2. 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

Przykładowy kod w szablonie używa bazy danych o nazwie i kontenera o nazwie cosmicworksproducts. 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).

Następny krok