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 Özellik

  • RowKey Özellik

  • Timestamp Ö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 PartitionKeyRowKeysorumludur. Sunucu, değiştirilemeyen değerini Timestampyö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 Stringolarak 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.

Ayrıca Bkz.