Tablo hizmeti veri modelini anlama

Tablo hizmeti, tablolar şeklinde yapılandırılmış depolama sunar. Aşağıdaki bölümlerde Tablo hizmeti veri modeli özetlemektedir.

Depolama Hesabı

Depolama hesabı, depolama sistemi içindeki genel olarak benzersiz bir varlıktır. Depolama hesabı, Tablo hizmeti için üst ad alanıdır ve yetkilendirmenin temelidir. Her tablo benzersiz olarak adlandırılmış olduğu sürece, bir depolama hesabı içinde herhangi bir 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 ve tür-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ı zorlamayı seçebilir. Bir tablo herhangi bir sayıda varlık içerebilir.

Tablo Adları

Tablo adları şu kurallara uygun olmalı:

  • Tablo adları bir hesap içinde benzersiz olmalıdır.

  • Tablo adları yalnızca alfasayısal karakterler içerebilir.

  • Tablo adları sayısal bir karakterle başamaz.

  • Tablo adları büyük/büyük/büyük harfe duyarlı değildir.

  • Tablo adları 3-63 karakter uzunluğunda olmalıdır.

  • "Tablolar" dahil olmak üzere bazı tablo adları ayrılmıştır. Ayrılmış tablo adıyla bir tablo oluşturma girişimi 404 (Hatalı İstek) hata kodunu döndürür.

Bu kurallar ayrıca "^[A-Za-z][A-Za-z0-9] $" normal ifadesiyle {2,62} de açıklanmıştır.

Tablo adları oluşturulduklarında büyük/büyük harfe duyarlı değildir.

Ö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 uygun olmalıdır.

Not

Bazı C# tanımlayıcıları XML belirtimleri için geçerli değildir. Özellik adları Tablo hizmetine yönelik bir istekte XML yükü aracılığıyla gönderildiği için bu tanımlayıcılar özellik adlarında kullanılamaz.

Önemli

Özellik adları bir URL içinde Tablo hizmetine geçirildi. Belirli karakterler, UTF-8 (tercih edilir) veya MBCS kullanılarak URL'de görünecek şekilde yüzde olarak kodlanmış olmalıdır. Bu kodlama, Azure Depolama istemci kitaplıklarını kullanırken otomatik olarak gerçekleşir. Ancak kodlanmış olsa bile URL yollarında geçerli olan bazı karakterler vardır. Bu karakterler özellik adlarında görünemez. NTFS dosya adlarında geçerli olan \uE000 gibi kod noktaları geçerli Unicode karakterleri değildir, bu nedenle kullanılamaz. Buna ek olarak, denetim karakterleri (0x00 0x1F, \u0081 vb.) 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 itibaren, Tablo hizmeti artık özellik adlarında tire (-) karakterinin dahil 14 karakterle dahil 14'ü desteklememektedir.

Özellik Sınırlamaları

Bir varlığın, aşağıdaki bölümde açıklanan 3 sistem özelliği de dahil olmak üzere en fazla 255 özelliği olabilir. Bu nedenle, kullanıcı 3 sistem özelliğine ek olarak en fazla 252 özel özellik içerebilir. Bir varlığın özelliklerinde yer alan tüm verilerin birleşik boyutu 1 MiB'i aşamaz.

(Sistem Özellikleri

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. ve değerlerini eklemek ve güncelleştirmek geliştiricinin PartitionKey RowKey sorumluluğundadır. Sunucu, değiştiril tıklatın Timestamp değerini yönetir.

Anahtar Alanlarında Izin Verilmeyen Karakterler

ve özellikleri için değerlerde aşağıdaki karakterlere PartitionKey izin RowKey verilmez:

  • Eğik çizgi (/) karakteri

  • Ters eğik çizgi ( \ ) karakteri

  • Sayı işareti (#) karakteri

  • Soru işareti (?) karakteri

  • U+0000 ile U+001F arasında denetim karakterleri:

    • Yatay sekme (\t) karakteri
    • Linefeed (\n) karakteri
    • Satır başı (\r) karakteri
  • U+007F ile U+009F arasında denetim karakterleri

PartitionKey Özelliği

Tablolar, depolama düğümleri arasında yük dengelemeyi desteklemek için bölümlenmiş durumdadır. Tablonun varlıkları bölüme göre düzenlenmiştir. 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 tablodaki bölüm için benzersiz bir PartitionKey tanımlayıcıdır. Bölüm anahtarı, varlığın birincil anahtarının ilk bölümünü oluşturur. Bölüm anahtarı, boyutu 1 KiB'ye kadar olan bir dize değeri olabilir.

Özelliğini her PartitionKey ekleme, güncelleştirme ve silme işlemi içine dahil etmek gerekir.

RowKey Özelliği

Birincil anahtarın ikinci bölümü, özelliği tarafından belirtilen satır RowKey anahtarıdır. Satır anahtarı, bir bölüm içindeki varlığın benzersiz tanımlayıcısıdır. ve PartitionKey birlikte, RowKey bir tablodaki her varlığı benzersiz olarak tanımlayabilir.

Satır anahtarı, boyutu en fazla 1 KiB olan bir dize değeridir.

Özelliğini her RowKey ekleme, güncelleştirme ve silme işlemi içine dahil etmek gerekir.

Zaman Damgası Özelliği

özelliği, Timestamp bir DateTime varlığın son değiştirilme zamanlarını kaydetmek için sunucu tarafında bakımı yapılan bir değerdir. Tablo hizmeti, iyimser Timestamp eşzamanlılık sağlamak için özelliğini dahili olarak kullanır. Varlığın Timestamp özelliğinin değeri, varlık her değiştirildiğinde ilerler. Bu özellik ekleme veya güncelleştirme işlemleri üzerinde ayarlanmaz (değer yoksayılır).

özelliği, Timestamp kabul edilen ISO 8601 UTC biçimlerinden biri ile ifade edilmeli. 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 tablo Tablo hizmeti için desteklenen özellik türlerini gösterir:

OData Veri Türü Ortak Dil Çalışma Zamanı türü Ayrıntılar
Edm.Binary byte[] Boyutu 64 KiB'ye kadar olan bayt dizisi.
Edm.Boolean bool Boole değeri.
Edm.DateTime DateTime Eşgüdümlü Evrensel Saat (UTC) olarak ifade Eşgüdümlü Evrensel Saat bit değeri. Desteklenen aralık DateTime 1 Ocak 1601'de gece yarısı 12:00'dan başlar. (C.E.), UTC. 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 olarak benzersiz tanımlayıcı.
Edm.Int32 Int32 veya int 32 bit tamsayı.
Edm.Int64 Int64 veya long 64 bit tamsayı.
Edm.String String UTF-16 ile kodlanmış bir değer. Dize değerlerinin boyutu en fazla 64 KiB olabilir. Desteklenen maksimum karakter sayısının yaklaşık 32 K veya daha az olduğunu unutmayın.

Varsayılan olarak, farklı bir tür belirtmedikçe String bir özellik türü olarak oluşturulur. Bir özelliği açıkça belirtmek için, Varlık Ekleme veya Varlık Güncelleştirme 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 null değerleri kalıcı olarak kalıcı olarak ayarlamaz. Varlıkları sorgularken, yukarıdaki özellik türlerinin hepsi null değere sahip değildir. Varlıklar yazarken yukarıdaki özellik türlerinin hepsi null değere sahip olur ve değerine sahip herhangi bir özellik, yükte bu özelliğin yer olmadığını null gösterir.

Bir sorgu isteği URI'sinde çeşitli özellik türlerine göre filtrelemeyi göstermek için bkz. Tabloları ve Varlıkları Sorgulama.

Ayrıca Bkz.