Tutorial: Mengkueri Azure Cosmos DB dengan menggunakan API untuk Tabel

BERLAKU UNTUK: Meja

Azure Cosmos DB for Table mendukung kueri OData dan LINQ terhadap data kunci/nilai (tabel).

Artikel ini membahas tugas-tugas berikut ini:

  • Mengkueri data dengan API untuk Tabel

Kueri dalam artikel ini menggunakan sampel tabel People:

KunciPartisi KunciBaris Email NomorTelepon
Harp Walter Walter@contoso.com 425-555-0101
Smith Ben Ben@contoso.com 425-555-0102
Smith Jeff Jeff@contoso.com 425-555-0104

Untuk detail tentang cara mengkueri dengan menggunakan API untuk Tabel, lihat Mengkueri tabel dan entitas.

Prasyarat

Agar kueri ini berfungsi, Anda harus memiliki akun Azure Cosmos DB dan memiliki data grafik dalam kontainer. Jika Anda tidak memiliki akun atau data, selesaikan Mulai Cepat: Azure Cosmos DB untuk Tabel untuk .NET guna membuat akun dan mengisi database Anda.

Mengkueri di KunciPartisi dan KunciBaris

Karena properti KunciPartisi dan KunciBaris membentuk kunci primer entitas, Anda dapat menggunakan sintaks khusus berikut untuk mengidentifikasi entitas:

Kueri

https://<mytableendpoint>/People(PartitionKey='Harp',RowKey='Walter')

Hasil

KunciPartisi KunciBaris Email NomorTelepon
Harp Walter Walter@contoso.com 425-555-0104

Atau, Anda dapat menentukan properti ini sebagai bagian dari opsi $filter, seperti yang diperlihatkan di bagian berikut. Nama properti utama dan nilai konstanta peka huruf besar/kecil. Properti PartitionKey dan RowKey adalah jenis String.

Mengkueri dengan menggunakan filter OData

Saat Anda membuat string filter, ingatlah aturan ini:

  • Gunakan operator logika yang ditentukan oleh Spesifikasi Protokol OData untuk membandingkan properti dengan nilai. Anda tidak dapat membandingkan properti dengan nilai dinamis. Satu sisi ekspresi harus berupa konstanta.
  • Spasi yang dikodekan URL harus memisahkan nama properti, operator, dan nilai konstanta. Spasi dikodekan URL sebagai %20.
  • Semua bagian string filter peka huruf besar/kecil.
  • Nilai konstanta harus memiliki jenis data yang sama dengan properti agar filter mengembalikan hasil yang valid. Untuk informasi selengkapnya tentang jenis properti yang didukung, lihat Memahami model data layanan Tabel.

Berikut ini contoh kueri yang memperlihatkan cara memfilter menurut properti KunciPartisi dan Email dengan menggunakan OData $filter.

Kueri

https://<mytableapi-endpoint>/People()?$filter=PartitionKey%20eq%20'Smith'%20and%20Email%20eq%20'Ben@contoso.com'

Untuk informasi selengkapnya tentang cara membuat ekspresi filter untuk berbagai jenis data, lihat Mengkueri Tabel dan Entitas.

Hasil

KunciPartisi KunciBaris Email NomorTelepon
Smith Ben Ben@contoso.com 425-555-0102

Kueri pada properti tanggalwaktu tidak mengembalikan data apa pun saat dijalankan di API Azure Cosmos DB untuk Tabel. Sementara penyimpanan Azure Table menyimpan nilai tanggal dengan granularitas waktu tick, API untuk Tabel di Azure Cosmos DB menggunakan _ts properti . Properti _ts ini berada di tingkat granularitas kedua, yang bukan filter OData. Azure Cosmos DB memblokir kueri pada properti tanda waktu. Sebagai solusinya, Anda bisa menentukan properti tanggalwaktu kustom atau jenis data panjang dan mengatur nilai tanggal dari klien.

Mengkueri dengan menggunakan LINQ

Anda juga dapat mengkueri dengan menggunakan LINQ, yang diterjemahkan ke ekspresi kueri OData terkait. Berikut ini contoh cara menyusun kueri dengan menggunakan .NET SDK:

IQueryable<CustomerEntity> linqQuery = table.CreateQuery<CustomerEntity>()
            .Where(x => x.PartitionKey == "4")
            .Select(x => new CustomerEntity() { PartitionKey = x.PartitionKey, RowKey = x.RowKey, Email = x.Email });

Langkah berikutnya

Anda sekarang dapat melanjutkan ke tutorial berikutnya untuk mempelajari cara mendistribusikan data Anda secara global.