Principy datového modelu služby Table Service

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

Úč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ým oborem názvů pro 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 je každá tabulka jednoznačně pojmenovaná.

Účet úložiště musí být vždycky zadaný v identifikátoru URI požadavku. Základní identifikátor URI pro přístup k 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 název, dvojice typované hodnoty, podobně jako sloupec.

Table service nevynutila žádné schéma pro tabulky, takže dvě entity ve stejné tabulce mohou mít různé sady vlastností. Vývojáři se můžou rozhodnout vyhovět schématu 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 jednoho úč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í 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ě "Tables". Při pokusu o vytvoření tabulky s rezervovaným názvem tabulky se vrátí kód chyby 404 (chybný požadavek).

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

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

Názvy vlastností

V názvech vlastností se rozlišují velká a malá písmena, která mají velikost 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 podle specifikace XMLplatné. Tyto identifikátory nesmí být použity v názvech vlastností, protože názvy vlastností jsou odesílány prostřednictvím datové části XML v požadavku proti Table service.

Důležité

Názvy vlastností jsou předány Table service v rámci adresy URL. Některé znaky musí být zakódované v procentech, aby se zobrazily v adrese URL s použitím UTF-8 (preferované) nebo znakové sady MBCS. toto kódování probíhá automaticky při použití Azure Storage klientské knihovny. Existují však některé znaky, které nejsou platné v cestách URL ani při kódování. V názvech vlastností se nesmí vyskytovat tyto znaky. Znakové body jako \uE000, zatímco platné v názvech souborů NTFS, nejsou platné znaky Unicode, takže je nelze použít. Kromě toho nejsou povoleny také některé znaky ASCII nebo Unicode, například řídicí znaky (0x00 na 0x1F, \u0081 atd.). Pravidla upravující řetězce Unicode v HTTP/1.1 najdete v těchto tématech:

Poznámka

Počínaje verzí 2009-04-14 již Table service nadále nepodporuje vložení znaku spojovníku (-) 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í zahrnovat až 252 vlastních vlastností. Celková velikost všech dat ve vlastnostech entity nemůže překročit 1 MiB.

Vlastnosti systému

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

  • PartitionKey majetek

  • RowKey majetek

  • Timestamp majetek

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

V klíčových polích nejsou povoleny znaky.

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

  • Znak lomítka (/)

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

  • Znak číselného znaménka (#)

  • Znak otazníku (?)

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

    • Znak horizontálního tabulátoru (\t)
    • Znak odřádkování (\n)
    • Znak návratu na začátek řádku (\r)
  • Řídicí znaky od U + 007F do U + 009F

Vlastnost PartitionKey

Tabulky jsou rozdělené na oddíly, aby podporovaly vyrovnávání zatížení napříč uzly úložiště. Entity tabulky jsou uspořádány podle oddílů. Oddíl je po sobě jdoucí škále entit, které mají stejnou hodnotu klíče oddílu. Klíč oddílu je jedinečný identifikátor oddílu v dané tabulce, který je určen PartitionKey vlastností. 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 je nutné zahrnout PartitionKey do každé operace vložení, aktualizace a odstranění.

Vlastnost RowKey

Druhá část primárního klíče je klíč řádku určený RowKey vlastností. Klíč řádku je jedinečný identifikátor pro entitu v daném oddílu. Společně PartitionKey a RowKey jednoznačně identifikují každou entitu v tabulce.

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

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

Vlastnost timestamp

TimestampVlastnost je DateTime hodnota, která je udržována na straně serveru pro záznam času poslední změny entity. Table service používá Timestamp vlastnost interně k zajištění optimistického řízení souběžnosti. Hodnota Timestamp vlastnosti pro entitu je pokaždé, když se entita upraví. Tato vlastnost by se neměla nastavit při operacích INSERT nebo Update (hodnota se bude ignorovat).

TimestampVlastnost musí být vyjádřena v jednom z přijatých formátů standardu ISO 8601. Další informace o přijatých formátech UTC najdete v tématu formátování hodnot data a času.

Typy vlastností

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

Datový typ OData Typ společného jazykového modulu runtime Podrobnosti
Edm.Binary byte[] Velikost pole bajtů až 64 KiB.
Edm.Boolean bool Logická hodnota
Edm.DateTime DateTime 64 hodnota vyjádřená jako koordinovaný světový čas (UTC). Podporovaný DateTime rozsah začíná od 12:00 půlnoci 1. ledna 1601 n.l. (0001), UTC. Rozsah končí 31. prosince 9999. Další informace najdete v tématu formátování hodnot typu DateTime.
Edm.Double double Hodnota 64-bit s plovoucí desetinnou čárkou.
Edm.Guid Guid Globálně jedinečný identifikátor 128.
Edm.Int32 Int32 nebo int 32 celé číslo.
Edm.Int64 Int64 nebo long 64 celé číslo.
Edm.String String Hodnota kódovaná v kódování UTF-16. Hodnoty řetězce můžou mít velikost až 64 KiB. Počítejte s tím, že maximální povolený počet znaků je přibližně 32 KB nebo méně.

Ve výchozím nastavení je vlastnost vytvořena jako typ String , pokud nezadáte jiný typ. Chcete-li explicitně zadat vlastnost, určete její datový typ pomocí vhodné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.

Table service neuchovávají null hodnoty pro vlastnosti. Při dotazování entit jsou výše uvedené typy vlastností všechny, které neumožňují hodnotu null. Při psaní entit jsou výše uvedené typy vlastností všechny s možnou hodnotou null a jakákoli vlastnost s null hodnotou je zpracována, jako kdyby datová část tuto vlastnost neobsahovala.

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

Viz také