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 dvojice název, typová 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í odpovídat těmto pravidlům:

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

  • Názvy tabulek můžou obsahovat jenom alfanumerické znaky.

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

  • V názvech tabulek se nerozlišují malá a velká 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í velikost písmen, 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ězcích 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 Service.

Důležité

Názvy vlastností se předávají službě Table v rámci adresy URL. Určité znaky musí být zakódované procenty, aby se zobrazily v adrese URL, pomocí UTF-8 (upřednostňované) nebo MBCS. K tomuto kódování dojde automaticky, když použijete klientské knihovny 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 nelze zobrazit v názvech vlastností. Body kódu jako \uE000, i když jsou platné v souborech souborů NTFS, 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

Od verze 2009-04-14 už služba Table Service nepodporuje zahrnutí znaku pomlčky (-) v názvech 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. Uživatel proto může kromě 3 systémových vlastností obsahovat až 252 vlastních vlastností. Souhrnná 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 se automaticky zahrnou 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 klíčových polích

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

  • Znak lomítka (/)

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

  • Znak čísla (#)

  • Znak otazníku (?)

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

    • Znak vodorovného tabulátoru (\t)
    • Znak kanálu řádku (\n)
    • Znak návratu na začátek řá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ý PartitionKey vlastností . Klíč oddílu tvoří první část primárního klíče entity. Klíč oddílu může mít hodnotu řetězce o velikosti až 1024 znaků.

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 jednoznačně identifikují každou entitu v tabulce.

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

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 a zaznamenává čas poslední změny entity. Služba Table používá Timestamp vlastnost interně k zajištění optimistické souběžnosti. Hodnota Timestamp vlastnosti entity se mění při každé změně entity. Tato vlastnost by neměla být nastavena při operacích 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 akceptovaných formátech UTC najdete v tématu Formátování hodnot data a času.

Typy vlastností

Služba Table service 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 půlnoci, 1. ledna 1601 A.D. (C.E.), 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. Upozorňujeme, že maximální počet podporovaných znaků je přibližně 32 kB 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žení entity nebo Aktualizace entity . Další informace najdete v tématu Vkládání 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 jsou všechny výše uvedené typy vlastností s možnou null hodnotou null a každá vlastnost s hodnotou se zpracovává, jako by datová část neobsahovala tuto 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é