A Table service adatmodell megismerése

A Table szolgáltatás strukturált tárolást kínál táblák formájában. Az alábbi szakaszok a Table service adatmodellt ismertetik.

Tárfiók

A tárfiókok globálisan egyedi entitások a tárolórendszeren belül. A tárfiók a Table szolgáltatás szülőnévtere, és az engedélyezés alapja. Tetszőleges számú táblát létrehozhat egy adott tárfiókon belül, feltéve, hogy mindegyik tábla egyedi névvel rendelkezik.

A tárfiókot mindig meg kell adni a kérelem URI-jában. A Table szolgáltatás elérésének alap URI-ja a következő:

https://myaccount.table.core.windows.net  

Táblák, entitások és tulajdonságok

A táblák entitásgyűjteményként tárolják az adatokat. Az entitások hasonlóak a sorokhoz. Az entitások elsődleges kulccsal és tulajdonságkészlettel rendelkeznek. A tulajdonság egy oszlophoz hasonló név, típus-érték pár.

A Table szolgáltatás nem kényszeríti ki a táblák sémáját, így ugyanazon tábla két entitása eltérő tulajdonságokkal rendelkezhet. A fejlesztők dönthetnek úgy, hogy egy sémát kényszerítenek ki az ügyféloldalon. A táblák tetszőleges számú entitást tartalmazhatnak.

Táblanevek

A táblaneveknek meg kell felelniük az alábbi szabályoknak:

  • A táblaneveknek egyedinek kell lenniük egy fiókon belül.

  • A táblanevek csak alfanumerikus karaktereket tartalmazhatnak.

  • A táblanevek nem kezdődhetnek numerikus karakterrel.

  • A táblanevek nem érzéketlenek.

  • A táblaneveknek 3–63 karakter hosszúságúnak kell lenniük.

  • Egyes táblanevek fenntartottak, beleértve a "táblákat" is. Ha fenntartott táblanévvel próbál létrehozni egy táblát, az a 404-s hibakódot adja vissza (hibás kérés).

Ezeket a szabályokat a "^[A-Za-z][A-Za-z0-9]{2,62}$" reguláris kifejezés is ismerteti.

A táblanevek megőrzik azt az esetet, amellyel létrehozták őket, de használatukkor a kis- és nagybetűk nem érzéketlenek.

Tulajdonságnevek

A tulajdonságnevek legfeljebb 255 karakter hosszúságú kis- és nagybetűket különböztetnek meg. A tulajdonságneveknek a C#-azonosítók elnevezési szabályait kell követnie.

Megjegyzés

Egyes C#-azonosítók nem érvényesek az XML-specifikációnak megfelelően. Előfordulhat, hogy ezek az azonosítók nem használhatók a tulajdonságnevekben, mert a rendszer egy XML-hasznos adaton keresztül küldi el a tulajdonságneveket a Table szolgáltatásnak küldött kérelemben.

Fontos

A rendszer a tulajdonságneveket egy URL-címen belül továbbítja a Table szolgáltatásnak. Bizonyos karaktereket százalékban kell kódolni ahhoz, hogy megjelenjenek egy URL-címben, UTF-8 (előnyben részesített) vagy MBCS használatával. Ez a kódolás automatikusan megtörténik az Azure Storage-ügyfélkódtárak használatakor. Vannak azonban olyan karakterek, amelyek még kódoláskor sem érvényesek az URL-címekben. Ezek a karakterek nem jelennek meg a tulajdonságnevekben. Az olyan kódpontok, mint a \uE000, míg az NTFS-fájlnevekben érvényesek, érvénytelen Unicode-karakterek, ezért nem használhatók. Ezenkívül egyes ASCII- vagy Unicode-karakterek, például vezérlőkarakterek (0x00 0x1F, \u0081 stb.) szintén nem engedélyezettek. A Unicode-sztringeket a HTTP/1.1-ben szabályozó szabályokért lásd:

Megjegyzés

A Table szolgáltatás a 2009-04-14-es verziótól kezdődően már nem támogatja a kötőjel (-) karakter tulajdonságnevekben való használatát.

Tulajdonságkorlátozások

Egy entitás legfeljebb 255 tulajdonsággal rendelkezhet, beleértve a következő szakaszban ismertetett 3 rendszertulajdonságokat. Ezért a felhasználó legfeljebb 252 egyéni tulajdonságot tartalmazhat a 3 rendszertulajdonság mellett. Az entitás tulajdonságaiban lévő összes adat együttes mérete nem haladhatja meg az 1 MiB-t.

Rendszer tulajdonságai

Az entitások mindig a következő rendszertulajdonságokat tartalmazzák:

  • PartitionKey Tulajdonság

  • RowKey Tulajdonság

  • Timestamp Tulajdonság

Ezek a rendszertulajdonságok automatikusan bekerülnek a tábla minden entitásába. Ezeknek a tulajdonságoknak a neve fenntartott, és nem módosítható. A fejlesztő felelős a és RowKeyértékének beszúrásáért és frissítéséértPartitionKey. A kiszolgáló kezeli a értékét Timestamp, amely nem módosítható.

A kulcsmezőkben nem engedélyezett karakterek

A és RowKey tulajdonság értékeiben PartitionKey a következő karakterek nem engedélyezettek:

  • Az előre perjel (/) karakter

  • A fordított perjel (\) karakter

  • A számjel (#) karakter

  • A kérdőjel (?) karakter

  • Vezérlőkarakterek az U+0000 és az U+001F között, beleértve a következőket:

    • A vízszintes lap (\t) karakter
    • A vonalas (\n) karakter
    • A kocsi visszatérési (\r) karaktere
  • Vezérlőkarakterek az U+007F és az U+009F között

PartitionKey tulajdonság

A táblák particionálása támogatja a tárolócsomópontok közötti terheléselosztást. A tábla entitásai partíciók szerint vannak rendszerezve. A partíciók olyan entitások egymást követő tartományai, amelyek azonos partíciókulcs-értékkel rendelkeznek. A partíciókulcs egy adott táblán belüli partíció egyedi azonosítója, amelyet a PartitionKey tulajdonság határoz meg. A partíciókulcs egy entitás elsődleges kulcsának első részét képezi. A partíciókulcs legfeljebb 1 KiB méretű sztringérték lehet.

A tulajdonságot PartitionKey minden beszúrási, frissítési és törlési műveletben meg kell adnia.

RowKey tulajdonság

Az elsődleges kulcs második része a tulajdonság által RowKey megadott sorkulcs. A sorkulcs egy adott partíción belüli entitás egyedi azonosítója. A és RowKey a PartitionKey tábla minden entitását egyedileg azonosítja.

A sorkulcs egy legfeljebb 1 KiB méretű sztringérték.

A tulajdonságot RowKey minden beszúrási, frissítési és törlési műveletben meg kell adnia.

Időbélyeg tulajdonság

A Timestamp tulajdonság egy DateTime olyan érték, amelyet a kiszolgáló oldalán tartanak fenn az entitás utolsó módosításának időpontjának rögzítéséhez. A Table szolgáltatás a Timestamp tulajdonságot belsőleg használja az optimista egyidejűség biztosítására. Az entitás tulajdonságának Timestamp értéke minden alkalommal előrelép, amikor az entitás módosul. Ez a tulajdonság nem állítható be beszúrási vagy frissítési műveleteknél (az érték figyelmen kívül lesz hagyva).

A Timestamp tulajdonságot az elfogadott ISO 8601 UTC formátumok egyikében kell kifejezni. Az elfogadott UTC-formátumokról további információt a DateTime-értékek formázása című témakörben talál.

Tulajdonságtípusok

A Table szolgáltatás az OData protokoll specifikációja által meghatározott adattípusok egy részét támogatja. Az alábbi táblázat a Table szolgáltatás támogatott tulajdonságtípusát mutatja be:

OData-adatok típusa Közös nyelvi futtatókörnyezet típusa Részletek
Edm.Binary byte[] Legfeljebb 64 kib méretű tömb.
Edm.Boolean bool Logikai érték.
Edm.DateTime DateTime 64 bites érték koordinált világidővel (UTC) kifejezve. A támogatott DateTime tartomány 1601. január 1-jei éjféltől (UTC) 12:00-tól kezdődik. A tartomány 9999. december 31-én ér véget. További információ: Dátum/idő értékek formázása.
Edm.Double double Egy 64 bites lebegőpontos érték.
Edm.Guid Guid 128 bites globálisan egyedi azonosító.
Edm.Int32 Int32 vagy int Egy 32 bites egész szám.
Edm.Int64 Int64 vagy long Egy 64 bites egész szám.
Edm.String String UTF-16 kódolású érték. A sztringértékek legfeljebb 64 KiB méretűek lehetnek. Vegye figyelembe, hogy a támogatott karakterek maximális száma körülbelül 32 K vagy kevesebb.

Alapértelmezés szerint a tulajdonság típusként Stringjön létre, hacsak nem ad meg másik típust. Egy tulajdonság explicit beírásához adja meg az adattípusát az Entitás beszúrása vagy az Entitás frissítése művelet megfelelő OData-adattípusával. További információ: Entitások beszúrása és frissítése.

A Table szolgáltatás nem őriz meg null értékeket a tulajdonságokhoz. Entitások lekérdezésekor a fenti tulajdonságtípusok mind nem null értékűek. Entitások írásakor a fenti tulajdonságtípusok mind null értékűek, az értékekkel rendelkező null tulajdonságok pedig úgy lesznek kezelve, mintha a hasznos adat nem tartalmazta volna ezt a tulajdonságot.

A lekérdezési kérelem URI-jának különböző tulajdonságtípusaira való szűrést bemutató példákért lásd: Táblák és entitások lekérdezése.

Lásd még: