Tablo hizmeti veri modelini anlama
Tablo hizmeti, tablo biçiminde yapılandırılmış depolama sunar. Aşağıdaki bölümlerde Tablo hizmeti veri modeli özetlenmiştir.
Depolama Hesabı
Depolama hesabı, depolama sistemi içindeki genel olarak benzersiz bir varlıktır. Depolama hesabı, Tablo hizmetinin üst ad alanıdır ve yetkilendirmenin temelidir. Her tablonun adı benzersiz olduğu sürece, belirli bir depolama hesabı içinde istediğiniz sayıda tablo oluşturabilirsiniz.
Depolama hesabı her zaman istek URI'sinde belirtilmelidir. Tablo hizmetine erişmek için temel URI aşağıdaki gibidir:
https://myaccount.table.core.windows.net
Tablolar, Varlıklar ve Özellikler
Tablolar verileri varlık koleksiyonları olarak depolar. Varlıklar satırlara benzer. Bir varlığın birincil anahtarı ve bir özellik kümesi vardır. Özellik, sütuna benzer bir ad, türü yazılan değer çiftidir.
Tablo hizmeti tablolar için herhangi bir şemayı zorlamaz, bu nedenle aynı tablodaki iki varlığın farklı özellik kümeleri olabilir. Geliştiriciler istemci tarafında bir şema uygulamayı seçebilir. Tablo herhangi bir sayıda varlık içerebilir.
Tablo Adları
Tablo adları şu kurallara uymalıdır:
Tablo adları bir hesap içinde benzersiz olmalıdır.
Tablo adları yalnızca alfasayısal karakterler içerebilir.
Tablo adları sayısal karakterle başlayamaz.
Tablo adları büyük/küçük harfe duyarlı değildir.
Tablo adları 3 ila 63 karakter uzunluğunda olmalıdır.
"Tablolar" dahil olmak üzere bazı tablo adları ayrılmıştır. Ayrılmış tablo adıyla tablo oluşturmaya çalışırken hata kodu 404 (Hatalı İstek) döndürülüyor.
Bu kurallar ayrıca "^[A-Za-z][A-Za-z0-9]{2,62}$" normal ifadesiyle de açıklanmıştır.
Tablo adları oluşturuldukları durumu korur, ancak kullanıldığında büyük/küçük harfe duyarsızdır.
Özellik Adları
Özellik adları, boyutu 255 karaktere kadar olan büyük/küçük harfe duyarlı dizelerdir. Özellik adları , C# tanımlayıcıları için adlandırma kurallarına uymalıdır.
Not
Bazı C# tanımlayıcıları XML belirtimine göre geçerli değildir. Özellik adları Tablo hizmetine yönelik bir istekte XML yükü aracılığıyla gönderildiğinden, bu tanımlayıcılar özellik adlarında kullanılamayabilir.
Önemli
Özellik adları bir URL içindeki Tablo hizmetine geçirilir. UTF-8 (tercih edilen) veya MBCS kullanılarak belirli karakterlerin URL'de görünmesi için yüzde olarak kodlanmış olması gerekir. Bu kodlama, Azure Depolama istemci kitaplıklarını kullandığınızda otomatik olarak gerçekleşir. Ancak, kodlandığında bile URL yollarında geçerli olmayan bazı karakterler vardır. Bu karakterler özellik adlarında görüntülenemez. NTFS dosya adlarında geçerliyken \uE000 gibi kod noktaları geçerli Unicode karakterleri olmadığından kullanılamazlar. Ayrıca, denetim karakterleri (0x1F, \u0081, vb. 0x00) gibi bazı ASCII veya Unicode karakterlere de izin verilmez. HTTP/1.1'de Unicode dizelerini yöneten kurallar için bkz:
Not
Sürüm 2009-04-14'le başlayarak, Tablo hizmeti artık özellik adlarında tire (-) karakterini desteklemez.
Özellik Sınırlamaları
Bir varlık, aşağıdaki bölümde açıklanan 3 sistem özelliği de dahil olmak üzere en fazla 255 özelliğe sahip olabilir. Bu nedenle, kullanıcı 3 sistem özelliğine ek olarak en fazla 252 özel özellik içerebilir. Bir varlığın özelliklerindeki tüm verilerin birleşik boyutu 1 MiB'yi aşamaz.
(Sistem Özellikleri
Bir varlık her zaman aşağıdaki sistem özelliklerine sahiptir:
PartitionKey
ÖzellikRowKey
ÖzellikTimestamp
Özellik
Bu sistem özellikleri bir tablodaki her varlık için otomatik olarak eklenir. Bu özelliklerin adları ayrılmıştır ve değiştirilemez. Geliştirici ve değerlerini PartitionKey
RowKey
eklemek ve güncelleştirmekle sorumludur. Sunucu, değiştirilemeyen değerini Timestamp
yönetir.
Anahtar Alanlarında İzin Verilmeyen Karakterler
ve RowKey
özellikleri için değerlerde aşağıdaki karakterlere PartitionKey
izin verilmez:
Eğik çizgi (/) karakteri
Ters eğik çizgi (\) karakteri
Sayı işareti (#) karakteri
Soru işareti (?) karakteri
U+0000 ile U+001F arası kontrol karakterleri, örneğin:
- Yatay sekme (\t) karakteri
- Satır besleme (\n) karakteri
- Satır başı (\r) karakteri
U+007F ile U+009F arası denetim karakterleri
PartitionKey Özelliği
Tablolar, depolama düğümleri arasında yük dengelemeyi desteklemek için bölümlenir. Tablonun varlıkları bölüme göre düzenlenir. Bölüm, aynı bölüm anahtarı değerine sahip ardışık bir varlık aralığıdır. Bölüm anahtarı, belirli bir tablo içindeki bölüm için özelliği tarafından belirtilen benzersiz bir tanımlayıcıdır PartitionKey
. Bölüm anahtarı, varlığın birincil anahtarının ilk bölümünü oluşturur. Bölüm anahtarı, boyutu 1 KiB'a kadar olan bir dize değeri olabilir.
Her ekleme, güncelleştirme ve silme işlemine PartitionKey
özelliğini eklemeniz gerekir.
RowKey Özelliği
Birincil anahtarın ikinci bölümü, özelliği tarafından belirtilen satır anahtarıdır RowKey
. Satır anahtarı, belirli bir bölümdeki bir varlığın benzersiz tanımlayıcısıdır. ve RowKey
ile PartitionKey
birlikte tablodaki her varlığı benzersiz bir şekilde tanımlayın.
Satır anahtarı, boyutu 1 KiB'a kadar olabilen bir dize değeridir.
Her ekleme, güncelleştirme ve silme işlemine RowKey
özelliğini eklemeniz gerekir.
Zaman Damgası Özelliği
Timestamp
özelliği, bir DateTime
varlığın son değiştirilme zamanını kaydetmek için sunucu tarafında tutulan bir değerdir. Tablo hizmeti, iyimser eşzamanlılık sağlamak için özelliğini dahili olarak kullanır Timestamp
. Varlık her değiştirildiğinde varlığın özelliğinin değeri Timestamp
ilerler. Bu özellik ekleme veya güncelleştirme işlemlerinde ayarlanmamalıdır (değer yoksayılır).
Özelliğin Timestamp
kabul edilen ISO 8601 UTC biçimlerinden birinde ifade edilmesi gerekir. Kabul edilen UTC biçimleri hakkında daha fazla bilgi için bkz. DateTime değerlerini biçimlendirme.
Özellik Türleri
Tablo hizmeti, OData Protokolü Belirtimi tarafından tanımlanan veri türlerinin bir alt kümesini destekler. Aşağıdaki tabloda Tablo hizmeti için desteklenen özellik türleri gösterilmektedir:
OData Veri Türü | Ortak Dil Çalışma Zamanı türü | Ayrıntılar |
---|---|---|
Edm.Binary |
byte[] |
Boyutu 64 KiB'a kadar olan bayt dizisi. |
Edm.Boolean |
bool |
Boole değeri. |
Edm.DateTime |
DateTime |
Eşgüdümlü Evrensel Saat (UTC) olarak ifade edilen 64 bitlik bir değer. Desteklenen DateTime aralık 12:00 gece yarısı, 1 Ocak 1601 M.S. (C.E.), UTC'den başlar. Aralık 31 Aralık 9999'da sona erer. Daha fazla bilgi için bkz . DateTime değerlerini biçimlendirme. |
Edm.Double |
double |
64 bit kayan nokta değeri. |
Edm.Guid |
Guid |
128 bit genel benzersiz tanımlayıcı. |
Edm.Int32 |
Int32 veya int |
32 bitlik bir tamsayı. |
Edm.Int64 |
Int64 veya long |
64 bitlik bir tamsayı. |
Edm.String |
String |
UTF-16 ile kodlanmış bir değer. Dize değerlerinin boyutu en fazla 64 KiB olabilir. Desteklenen karakter sayısı üst sınırının yaklaşık 32 K veya daha az olduğunu unutmayın. |
Varsayılan olarak, farklı bir tür belirtmediğiniz sürece tür String
olarak bir özellik oluşturulur. Bir özelliği açıkça yazmak için, bir Varlık Ekle veya Varlığı Güncelleştir işlemi için uygun OData veri türünü kullanarak veri türünü belirtin. Daha fazla bilgi için bkz. Varlık Ekleme ve Güncelleştirme.
Tablo hizmeti özellikler için değerleri kalıcı null
yapmaz. Varlıkları sorgularken, yukarıdaki özellik türlerinin tümü null atanamaz. Varlıkları yazarken, yukarıdaki özellik türlerinin tümü null atanabilir ve değeri olan herhangi bir null
özellik yükte bu özelliği içermiyor gibi işlenir.
Sorgu isteği URI'sindeki çeşitli özellik türlerini filtrelemeyi gösteren örnekler için bkz. Tabloları ve Varlıkları Sorgulama.