匯出 (0) 列印
全部展開
本主題尚未接受評分 - 為這個主題評分

了解表格服務資料模型

更新日期: 2014年2月

表格服務會以資料表格式提供結構化儲存體。下面各節概述表格服務資料模型。

儲存體帳戶是儲存體系統中全域唯一的實體。儲存體帳戶是表格服務的父命名空間,也是驗證的基礎。您可以在某個儲存體帳戶內建立任意數目的資料表,只要每個資料表的名稱是唯一的即可。

要求 URI 中一定要指定儲存體帳戶。存取表格服務的基底 URI 如下:

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

資料表會將資料儲存為實體集合。實體類似資料列。實體包含主索引鍵和一組屬性。屬性是名稱與具類型值組,類似資料行。

表格服務不會對資料表強制執行任何結構描述,因此同一個資料表中的兩個實體可能會有不同的屬性集。開發人員可以選擇在用戶端上強制執行結構描述。資料表可包含任意數目的實體。

資料表名稱必須符合下列規則:

  • 資料表名稱在帳戶內必須是唯一的。

  • 資料表名稱只能包含英數字元。

  • 資料表名稱的開頭不可以是數值字元。

  • 資料表名稱不區分大小寫。

  • 資料表名稱的長度必須介於 3 到 63 個字元。

  • 某些資料表名稱會加以保留,包括 "tables"。嘗試以保留的資料表名稱建立資料表,會傳回錯誤碼 404 (不正確的要求)。

這些規則也會以規則運算式描述 "^[A-Za-z][A-Za-z0-9]{2,62}$"。

資料表名稱會保留其建立時的大小寫,但在使用時不區分大小寫。

屬性名稱是區分大小寫的字串,其長度上限為 255 個字元。屬性名稱應遵守 C# 識別碼的命名規則。

note附註
根據 XML 規格,某些 C# 識別碼無效。這些識別碼不可用於屬性名稱,因為屬性名稱會在對表格服務的要求中透過 XML 裝載傳送。

Important重要事項
屬性名稱會在 URL 內傳遞至表格服務。某些字元必須使用 UTF-8 (慣用) 或 MBCS 以百分比符號編碼,才能出現在 URL 中。這種編碼會在您使用 Windows Azure .NET 程式庫或建構包含屬性名稱的 Uri 物件時自動發生。不過,某些字元即使經過編碼,也無法在 URL 路徑中使用。這些字元不可以出現在屬性名稱中。字碼指標像是 \uE000 (在 NTFS 檔案名稱中有效) 並不是有效的 Unicode 字元,因此無法使用。此外,某些 ASCII 或 Unicode 字元 (像是控制字元 0x00 到 0x1F、\u0081 等) 也不可使用。如需在 HTTP/1.1 中控管 Unicode 字串的規則,請參閱:

note附註
從 2009-04-14 版開始,表格服務不再支援屬性名稱中包含虛線 (-) 字元。

實體最多可以有 255 個屬性,包括下節所描述的 3 個系統屬性。因此,除了 3 個系統以外,使用者可以加入 252 個自訂屬性。實體屬性中所有資料的大小總和不可超過 1 MB。

實體固定會有下列系統屬性:

  • PartitionKey 屬性

  • RowKey 屬性

  • Timestamp 屬性

資料表中的每個實體都會自動包含這些系統屬性。這些屬性的名稱會加以保留,且無法變更。開發人員負責插入及更新 PartitionKeyRowKey 的值。伺服器會管理 Timestamp 的值,此值無法修改。

下列字元不可在 PartitionKeyRowKey 屬性的值中使用:

  • 正斜線 (/) 字元

  • 反斜線 (\) 字元

  • 數字符號 (#) 字元

  • 問號 (?) 字元

  • 從 U+0000 到 U+001F 的控制字元,包括:

    • 水平索引標籤 (\t) 字元

    • 換行 (\n) 字元

    • 歸位字元 (\r) 字元

  • 從 U+007F 到 U+009F 的控制字元,包括:

表格會加以分割,以支援跨儲存體節點進行負載平衡。資料表的實體是由資料分割所組織。資料分割是擁有相同資料分割索引鍵值的實體連續範圍。資料分割索引鍵是所指資料表內資料分割的唯一識別碼,由 PartitionKey 屬性所指定。資料分割索引鍵會構成實體主索引鍵的第一個部分。資料分割索引鍵可以是大小上限為 1 KB 的字串值。

您必須在每個插入、更新及刪除作業中包含 PartitionKey 屬性。

主索引鍵的第二個部分是資料列索引鍵,由 RowKey 屬性所指定。資料列索引鍵是給定資料分割內實體的唯一識別碼。PartitionKeyRowKey 會共同以唯一的方式識別資料表內的每個實體。

資料列索引鍵是大小上限為 1 KB 的字串值。

您必須在每個插入、更新及刪除作業中包含 RowKey 屬性。

Timestamp 屬性是 DateTime 值,會在伺服器端維護以記錄實體上次修改的時間。表格服務會在內部使用 Timestamp 屬性提供開放式並行存取。Timestamp 值是單純遞增的值,這表示每次修改實體時都將為該實體遞增 Timestamp 的值。插入或更新作業則不應設定這個屬性 (會忽略其值)。

表格服務支援由 OData 通訊協定規格所定義的資料類型子集。下表顯示表格服務所支援的屬性類型:

 

OData 資料類型 Common Language Runtime 類型 詳細資料

Edm.Binary

byte[]

大小上限為 64 KB 的位元組陣列。

Edm.Boolean

bool

布林值。

Edm.DateTime

DateTime

以國際標準時間 (UTC) 表示的 64 位元值。支援的 DateTime 範圍是從西元 1601 年 1 月 1 日午夜 12 點 (C.E.) UTC.開始。此範圍到 9999 年 12 月 31 日結束。

Edm.Double

double

64 位元浮點值。

Edm.Guid

Guid

128 位元全域唯一識別碼。

Edm.Int32

Int32int

32 位元整數。

Edm.Int64

Int64long

64 位元整數。

Edm.String

String

UTF 16 編碼值。字串值大小上限為 64 KB。

根據預設,除非您指定不同的類型,否則屬性會以 String 類型建立。若要明確地輸入屬性,請使用 插入實體 (REST API)更新實體 (REST API) 作業的適當 OData 資料類型來指定其資料類型。如需詳細資訊,請參閱<插入及更新實體>。

如需顯示如何篩選查詢要求 URI 中各種不同屬性類型的範例,請參閱<查詢資料表和實體>。

另請參閱

本文對您有任何幫助嗎?
(剩餘 1500 個字元)
感謝您提供意見
顯示:
© 2014 Microsoft. 著作權所有,並保留一切權利。