Omówienie modelu danych usługi Table Service

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

Konto magazynu

Konto magazynu jest globalnie unikatową jednostką w systemie magazynu. Konto magazynu jest nadrzędną przestrzenią nazw dla usługi Table Service i jest podstawą autoryzacji. Możesz utworzyć dowolną liczbę tabel na danym koncie magazynu, o ile każda tabela jest unikatowo nazwana.

Konto magazynu musi być zawsze określone w identyfikatorze URI żądania. Podstawowy identyfikator URI umożliwiający uzyskiwanie dostępu do usługi Table Service 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 nazwą, typed-value pair, podobną do kolumny.

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

Nazwy tabel

Nazwy tabel muszą być zgodne z następującymi regułami:

  • Nazwy tabel muszą być unikatowe w ramach konta.

  • Nazwy tabel mogą zawierać tylko znaki alfanumeryczne.

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

  • Nazwy tabel nie są uwzględniane wielkości liter.

  • Nazwy tabel muszą mieć długość od 3 do 63 znaków.

  • Niektóre nazwy tabel są zarezerwowane, w tym "tabele". Próba utworzenia tabeli z zarezerwowaną nazwą tabeli zwraca kod błędu 404 (Nieprawidłowe żądanie).

Te reguły są również opisane przez wyrażenie regularne "^[A-Za-z][A-Za-z-z0-9]{2,62}$".

Nazwy tabel zachowują wielkość liter, z którymi zostały utworzone, ale nie są uwzględniane wielkości liter w przypadku użycia.

Nazwy właściwości

Nazwy właściwości są ciągami uwzględniającymi 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# są nieprawidł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 Table Service.

Ważne

Nazwy właściwości są przekazywane do usługi Table Service w adresie URL. Niektóre znaki muszą być zakodowane procentowo, aby pojawiały się w adresie URL przy użyciu protokołu UTF-8 (preferowane) lub MBCS. To kodowanie odbywa się automatycznie podczas korzystania z bibliotek klienckich usługi Azure Storage. Istnieją jednak pewne znaki, które nie są prawidłowe w ścieżkach adresu URL, nawet w przypadku kodowania. Te znaki nie mogą być wyświetlane w nazwach właściwości. Punkty kodu, takie jak \uE000, choć 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 sterujące (0x00 do 0x1F, \u0081 itp.), również nie są dozwolone. Aby uzyskać reguły rządzące ciągami Unicode w protokole HTTP/1.1, zobacz:

Uwaga

Począwszy od wersji 2009-04-14, usługa Table Service nie obsługuje już dołączania 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 użytkownik może zawierać maksymalnie 252 właściwości niestandardowe, oprócz 3 właściwości systemowych. Łączny rozmiar wszystkich danych we właściwościach jednostki nie może przekraczać 1 MiB.

Właściwości systemu

Jednostka zawsze ma 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 systemowe 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 elementów 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 i RowKey :

  • Ukośnik (/)

  • Znak ukośnika odwrotnego (\)

  • Znak numeru (#)

  • Znak zapytania (?)

  • Znaki sterujące od U+0000 do U+001F, w tym:

    • Znak karty poziomej (\t)
    • Znak kanału wiersza (\n)
    • Znak powrotu karetki (\r)
  • Znaki sterujące 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 posiadających tę samą wartość klucza partycji. Klucz partycji jest unikatowym identyfikatorem partycji w danej tabeli określonej 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ść

Drugą częścią klucza podstawowego jest klucz wiersza określony przez RowKey właściwość . Klucz wiersza jest unikatowym identyfikatorem jednostki w ramach danej partycji. Razem element PartitionKey i RowKey unikatowo 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ą przechowywaną DateTime po stronie serwera w celu zarejestrowania czasu ostatniej modyfikacji jednostki. Usługa Table Service używa Timestamp właściwości wewnętrznie do zapewnienia optymistycznej współbieżności. Wartość Timestamp właściwości dla jednostki jest zwiększana za każdym razem, gdy jednostka jest modyfikowana. Nie należy ustawiać tej właściwości w operacjach wstawiania ani aktualizowania (wartość zostanie zignorowana).

Właściwość musi być wyrażona Timestamp w jednym z akceptowanych 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 podzestaw 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 DateTime zakres rozpoczyna się od 12:00 północy, 1 stycznia 1601 R. (C.E.), UTC. Zakres kończy się na 31 grudnia 9999. Aby uzyskać więcej informacji, zobacz Formatowanie wartości daty/godziny.
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 liczba obsługiwanych znaków wynosi około 32 K lub mniej.

Domyślnie właściwość jest tworzona jako typ String, chyba że określono 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 są niepuste. Podczas pisania jednostek powyższe typy właściwości są dopuszczające wartość null, a każda właściwość z wartością null jest obsługiwana tak, jakby ładunek nie zawierał tej właściwości.

Przykłady pokazujące, jak filtrować według różnych typów właściwości w identyfikatorze URI żądania zapytania, zobacz Wykonywanie zapytań dotyczących tabel i jednostek.

Zobacz też