Bagikan melalui


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 $filteropsi kueri , , $selectatau $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