Principy datového modelu služby Table Service

Služba Table service nabízí strukturované úložiště ve formě tabulek. Následující části popisují datový model služby Table Service.

Účet úložiště

Účet úložiště je globálně jedinečná entita v rámci systému úložiště. Účet úložiště je nadřazený obor názvů pro službu Table Service a je základem pro autorizaci. V rámci daného účtu úložiště můžete vytvořit libovolný počet tabulek, pokud má každá tabulka jedinečný název.

Účet úložiště musí být vždy zadaný v identifikátoru URI požadavku. Základní identifikátor URI pro přístup ke službě Table service je následující:

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

Tabulky, entity a vlastnosti

Tabulky ukládají data jako kolekce entit. Entity jsou podobné řádkům. Entita má primární klíč a sadu vlastností. Vlastnost je pár název, typ-hodnota, který se podobá sloupci.

Služba Table Service nevynucuje žádné schéma pro tabulky, takže dvě entity ve stejné tabulce můžou mít různé sady vlastností. Vývojáři se můžou rozhodnout vynutit schéma na straně klienta. Tabulka může obsahovat libovolný počet entit.

Názvy tabulek

Názvy tabulek musí splňovat tato pravidla:

  • Názvy tabulek musí být v rámci účtu jedinečné.

  • Názvy tabulek mohou obsahovat pouze alfanumerické znaky.

  • Názvy tabulek nesmí začínat číselným znakem.

  • V názvech tabulek se nerozlišují velká a malá písmena.

  • Názvy tabulek musí mít délku 3 až 63 znaků.

  • Některé názvy tabulek jsou rezervované, včetně tabulek. Při pokusu o vytvoření tabulky s vyhrazeným názvem tabulky se vrátí kód chyby 404 (Chybný požadavek).

Tato pravidla jsou také popsána regulárním výrazem "^[A-Za-z][A-Za-z0-9]{2,62}$".

Názvy tabulek zachovávají písmena, se kterými byly vytvořeny, ale při použití nerozlišují malá a velká písmena.

Názvy vlastností

V názvech vlastností se rozlišují velká a malá písmena v řetězci o velikosti až 255 znaků. Názvy vlastností by měly dodržovat pravidla pojmenování pro identifikátory jazyka C#.

Poznámka

Některé identifikátory jazyka C# nejsou platné podle specifikace XML. Tyto identifikátory nelze použít v názvech vlastností, protože názvy vlastností se odesílají prostřednictvím datové části XML v požadavku na službu Table.

Důležité

Názvy vlastností se předávají službě Table v rámci adresy URL. Některé znaky musí být zakódované v procentech, aby se zobrazily v adrese URL, pomocí UTF-8 (upřednostňované) nebo MBCS. K tomuto kódování dochází automaticky při použití klientských knihoven Služby Azure Storage. Existují však určité znaky, které nejsou platné v cestách URL, i když jsou zakódovány. Tyto znaky se nemohou zobrazit v názvech vlastností. Body kódu, jako je \uE000, jsou sice platné v souborech souborů NTFS, ale nejsou platné znaky Unicode, takže je nelze použít. Kromě toho nejsou povoleny ani některé znaky ASCII nebo Unicode, například řídicí znaky (0x00 0x1F, \u0081 atd.). Pravidla, která řídí řetězce Unicode v HTTP/1.1, najdete tady:

Poznámka

Počínaje verzí 2009-04-14 už služba Table service nepodporuje zahrnutí znaku pomlčky (-) do názvů vlastností.

Omezení vlastností

Entita může mít až 255 vlastností, včetně 3 systémových vlastností popsaných v následující části. Proto může uživatel kromě 3 systémových vlastností obsahovat až 252 vlastních vlastností. Celková velikost všech dat ve vlastnostech entity nesmí překročit 1 MiB.

Vlastnosti systému

Entita má vždy následující systémové vlastnosti:

  • PartitionKey Vlastnost

  • RowKey Vlastnost

  • Timestamp Vlastnost

Tyto systémové vlastnosti jsou automaticky zahrnuty pro každou entitu v tabulce. Názvy těchto vlastností jsou rezervované a nelze je změnit. Vývojář zodpovídá za vkládání a aktualizaci hodnot PartitionKey a RowKey. Server spravuje hodnotu Timestamp, kterou nelze změnit.

Znaky nepovolené v polích klíčů

Následující znaky nejsou povoleny v hodnotách PartitionKey vlastností a RowKey :

  • Znak lomítka (/)

  • Znak zpětného lomítka (\)

  • Znak znaku čísla (#)

  • Znak otazníku (?)

  • Řídicí znaky od U+0000 do U+001F, včetně:

    • Znak vodorovného tabulátoru (\t)
    • Znak linkového kanálu (\n)
    • Znak návratového řádku (\r)
  • Řídicí znaky od U+007F do U+009F

PartitionKey – vlastnost

Tabulky jsou rozdělené na oddíly, aby podporovaly vyrovnávání zatížení mezi uzly úložiště. Entity tabulky jsou uspořádané podle oddílů. Oddíl je po sobě jdoucí rozsah entit, které mají stejnou hodnotu klíče oddílu. Klíč oddílu je jedinečný identifikátor oddílu v dané tabulce určený vlastností PartitionKey . Klíč oddílu tvoří první část primárního klíče entity. Klíč oddílu může být řetězcová hodnota o velikosti až 1 KiB.

Vlastnost musíte zahrnout do PartitionKey každé operace vložení, aktualizace a odstranění.

RowKey – vlastnost

Druhou částí primárního klíče je klíč řádku určený RowKey vlastností. Klíč řádku je jedinečný identifikátor entity v rámci daného oddílu. PartitionKey Společně a RowKey jedinečně identifikujte každou entitu v tabulce.

Klíč řádku je řetězcová hodnota, která může mít velikost až 1 KiB.

Vlastnost musíte zahrnout do RowKey každé operace vložení, aktualizace a odstranění.

Vlastnost časového razítka

Vlastnost Timestamp je DateTime hodnota, která se udržuje na straně serveru, aby zaznamenala čas poslední změny entity. Služba Table service interně používá Timestamp vlastnost k zajištění optimistické souběžnosti. Hodnota Timestamp vlastnosti entity postupuje při každé změně entity. Tato vlastnost by neměla být nastavena pro operace vložení nebo aktualizace (hodnota bude ignorována).

Vlastnost Timestamp musí být vyjádřena v jednom z přijatých formátů ISO 8601 UTC. Další informace o přijatých formátech UTC najdete v tématu Formátování hodnot DateTime.

Typy vlastností

Služba Table podporuje podmnožinu datových typů definovaných specifikací protokolu OData. Následující tabulka uvádí podporované typy vlastností pro službu Table Service:

Datový typ OData Typ modulu CLR (Common Language Runtime) Podrobnosti
Edm.Binary byte[] Pole bajtů o velikosti až 64 KiB.
Edm.Boolean bool Logická hodnota
Edm.DateTime DateTime 64bitová hodnota vyjádřená jako utc (Coordinated Universal Time). Podporovaný DateTime rozsah začíná od 12:00 o půlnoci 1. ledna 1601 a utc. Rozsah končí 31. prosince 9999. Další informace najdete v tématu Formátování hodnot DateTime.
Edm.Double double 64bitová hodnota s plovoucí desetinou čárkou.
Edm.Guid Guid 128bitový globálně jedinečný identifikátor.
Edm.Int32 Int32 nebo int 32bitové celé číslo.
Edm.Int64 Int64 nebo long 64bitové celé číslo.
Edm.String String Hodnota s kódováním UTF-16. Řetězcové hodnoty můžou mít velikost až 64 KiB. Všimněte si, že maximální počet podporovaných znaků je přibližně 32 K nebo méně.

Ve výchozím nastavení se vlastnost vytvoří jako typ String, pokud nezadáte jiný typ. Pokud chcete explicitně zadat vlastnost, zadejte její datový typ pomocí příslušného datového typu OData pro operaci Vložit entitu nebo Aktualizovat entitu . Další informace najdete v tématu Vložení a aktualizace entit.

Služba Table service neuchovává null hodnoty vlastností. Při dotazování entit výše uvedené typy vlastností nemají hodnotu null. Při psaní entit mají všechny výše uvedené typy vlastností hodnotu null a každá vlastnost s hodnotou se zpracovává, jako by datová část neobsahovala danou null vlastnost.

Příklady, které ukazují, jak filtrovat různé typy vlastností v identifikátoru URI požadavku dotazu, najdete v tématu Dotazování tabulek a entit.

Viz také