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 temelini oluşturur. Her tablo benzersiz olarak adlandırılıyorsa, 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, yazılan değer çiftidir.
Tablo hizmeti tablolar için herhangi bir şema zorlamaz, bu nedenle aynı tablodaki iki varlığın farklı özellik kümeleri olabilir. Geliştiriciler istemci tarafında bir şemayı zorunlu kılmayı 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" da 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çıklanmaktadır.
Tablo adları oluşturuldukları büyük/küçük harf durumunu 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 istekteki 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çinde 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çerli olan \uE000 gibi kod noktaları geçerli Unicode karakterleri olmadığından kullanılamaz. Ayrıca, denetim karakterleri (0x1F, \u0081 vb. için 0x00) gibi bazı ASCII veya Unicode karakterlerine de izin verilmez. HTTP/1.1'de Unicode dizelerini yöneten kurallar için bkz:
Not
2009-04-14 sürümünden başlayarak, Tablo hizmeti artık özellik adlarında tire (-) karakterinin dahilini 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 eklemek ve güncelleştirmekle PartitionKey
RowKey
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ı karakterleri denetleme, örneğin:
- Yatay sekme (\t) karakteri
- Satır besleme (\n) karakteri
- Satır başı (\r) karakteri
U+007F ile U+009F arası karakterleri denetleme
PartitionKey Özelliği
Tablolar, depolama düğümleri arasında yük dengelemeyi destekleyecek şekilde 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ı, özelliği tarafından belirtilen belirli bir tablo içindeki bölüm için benzersiz bir tanımlayıcıdır PartitionKey
. Bölüm anahtarı, bir varlığın birincil anahtarının ilk bölümünü oluşturur. Bölüm anahtarı, boyutu 1024 karaktere 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 RowKey
belirtilen satır anahtarıdır. Satır anahtarı, belirli bir bölümdeki bir varlığın benzersiz tanımlayıcısıdır.
PartitionKey
ve RowKey
ile birlikte tablodaki her varlığı benzersiz bir şekilde tanımlayın.
Satır anahtarı, boyutu 1024 karaktere 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 Timestamp
özelliğinin değeri 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.