Omówienie modelu danych usługi Table Service

Usługa Table Service oferuje magazyn strukturalny w postaci tabel. W poniższych sekcjach przedstawiono model danych usługi Table Service.

Konto magazynu

Konto magazynu jest globalnie unikatową jednostką w systemie magazynu. Konto magazynu jest nadrzędną przestrzenią nazw usługi Table Service i stanowi podstawę autoryzacji. Możesz utworzyć dowolną liczbę tabel w ramach danego konta magazynu, o ile każda tabela ma unikatową nazwę.

Konto magazynu musi być zawsze określone w adresie URI żądania. Podstawowy URI do uzyskiwania dostępu do usługi Tabel jest następujący:

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

Tabele, jednostki i właściwości

Tabele przechowują dane jako kolekcje jednostek. Jednostki są podobne do wierszy. Jednostka ma klucz podstawowy i zestaw właściwości. Właściwość jest parą nazwa,typ-wartość, podobną do kolumny.

Usługa Table Service nie wymusza żadnego schematu dla tabel, dlatego dwie jednostki w tej samej tabeli mogą mieć różne zestawy właściwości. Deweloperzy mogą zdecydować się na wymuszanie schematu po stronie klienta. Tabela może zawierać dowolną liczbę jednostek.

Nazwy tabel

Nazwy tabel muszą być zgodne z tymi regułami:

  • Nazwy tabel muszą być unikatowe w obrębie konta.

  • Nazwy tabel mogą zawierać tylko znaki alfanumeryczne.

  • Nazwy tabel nie mogą zaczynać się od znaku liczbowego.

  • W nazwach tabel nie jest uwzględniania ich litera.

  • Nazwy tabel muszą mieć od 3 do 63 znaków.

  • Niektóre nazwy tabel są zarezerwowane, w tym "tabele". Próba utworzenia tabeli o zastrzeżonej nazwie tabeli zwraca kod błędu 404 (Złe żądanie).

Reguły te są również opisane za pomocą wyrażenia regularnego "^[A-Za-z][A-Za-z0-9] {2,62} $".

Nazwy tabel zachowują przypadek, za pomocą którego zostały utworzone, ale w przypadku ich użycia nie jest uwzględniania ich litera.

Nazwy właściwości

Nazwy właściwości to ciągi z wielkość liter do 255 znaków. Nazwy właściwości powinny być zgodne z regułami nazewnictwa identyfikatorów języka C#.

Uwaga

Niektóre identyfikatory języka C# nie są prawidłowe zgodnie ze specyfikacją XML. Tych identyfikatorów nie można używać w nazwach właściwości, ponieważ nazwy właściwości są wysyłane za pośrednictwem ładunku XML w żądaniu względem usługi Tabel.

Ważne

Nazwy właściwości są przekazywane do usługi Tabel w adresie URL. Niektóre znaki muszą być zakodowane w procentach, aby pojawiały się w adresie URL przy użyciu formatu UTF-8 (preferowany) lub MBCS. To kodowanie odbywa się automatycznie w przypadku korzystania z bibliotek Storage Azure. Istnieją jednak pewne znaki, które nie są prawidłowe w ścieżkach URL, nawet w przypadku kodowania. Te znaki nie mogą być wyświetlane w nazwach właściwości. Punkty kodu, takie jak \uE000, podczas gdy są prawidłowe w nazwach plików NTFS, nie są prawidłowymi znakami Unicode, więc nie można ich używać. Ponadto niektóre znaki ASCII lub Unicode, takie jak znaki kontrolne (0x00 do 0x1F, \u0081 itp.), również nie są dozwolone. Aby uzyskać reguły rządzące ciągami Unicode w http/1.1, zobacz:

Uwaga

Począwszy od wersji 2009-04-14, usługa Table Service nie obsługuje już do uwzględnienia znaku kreski (-) w nazwach właściwości.

Ograniczenia właściwości

Jednostka może mieć maksymalnie 255 właściwości, w tym 3 właściwości systemowe opisane w poniższej sekcji. W związku z tym oprócz 3 właściwości systemowych użytkownik może zawierać maksymalnie 252 właściwości niestandardowe. Łączny rozmiar wszystkich danych we właściwościach jednostki nie może przekraczać 1 MiB.

Właściwości systemu

Jednostka ma zawsze następujące właściwości systemowe:

  • PartitionKey Właściwość

  • RowKey Właściwość

  • Timestamp Właściwość

Te właściwości systemu są automatycznie uwzględniane dla każdej jednostki w tabeli. Nazwy tych właściwości są zastrzeżone i nie można ich zmienić. Deweloper jest odpowiedzialny za wstawianie i aktualizowanie wartości PartitionKey i RowKey . Serwer zarządza wartością Timestamp , której nie można modyfikować.

Niedozwolone znaki w polach kluczy

Następujące znaki nie są dozwolone w wartościach PartitionKey właściwości RowKey i :

  • Ukośnik (/)

  • Znak ukośnika \ odwrotnego ()

  • Znak numeru (#)

  • Znak zapytania (?)

  • Znaki kontrolne od U+0000 do U+001F, w tym:

    • Znak tabulatora poziomego (\t)
    • Znak \n wiersza
    • Znak powrotu karetki (\r)
  • Znaki kontrolne od U+007F do U+009F

PartitionKey, właściwość

Tabele są partycjonowane w celu obsługi równoważenia obciążenia między węzłami magazynu. Jednostki tabeli są zorganizowane według partycji. Partycja to kolejny zakres jednostek z taką samą wartością klucza partycji. Klucz partycji jest unikatowym identyfikatorem partycji w danej tabeli określonym przez PartitionKey właściwość . Klucz partycji stanowi pierwszą część klucza podstawowego jednostki. Klucz partycji może być wartością ciągu o rozmiarze do 1 KiB.

Właściwość należy uwzględnić PartitionKey w każdej operacji wstawiania, aktualizowania i usuwania.

RowKey, właściwość

Druga część klucza podstawowego to klucz wiersza określony przez RowKey właściwość . Klucz wiersza jest unikatowym identyfikatorem jednostki w ramach danej partycji. Razem obiekt PartitionKey i RowKey jednoznacznie identyfikują każdą jednostkę w tabeli.

Klucz wiersza jest wartością ciągu, która może mieć rozmiar do 1 KiB.

Właściwość należy uwzględnić RowKey w każdej operacji wstawiania, aktualizowania i usuwania.

Właściwość znacznika czasu

Właściwość Timestamp jest wartością, która jest utrzymywana po stronie serwera w celu rekordu czasu ostatniej DateTime modyfikacji jednostki. Usługa Table Service używa Timestamp właściwości wewnętrznie do zapewnienia optymistycznej współbieżności. Wartość właściwości Timestamp jednostki jest zmieniana za każdym razem, gdy jednostka jest modyfikowana. Tej właściwości nie należy ustawiać dla operacji wstawiania ani aktualizowania (wartość zostanie zignorowana).

Właściwość musi być wyrażona w jednym z akceptowanych Timestamp formatów ISO 8601 UTC. Aby uzyskać więcej informacji na temat akceptowanych formatów UTC, zobacz Formatowanie wartości DateTime.

Typy właściwości

Usługa Table Service obsługuje podzbiór typów danych zdefiniowanych przez specyfikację protokołu OData. W poniższej tabeli przedstawiono obsługiwane typy właściwości dla usługi Table Service:

Typ danych protokołu OData Typ środowiska uruchomieniowego języka wspólnego Szczegóły
Edm.Binary byte[] Tablica bajtów o rozmiarze do 64 KiB.
Edm.Boolean bool Wartość logiczna.
Edm.DateTime DateTime Wartość 64-bitowa wyrażona jako Uniwersalny czas koordynowany (UTC). Obsługiwany zakres DateTime rozpoczyna się od północy 1 stycznia 1601 r. (C.E.), UTC. Zakres kończy się 31 grudnia 9999 r. Aby uzyskać więcej informacji, zobacz Formatowanie wartości DateTime.
Edm.Double double 64-bitowa wartość zmiennoprzecinkowa.
Edm.Guid Guid 128-bitowy unikatowy identyfikator globalny.
Edm.Int32 Int32 lub int 32-bitowa liczba całkowita.
Edm.Int64 Int64 lub long 64-bitowa liczba całkowita.
Edm.String String Wartość zakodowana w formacie UTF-16. Wartości ciągów mogą mieć rozmiar do 64 KiB. Należy pamiętać, że maksymalna obsługiwana liczba znaków wynosi około 32 K lub mniej.

Domyślnie właściwość jest tworzona jako typ String , chyba że określisz inny typ. Aby jawnie wpisać właściwość, określ jej typ danych przy użyciu odpowiedniego typu danych OData dla operacji Wstaw jednostkę lub Aktualizuj jednostkę. Aby uzyskać więcej informacji, zobacz Wstawianie i aktualizowanie jednostek.

Usługa Table Service nie utrwala null wartości właściwości. Podczas wykonywania zapytań o jednostki powyższe typy właściwości nie dopuszczają wartości null. Podczas pisania jednostek wszystkie powyższe typy właściwości dopuszczają wartość null, a każda właściwość z wartością jest obsługiwany tak, jakby ładunek nie null zawierał tej właściwości.

Przykłady, które pokazują, jak filtrować według różnych typów właściwości w żądaniu URI zapytania, zobacz Querying Tables and Entities(Wykonywanie zapytań o tabele i jednostki).

Zobacz też