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ágRowKey
TulajdonságTimestamp
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 1024 karakter hosszúságú 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 1024 karakter hosszúságú 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 String
jö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.