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 Ö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 PartitionKeyRowKeyeklemek ve güncelleştirmekle sorumludur. 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ı 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 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.