Bagikan melalui


Mulai cepat: Menggunakan Azure Cosmos DB untuk NoSQL dengan Azure SDK untuk Rust

Dalam mulai cepat ini, Anda menyebarkan aplikasi Azure Cosmos DB for Table dasar menggunakan Azure SDK untuk Rust. Azure Cosmos DB for Table adalah penyimpanan data tanpa skema yang memungkinkan aplikasi menyimpan data tabel terstruktur di cloud. Anda mempelajari cara membuat tabel, baris, dan melakukan tugas dasar dalam sumber daya Azure Cosmos DB Anda menggunakan Azure SDK for Rust.

Penting

Rust SDK untuk Azure Cosmos DB saat ini dalam pratinjau publik. Pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan kami tidak merekomendasikannya untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas.

Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

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

Prasyarat

  • Desktop Docker
  • Karat 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 install azure_data_cosmos
    
  2. Selain itu, instal peti azure_identity jika belum diinstal.

    cargo install azure_identity
    

Model objek

Nama Deskripsi
CosmosClient Jenis ini adalah klien utama dan digunakan untuk mengelola metadata atau database di seluruh akun.
DatabaseClient Jenis ini mewakili database dalam akun.
CollectionClient 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 menggunakan CosmosClientCosmosClient::new dan mengautentikasi menggunakan DefaultAzureCredential instans.

let credential = DefaultAzureCredential::new()?;

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

Mendapatkan database

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

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

Mendapatkan kontainer

Ambil kontainer yang products ada menggunakan database.container.

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

Membuat item

Buat jenis baru dengan semua anggota yang ingin Anda serialkan ke JSON. Dalam contoh ini, jenis memiliki pengidentifikasi unik, dan bidang 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 "upsert" item secara efektif mengganti item jika 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?;

Baca 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 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 data Azure Cosmos DB for NoSQL.

Langkah selanjutnya