Bagikan melalui


Panduan Cepat: Gunakan Azure Cosmos DB untuk NoSQL dengan Azure SDK untuk Rust

Dalam panduan memulai cepat ini, Anda mengimplementasikan Azure Cosmos DB dasar untuk aplikasi NoSQL menggunakan Azure SDK untuk Rust. Azure Cosmos DB for NoSQL adalah penyimpanan data tanpa skema yang memungkinkan aplikasi menyimpan data yang tidak terstruktur di cloud. Kueri data dalam kontainer Anda dan lakukan operasi umum pada item individual menggunakan Azure SDK untuk Rust.

Penting

Rust SDK untuk Azure Cosmos DB saat ini dalam pratinjau publik. Pratinjau ini disediakan tanpa kesepakatan tingkat layanan, dan kami tidak merekomendasikannya untuk penggunaan dalam lingkungan produksi. Fitur tertentu tidak didukung atau memiliki dukungan terbatas dengan kemampuan yang dibatasi.

Untuk informasi lebih lanjut, lihat Supplemental Terms of Use for Microsoft Azure Previews.

Dokumentasi referensi API | Kode sumber pustaka | Crate (Rust) | Azure Developer CLI

Prasyarat

  • ** Docker Desktop
  • Rust 1.80 atau yang lebih baru

Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.

Memasang pustaka klien

Pustaka klien tersedia melalui Rust, sebagai peti azure_data_cosmos .

  1. Jika belum diinstal, instal buat azure_data_cosmos menggunakan cargo install.

    cargo add azure_data_cosmos
    
  2. Selain itu, pasang crate azure_identity jika belum dipasang.

    cargo add azure_identity
    

Mengimpor pustaka

Impor DefaultAzureCredential, CosmosClient, PartitionKey, dan Query ke dalam jenis kode aplikasi Anda.

use azure_data_cosmos::{CosmosClient, PartitionKey, Query};
use azure_identity::DefaultAzureCredential;

Model objek

Nama Description
CosmosClient Jenis ini adalah klien utama dan digunakan untuk mengelola metadata atau database di seluruh akun.
DatabaseClient Jenis ini mewakili database dalam akun.
ContainerClient Jenis ini terutama digunakan untuk melakukan operasi baca, perbarui, dan hapus pada kontainer atau item yang disimpan dalam kontainer.

Contoh kode

Kode sampel dalam templat menggunakan database bernama cosmicworks dan kontainer bernama products. Kontainer products berisi detail seperti nama, kategori, kuantitas, pengidentifikasi unik, dan bendera penjualan untuk setiap produk. Kontainer menggunakan /category properti sebagai kunci partisi logis.

Mengautentikasi klien

Sampel ini membuat instans baru dari CosmosClient dengan menggunakan CosmosClient::new dan mengautentikasi melalui sebuah instans DefaultAzureCredential.

let credential = DefaultAzureCredential::new()?;

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

Akses database

Gunakan client.database untuk mengambil database yang sudah ada bernama cosmicworks.

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

Dapatkan kontainer

Ambil kontainer products yang sudah ada menggunakan database.container.

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

Membuat sebuah item

Buat jenis baru dengan semua anggota yang ingin Anda serialkan ke JSON. Dalam contoh ini, tipe memiliki pengidentifikasi unik, dan kolom untuk kategori, nama, kuantitas, harga, dan penjualan. Dapatkan serde::Serialize sifat pada jenis ini, sehingga dapat diserialisasikan ke 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,
}

Buat item dalam kontainer menggunakan container.upsert_item. Metode ini secara efektif melakukan "upsert" pada item, menggantinya jika item tersebut sudah ada.

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

Bacalah sebuah item

Lakukan operasi baca titik dengan menggunakan bidang pengidentifikasi unik (id) dan kunci partisi. Gunakan container.ReadItem untuk mengambil item tertentu secara efisien.

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

Buat kueri item

Lakukan kueri melalui beberapa item dalam kontainer menggunakan container.NewQueryItemsPager. Temukan semua item dalam kategori tertentu menggunakan kueri berparameter ini:

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
    }

}

Jelajahi sampel Anda

Gunakan ekstensi Visual Studio Code untuk Azure Cosmos DB untuk menjelajahi data NoSQL Anda. Anda dapat melakukan operasi database inti termasuk, tetapi tidak terbatas pada:

  • Melakukan kueri menggunakan fitur scrapbook atau editor kueri
  • Memodifikasi, memperbarui, membuat, dan menghapus item
  • Mengimpor data massal dari sumber lain
  • Mengelola database dan kontainer

Untuk informasi selengkapnya, lihat Cara menggunakan ekstensi Visual Studio Code untuk menjelajahi Azure Cosmos DB untuk data NoSQL.

Langkah selanjutnya