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 1024 karakter dalam ukuran.
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 1024 karakter.
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.