A Table service adatmodell megismerése

A Table service 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 service szülő-névtere, és ez az engedélyezés alapja. Egy adott tárfiókon belül tetszőleges számú táblát létrehozhat, 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 service eléréséhez használt alap URI a következő:

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

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

A táblák entitásgyűjteményekké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ít sémát a táblákhoz, így az ugyanabban a táblában lévő két entitás különböző tulajdonságokkal rendelkezhet. A fejlesztők dönthetnek úgy, hogy kényszerítenek egy sémát 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áblázatnevek nem kezdődhetnek numerikus karakterrel.

  • A táblanevek nem megkülönböztetik a kis- és nagybetűket.

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

  • Néhány táblanév foglalt, beleértve a "táblákat" is. Ha fenntartott táblanévvel próbál létrehozni egy táblát, a 404-es 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 a kis- és nagybetűket, amellyel létrehozták őket, de használatukkor nem érzéketlenek a kis- és nagybetűk között.

Tulajdonságnevek

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

Megjegyzés

Egyes C#-azonosítók érvénytelenek az XML-specifikációnak megfelelően. Ezek az azonosítók nem használhatók a tulajdonságnevekben, mert a tulajdonságnevek xml-hasznos adatokon keresztül lesznek elküldve a Table service-nek küldött kérésekben.

Fontos

A tulajdonságnevek egy URL-címen belül lesznek átadva a Table service-nek. Bizonyos karaktereket százalékban kódolni kell 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 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, de ntfs-fájlnevekben érvényesek, nem érvényes Unicode-karakterek, ezért nem használhatók. Ezenkívül néhány ASCII- vagy Unicode-karakter, például vezérlőkarakterek (0x00 0x1F, \u0081 stb.) szintén nem engedélyezettek. A HTTP/1.1 Unicode-sztringekre vonatkozó szabályokért lásd:

Megjegyzés

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

Tulajdonságkorlátozások

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

Rendszertulajdonságok

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 belefoglalódnak egy tábla minden entitásába. Ezeknek a tulajdonságoknak a neve foglalt, és nem módosítható. A fejlesztő feladata a beszúrni és frissíteni az és PartitionKeyRowKeya . A kiszolgáló kezeli a nem módosítható értékeket Timestamp.

A kulcsmezőkben nem engedélyezett karakterek

A következő karakterek nem használhatók a tulajdonságok és RowKey a PartitionKey tulajdonságok értékeiben:

  • A perjel (/) karakter

  • A fordított perjel (\) karakter

  • A számjel (#) karakter

  • A kérdőjel (?) karakter

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

    • A vízszintes tabulátor (\t) karakter
    • A sortörés (\n) karakter
    • A kocsivissza (\r) karakter
  • Vezérlőkarakterek U+007F és U+009F között

PartitionKey tulajdonság

A táblák particionálva vannak a tárolócsomópontok közötti terheléselosztás támogatásához. 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 ugyanazzal a partíciókulcs-értékkel rendelkeznek. A partíciókulcs a partíció egyedi azonosítója egy adott táblában, amelyet a PartitionKey tulajdonság határoz meg. A partíciókulcs az 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. Egy tábla minden entitását PartitionKey egyedileg azonosítja RowKey és azonosítja.

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

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

Időbélyeg tulajdonsága

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

A Timestamp tulajdonságot az elfogadott ISO 8601 UTC formátumok egyikével kell kifejezni. Az elfogadott UTC-formátumokról további információt a Dátum/idő é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 service által támogatott tulajdonságtípusokat 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ű bájttömb.
Edm.Boolean bool Logikai érték.
Edm.DateTime DateTime 64 bites érték egyezményes világidővel (UTC) kifejezve. A támogatott DateTime tartomány 1601. január 1., éjféltől (C.E.), UTC-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 egy tulajdonság típusként Stringjön létre, hacsak nem ad meg másik típust. Egy tulajdonság explicit típusának megadásához adja meg az adattípusát az Entitás beszúrása vagy az Entitás frissítése művelethez megfelelő OData-adattípussal. További információ: Entitások beszúrása és frissítése.

A Table szolgáltatás nem megőrzi null a tulajdonságok értékeit. Entitások lekérdezésekor a fenti tulajdonságtípusok mindegyike nem null értékű. Entitások írásakor a fenti tulajdonságtípusok mind null értékűek, és az értékekkel rendelkező null összes tulajdonság úgy lesz 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ípusai alapján történő szűrést bemutató példákért lásd a Táblák és entitások lekérdezése című témakört.

Lásd még: