Udostępnij za pośrednictwem


Omówienie modelu danych usługi Table Service

Usługa Table Service oferuje magazyn ustrukturyzowany w formie 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 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 uzyskanie 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ą, parą typed-value, 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ą wymusić schemat 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ą zaczynać się od znaku liczbowego.

  • Nazwy tabel są bez uwzględniania 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 są niewrażliwe na wielkość liter, gdy są używane.

Nazwy właściwości

Nazwy właściwości to ciągi z uwzględnieniem wielkości 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. Te identyfikatory mogą nie być używane 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 klienta 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, chociaż 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.), są również niedozwolone. Aby uzyskać reguły dotyczące ciągów 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 systemu 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 i PartitionKeyRowKey. Serwer zarządza wartością Timestamp, której nie można zmodyfikować.

Niedozwolone znaki w polach kluczy

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

  • Znak ukośnika do przodu (/)

  • Znak ukośnika odwrotnego (\)

  • Znak numeru (#)

  • Znak znaku 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 z U+007F do U+009F

Właściwość PartitionKey

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 1024 znaków.

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

Właściwość RowKey

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 i RowKey unikatowo zidentyfikuj PartitionKey każdą jednostkę w tabeli.

Klucz wiersza to wartość ciągu, która może mieć rozmiar do 1024 znaków.

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

Właściwość sygnatury czasowej

Właściwość Timestamp jest wartością utrzymywaną DateTime po stronie serwera, aby zarejestrować czas ostatniej modyfikacji jednostki. Usługa Table service używa Timestamp właściwości wewnętrznie, aby zapewnić optymistyczną współbieżność. Wartość Timestamp właściwości dla jednostki jest rozwijana za każdym razem, gdy jednostka jest modyfikowana. Ta właściwość nie powinna być ustawiana w operacjach wstawiania lub aktualizowania (wartość zostanie zignorowana).

Właściwość Timestamp musi być wyrażona 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ż