Memahami model data layanan Table

Layanan Tabel menawarkan penyimpanan terstruktur dalam bentuk tabel. Bagian berikut menguraikan model data layanan Tabel.

Akun Penyimpanan

Akun penyimpanan adalah entitas unik global dalam sistem penyimpanan. Akun penyimpanan adalah namespace induk untuk layanan Tabel, dan merupakan dasar untuk otorisasi. Anda dapat membuat sejumlah tabel dalam akun penyimpanan tertentu, selama setiap tabel diberi nama unik.

Akun penyimpanan harus selalu ditentukan dalam URI permintaan. URI dasar untuk mengakses layanan Table adalah sebagai berikut:

https://myaccount.table.core.windows.net  

Tabel, Entitas, dan Properti

Tabel menyimpan data sebagai kumpulan entitas. Entitas mirip dengan baris. Entitas memiliki kunci primer dan sekumpulan properti. Properti adalah nama, pasangan nilai yang ditik, mirip dengan kolom.

Layanan Tabel tidak memberlakukan skema apa pun untuk tabel, sehingga dua entitas dalam tabel yang sama mungkin memiliki set properti yang berbeda. Pengembang dapat memilih untuk menerapkan skema di sisi klien. Tabel mungkin berisi sejumlah entitas.

Nama Tabel

Nama tabel harus sesuai dengan aturan ini:

  • Nama tabel harus unik dalam akun.

  • Nama tabel hanya boleh berisi karakter alfanumerik.

  • Nama tabel tidak dapat dimulai dengan karakter numerik.

  • Nama tabel tidak peka huruf besar/kecil.

  • Panjang nama tabel harus terdiri dari 3 hingga 63 karakter.

  • Beberapa nama tabel dicadangkan, termasuk "tabel". Mencoba membuat tabel dengan nama tabel yang dipesan mengembalikan kode kesalahan 404 (Permintaan Buruk).

Aturan ini juga dijelaskan oleh ekspresi reguler "^[A-Za-z][A-Za-z0-9]{2,62}$".

Nama tabel mempertahankan kasus yang dibuat, tetapi tidak peka huruf besar/kecil saat digunakan.

Nama Properti

Nama properti berukuran peka huruf besar/kecil hingga 255 karakter. Nama properti harus mengikuti aturan penamaan untuk pengidentifikasi C#.

Catatan

Beberapa pengidentifikasi C# tidak valid sesuai dengan spesifikasi XML. Pengidentifikasi ini tidak dapat digunakan dalam nama properti, karena nama properti dikirim melalui payload XML dalam permintaan terhadap layanan Tabel.

Penting

Nama properti diteruskan ke layanan Tabel dalam URL. Karakter tertentu harus dikodekan persen agar muncul di URL, menggunakan UTF-8 (pilihan) atau MBCS. Pengodean ini terjadi secara otomatis saat Anda menggunakan pustaka klien Azure Storage. Namun, ada karakter tertentu yang tidak valid di jalur URL bahkan ketika dikodekan. Karakter ini tidak dapat muncul dalam nama properti. Titik kode seperti \uE000, sementara valid dalam nama file NTFS, bukan karakter Unicode yang valid, sehingga tidak dapat digunakan. Selain itu, beberapa karakter ASCII atau Unicode, seperti karakter kontrol (0x00 ke 0x1F, \u0081, dll.), juga tidak diizinkan. Untuk aturan yang mengatur string Unicode di HTTP/1.1 lihat:

Catatan

Dimulai dengan versi 2009-04-14, layanan Tabel tidak lagi mendukung termasuk karakter tanda hubung (-) dalam nama properti.

Batasan Properti

Entitas dapat memiliki hingga 255 properti, termasuk 3 properti sistem yang dijelaskan di bagian berikut. Oleh karena itu, pengguna dapat menyertakan hingga 252 properti kustom, selain 3 properti sistem. Ukuran gabungan semua data dalam properti entitas tidak boleh melebihi 1 MiB.

Properti Sistem

Entitas selalu memiliki properti sistem berikut:

  • Properti PartitionKey.

  • Properti RowKey.

  • Properti Timestamp.

Properti sistem ini secara otomatis disertakan untuk setiap entitas dalam tabel. Nama properti ini dicadangkan dan tidak dapat diubah. Pengembang bertanggung jawab untuk menyisipkan dan memperbarui nilai PartitionKey dan RowKey. Server mengelola nilai Timestamp, yang tidak dapat dimodifikasi.

Karakter Yang Tidak Diizinkan di Bidang Kunci

Karakter berikut ini tidak diperbolehkan dalam nilai untuk PartitionKey properti dan RowKey :

  • Karakter garis miring (/)

  • Karakter garis miring terbelakang (\)

  • Karakter tanda angka (#)

  • Karakter tanda tanya (?)

  • Mengontrol karakter dari U+0000 ke U+001F, termasuk:

    • Karakter tab horizontal (\t)
    • Karakter linefeed (\n)
    • Karakter carriage return (\r)
  • Mengontrol karakter dari U+007F ke U+009F

Properti PartitionKey

Tabel dipartisi untuk mendukung penyeimbangan beban di seluruh simpul penyimpanan. Entitas tabel diatur berdasarkan partisi. Partisi adalah rentang entitas berturut-turut yang memiliki nilai kunci partisi yang sama. Kunci partisi adalah pengidentifikasi unik untuk partisi dalam tabel tertentu, yang ditentukan oleh PartitionKey properti . Kunci partisi membentuk bagian pertama dari kunci primer entitas. Kunci partisi mungkin berupa nilai string hingga ukuran 1 KiB.

Anda harus menyertakan PartitionKey properti di setiap operasi sisipkan, perbarui, dan hapus.

Properti RowKey

Bagian kedua dari kunci primer adalah kunci baris, yang ditentukan oleh RowKey properti . Kunci baris adalah pengidentifikasi unik untuk entitas dalam partisi tertentu. PartitionKey Bersama-sama dan RowKey secara unik mengidentifikasi setiap entitas dalam tabel.

Kunci baris adalah nilai string yang mungkin berukuran hingga 1 KiB.

Anda harus menyertakan RowKey properti di setiap operasi sisipkan, perbarui, dan hapus.

Properti Tanda Waktu

Properti Timestamp adalah DateTime nilai yang dipertahankan di sisi server untuk merekam waktu entitas terakhir diubah. Layanan Tabel menggunakan Timestamp properti secara internal untuk memberikan konkurensi optimis. Nilai Timestamp properti untuk entitas maju setiap kali entitas dimodifikasi. Properti ini tidak boleh diatur pada operasi sisipkan atau perbarui (nilai akan diabaikan).

Properti Timestamp harus dinyatakan dalam salah satu format UTC ISO 8601 yang diterima. Untuk informasi selengkapnya tentang format UTC yang diterima, lihat Memformat nilai DateTime.

Jenis Properti

Layanan Tabel mendukung subset jenis data yang ditentukan oleh Spesifikasi Protokol OData. Tabel berikut ini memperlihatkan jenis properti yang didukung untuk layanan Tabel:

Jenis Data OData Jenis Runtime Bahasa Umum Detail
Edm.Binary byte[] Array byte berukuran hingga 64 KiB.
Edm.Boolean bool Nilai Boolean.
Edm.DateTime DateTime Nilai 64-bit yang dinyatakan sebagai Waktu Universal Terkoordinasi (UTC). Rentang yang didukung DateTime dimulai dari 12:00 tengah malam, 1 Januari 1601 A.D. (C.E.), UTC. Rentang berakhir 31 Desember 9999. Untuk informasi selengkapnya, lihat Memformat nilai DateTime.
Edm.Double double Nilai titik float 64-bit.
Edm.Guid Guid Pengidentifikasi unik global 128-bit.
Edm.Int32 Int32 atau int bilangan bulat 32-bit.
Edm.Int64 Int64 atau long bilangan bulat 64-bit.
Edm.String String Nilai yang dikodekan UTF-16. Nilai string mungkin berukuran hingga 64 KiB. Perhatikan bahwa jumlah maksimum karakter yang didukung adalah sekitar 32 K atau kurang.

Secara default properti dibuat sebagai jenis String, kecuali Anda menentukan jenis yang berbeda. Untuk mengetik properti secara eksplisit, tentukan jenis datanya dengan menggunakan jenis data OData yang sesuai untuk operasi Sisipkan Entitas atau Perbarui Entitas . Untuk informasi selengkapnya, lihat Menyisipkan dan Memperbarui Entitas.

Layanan Tabel tidak mempertahankan null nilai untuk properti. Saat mengkueri entitas, jenis properti di atas semuanya tidak dapat diubah ke null. Saat menulis entitas, jenis properti di atas semuanya dapat diubah ke null, dan properti apa pun dengan null nilai ditangani seolah-olah payload tidak berisi properti tersebut.

Untuk contoh yang memperlihatkan cara memfilter berbagai jenis properti dalam URI permintaan kueri, lihat Mengkueri Tabel dan Entitas.

Lihat juga