Entitas Kueri
Operasi meminta Query Entities
entitas dalam tabel dan menyertakan $filter
opsi dan $select
.
Minta
Untuk permintaan yang menggunakan $select
opsi kueri, Anda harus menggunakan versi 2011-08-18 atau yang lebih baru. Selain itu, DataServiceVersion
header dan MaxDataServiceVersion
harus diatur ke 2.0
.
Untuk menggunakan proyeksi, Anda harus membuat permintaan dengan menggunakan versi 2013-08-15 atau yang lebih baru. Header DataServiceVersion
dan MaxDataServiceVersion
harus diatur ke 3.0
. Untuk informasi selengkapnya, lihat Mengatur header versi layanan data OData.
Anda dapat membuat Query Entities
permintaan sebagai berikut. Kami merekomendasikan HTTPS. Ganti myaccount dengan nama akun penyimpanan Anda, dan ganti mytable dengan nama tabel Anda.
Metode | Meminta URI | Versi HTTP |
---|---|---|
GET |
https://myaccount.table.core.windows.net/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names> https://myaccount.table.core.windows.net/mytable()?$filter=<query-expression>&$select=<comma-separated-property-names> |
HTTP/1.1 |
Alamat entitas yang diatur untuk dikueri mungkin mengambil berbagai formulir pada URI permintaan. Untuk informasi selengkapnya, lihat Tabel dan entitas kueri.
URI layanan penyimpanan yang ditimulasi
Saat Anda membuat permintaan terhadap layanan penyimpanan yang ditimulasi, tentukan nama host emulator dan port layanan tabel sebagai 127.0.0.1:10002
. Ikuti informasi tersebut dengan nama akun penyimpanan yang ditimulasi.
Metode | Meminta URI | Versi HTTP |
---|---|---|
GET |
http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names> http://127.0.0.1:10002/devstoreaccount1/mytable()?$filter=<query-expression>?$select=<comma-separated-property-names> |
HTTP/1.1 |
Layanan Table di emulator penyimpanan berbeda dari Azure Table Storage dalam beberapa cara. Untuk informasi selengkapnya, lihat Perbedaan antara emulator penyimpanan dan layanan Azure Storage.
Parameter URI
Operasi ini Query Entities
mendukung opsi kueri yang ditentukan spesifikasi protokol OData .
Header permintaan
Tabel berikut ini menjelaskan header permintaan yang diperlukan dan opsional:
Meminta kop | Deskripsi |
---|---|
Authorization |
Wajib diisi. Menentukan skema otorisasi, nama akun, dan tanda tangan. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage. |
Date atau x-ms-date |
Wajib diisi. Menentukan Waktu Universal Terkoordinasi (UTC) untuk permintaan tersebut. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage. |
x-ms-version |
Pilihan. Menentukan versi operasi yang akan digunakan untuk permintaan ini. Untuk informasi selengkapnya, lihat Penerapan versi untuk layanan Azure Storage. |
Accept |
Opsional. Menentukan jenis konten yang diterima dari payload respons. Potensi nilai: - application/atom+xml (hanya versi sebelum 2015-12-11)- application/json;odata=nometadata - application/json;odata=minimalmetadata - application/json;odata=fullmetadata Untuk informasi selengkapnya, lihat Format payload untuk operasi Table Storage. |
x-ms-client-request-id |
Pilihan. Menyediakan nilai buram yang dihasilkan klien dengan batas karakter 1 kibibyte (KiB) yang dicatat dalam log saat pengelogan dikonfigurasi. Kami sangat menyarankan Anda menggunakan header ini untuk menghubungkan aktivitas sisi klien dengan permintaan yang diterima server. |
Isi permintaan
Tidak ada.
Contoh permintaan
Request Syntax:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince HTTP/1.1
Request Headers:
x-ms-version: 2015-12-11
x-ms-date: Mon, 27 Jun 2016 15:25:14 GMT
Authorization: SharedKeyLite myaccount:<some key>
Accept: application/json;odata=nometadata
Accept-Charset: UTF-8
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Respons
Respons mencakup kode status HTTP, sekumpulan header respons, dan isi respons.
Kode status
Operasi yang berhasil mengembalikan kode status 200 (OK).
Untuk informasi tentang kode status, lihat Kode status dan kesalahan serta kode kesalahan Table Storage.
Header respons
Respons untuk operasi ini mencakup header berikut. Respons mungkin juga menyertakan header HTTP standar tambahan. Semua header standar sesuai dengan spesifikasi protokol HTTP/1.1.
Header respons | Deskripsi |
---|---|
x-ms-continuation-NextPartitionKey x-ms-continuation-NextRowKey |
Menunjukkan bahwa: - Jumlah entitas yang akan dikembalikan melebihi 1.000. - Interval batas waktu server terlampaui. - Batas server tercapai, jika kueri mengembalikan data yang tersebar di beberapa server. Untuk informasi selengkapnya tentang menggunakan token kelanjutan, lihat Batas waktu kueri dan penomoran halaman. |
x-ms-request-id |
Secara unik mengidentifikasi permintaan yang dibuat. Anda dapat menggunakannya untuk memecahkan masalah permintaan. Untuk informasi selengkapnya, lihat Memecahkan masalah operasi API. |
x-ms-version |
Menunjukkan versi Table Storage yang digunakan untuk menjalankan permintaan. Header ini dikembalikan untuk permintaan yang dibuat terhadap versi 2009-09-19 dan yang lebih baru. |
Date |
Nilai tanggal/waktu UTC yang menunjukkan waktu di mana layanan mengirim respons. |
Content-Type |
Menunjukkan jenis konten payload. Nilai header ini tergantung pada nilai Accept header permintaan. Potensi nilai:- application/atom+xml (hanya versi sebelum 2015-12-11)- application/json;odata=nometadata - application/json;odata=minimalmetadata - application/json;odata=fullmetadata Untuk informasi selengkapnya tentang jenis konten yang valid, lihat Format payload untuk operasi Table Storage. |
x-ms-client-request-id |
Dapat digunakan untuk memecahkan masalah permintaan dan respons yang sesuai. Nilai header ini sama dengan nilai x-ms-client-request-id header, jika ada dalam permintaan dan nilainya paling banyak 1.024 karakter ASCII yang terlihat.
x-ms-client-request-id Jika header tidak ada dalam permintaan, header ini tidak akan ada dalam respons. |
Respons sampel
Response Status:
HTTP/1.1 200 OK
Response Headers:
Content-Type: application/json
x-ms-request-id: 87f178c0-44fe-4123-a4c1-96c8fa6d9654
Date: Mon, 27 Jun 2016 15:25:14 GMT
x-ms-version: 2015-12-11
Connection: close
Isi Respons
Operasi mengembalikan Query Entities
daftar entitas dalam tabel sebagai kumpulan entitas OData. Daftar entitas dalam format JSON atau umpan Atom, tergantung pada Accept
header permintaan.
Catatan
Kami merekomendasikan JSON sebagai format payload. Ini adalah satu-satunya format yang didukung untuk versi 2015-12-11 dan yang lebih baru.
JSON (versi 2013-08-15 dan yang lebih baru)
Berikut adalah contoh permintaan URI untuk Query Entities
operasi pada tabel pelanggan:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince
Berikut adalah payload respons di JSON tanpa metadata:
{
"value":[
{
"PartitionKey":"Customer",
"RowKey":"Name",
"Timestamp":"2013-08-22T00:20:16.3134645Z",
"CustomerSince":"2008-10-01T15:25:05.2852025Z"
}
]
}
Berikut adalah payload respons di JSON dengan metadata minimal:
{
"odata.metadata":"https://myaccount.table.core.windows.net/$metadata#Customers",
"value":[
{
"PartitionKey":"Customer",
"RowKey":"Name",
"Timestamp":"2013-08-22T00:20:16.3134645Z",
"CustomerSince@odata.type":"Edm.DateTime",
"CustomerSince":"2008-10-01T15:25:05.2852025Z"
}
]
}
Berikut adalah payload respons di JSON dengan metadata lengkap:
{
"odata.metadata":" https://myaccount.table.core.windows.net/metadata#Customers",
"value":[
{
"odata.type":"myaccount.Customers",
"odata.id":"https://myaccount.table.core.windows.net/Customers(PartitionKey=Customer',RowKey='Name')",
"odata.etag":"W/\"0x5B168C7B6E589D2\"",
"odata.editLink":"Customers(PartitionKey=Customer',RowKey='Name')",
"PartitionKey":"Customer",
"RowKey":"Name",
"Timestamp@odata.type":"Edm.DateTime",
"Timestamp":"2013-08-22T00:20:16.3134645Z",
"CustomerSince@odata.type":"Edm.DateTime",
"CustomerSince":"2008-10-01T15:25:05.2852025Z"
}
]
}
Umpan atom (versi sebelum 2015-12-11)
Berikut adalah contoh permintaan URI untuk Query Entities
operasi pada tabel pelanggan:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince
Berikut adalah contoh respons Atom untuk operasi:Query Entities
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xml:base="https://myaccount.table.core.windows.net">
<id>https://myaccount.table.core.windows.net/Customers</id>
<title type="text">Customers</title>
<updated>2013-08-22T00:50:32Z</updated>
<link rel="self" title="Customers" href="Customers" />
<entry m:etag="W/"0x5B168C7B6E589D2"">
<id>https://myaccount.table.core.windows.net/Customers(PartitionKey='Customer',RowKey='Name')</id>
<category term="myaccount.Customers" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<link rel="edit" title="Customers" href="Customers(PartitionKey='Customer',RowKey='Name')" />
<title />
<updated>2013-08-22T00:50:32Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:PartitionKey>Customer</d:PartitionKey>
<d:RowKey>Name</d:RowKey>
<d:Timestamp m:type="Edm.DateTime">2013-08-22T00:20:16.3134645Z</d:Timestamp>
<d:CustomerSince m:type="Edm.DateTime">2008-10-01T15:25:05.2852025Z</d:CustomerSince>
</m:properties>
</content>
</entry>
</feed>
Authorization
Operasi ini dapat dilakukan oleh pemilik akun dan oleh siapa pun dengan tanda tangan akses bersama yang memiliki izin untuk melakukan operasi ini.
Keterangan
Kueri terhadap Table Storage dapat mengembalikan maksimum 1.000 entitas pada satu waktu dan dapat berjalan selama maksimal lima detik. Respons mencakup header kustom yang berisi sekumpulan token kelanjutan dalam salah satu kasus berikut:
- Hasil yang ditetapkan berisi lebih dari 1.000 entitas.
- Kueri tidak selesai dalam waktu lima detik.
- Kueri melintasi batas partisi.
Anda dapat menggunakan token kelanjutan untuk membuat permintaan berikutnya untuk halaman data berikutnya. Untuk informasi selengkapnya tentang token kelanjutan, lihat Batas waktu dan paginasi kueri.
Catatan
Saat Anda membuat permintaan berikutnya yang menyertakan token kelanjutan, pastikan untuk meneruskan URI asli berdasarkan permintaan. Misalnya, jika Anda telah menentukan $filter
opsi kueri , , $select
atau $top
sebagai bagian dari permintaan asli, sertakan opsi tersebut pada permintaan berikutnya. Jika tidak, permintaan Anda berikutnya mungkin mengembalikan hasil yang tidak terduga.
Opsi $top
kueri dalam kasus ini menentukan jumlah maksimum hasil per halaman. Ini tidak menentukan jumlah maksimum hasil dalam seluruh set respons.
Untuk informasi selengkapnya, lihat Tabel dan entitas kueri.
Untuk permintaan proyeksi yang menggunakan $select
opsi kueri, versi harus 2011-08-18 atau yang lebih baru. Jumlah maksimum properti yang dikembalikan adalah 255. Isi respons mencakup semua properti yang diproyeksikan, bahkan jika properti bukan bagian dari entitas yang dikembalikan.
Misalnya, jika permintaan menyertakan properti yang tidak dimuat entitas yang diproyeksikan, properti yang hilang ditandai dengan atribut null. Isi respons sampel sebelumnya mencakup Address
properti , yang bukan bagian dari entitas yang diproyeksikan. Oleh karena itu, nilai properti null: <d:Address m:null="true" />
.
Total waktu yang dialokasikan untuk permintaan penjadwalan dan pemrosesan kueri adalah 30 detik. Total itu mencakup lima detik untuk eksekusi kueri.
Perhatikan bahwa sisi kanan ekspresi kueri harus berupa konstanta. Anda tidak dapat mereferensikan properti di sisi kanan ekspresi. Untuk detail tentang membuat ekspresi kueri, lihat Tabel dan entitas kueri.
Ekspresi kueri tidak dapat berisi null
nilai. Karakter berikut harus dikodekan jika Anda menggunakannya dalam string kueri:
Garis miring (/)
Tanda tanya (?)
Titik dua (:)
Tanda tangan (@)
Ampersand (&)
Tanda sama dengan (=)
Tanda plus (+)
Koma (,)
Tanda dolar ($)
Aplikasi apa pun yang dapat mengotorisasi dan mengirim permintaan HTTP GET
dapat mengkueri entitas dalam tabel.
Untuk informasi selengkapnya tentang operasi kueri yang didukung terhadap Table Storage melalui LINQ, lihat Operator kueri yang didukung untuk Table Storage dan Menulis kueri LINQ terhadap Table Storage.
Lihat juga
Kode kesalahan Table Storage
Mengotorisasi permintaan ke Azure Storage
Status dan kode galat
Mengatasi sumber daya Table Storage
Tabel dan entitas kueri
Mengatur header versi layanan data OData
Sisipkan Entitas
Perbarui Entitas
Hapus Entitas