2017-05-09 22 views
0

我正在設計一個Web應用程序 - 儀表板 - 以在表存儲的UI上顯示data \ graph。用於處理Windows Azure表存儲帳戶中的多參數詳細信息的設計

我們現在已經有大約20個參數可以進入表格存儲 - 每個參數都有一個相關的值,質量& time_Received與它關聯。

這個程序應建在它應該適應當有

  1. 新的參數進入存儲表參與

  2. 新客戶更好的方式 - 這意味着存儲賬戶可能會有所不同,但與同一個應用程序爲另一個客戶端執行不同參數的類似活動

我的查詢

選項1

我應該對每個參數的一個表(列 - 價值,質量的time_received,PartitionKey,RowKey,時間戳) 不同的表名說Param1_Table,Param2_Table ... OR

選項2

我應該有一個表,在同一個表中的所有參數值,(同科拉姆NS =價值,質量的time_received,PartitionKey,RowKey) - 可與PartitionKey(如PARAM _ PK,param2_PK ...)和rowKey

應用程序的預期行爲

並非所有參數進行區分將需要(或允許)由用戶訂閱 系統應該以一種靈活的方式運行,以便用戶可以選擇\取消選擇要顯示的參數。 因此,在某個時間點,配置的系統應顯示Table Storage中所選參數詳細信息的data \ Graph。

回答

0

在Azure Table Service中,對PartitionKey和RowKey值進行索引以創建啓用快速查找的聚集索引,而Azure Table Service不允許我們創建任何輔助索引。所以建議您充分利用PartitionKey和RowKey。我們可以使用這兩列來存儲我們需要頻繁查詢的數據。

例如,如果您只爲所有參數創建一個表,則可以將參數名稱保存爲PartitionKey和參數值作爲RowKey。如果爲每個參數創建一個表,則可以將參數值保存爲PartitionKey,並將其質量保存爲RowKey。爲每個參數創建一個表將使索引一個額外的列(質量)。

爲每個參數創建一個表中的其他優勢

多表幫助你在邏輯上組織你的實體,它可以幫助您使用訪問控制列表管理對數據的訪問,你可以刪除整個表使用單個存儲操作。

優勢爲所有參數

您可以在一個查詢中獲取交叉參數數據創建一個表。如果您需要跨實體類型的原子事務,則需要將這些多個實體類型存儲在同一個表中的同一分區中。

根據您的描述,爲每個參數創建一個表格將更適合您的場景。

在這種情況下爲u提到,如果我在的時間點給參數值的方式爲PartitionKey(PK),以質量爲RowKey(RK)不會它是可能有重複?是那= =>預期的Parameter_Value值將在一個數字範圍內=>預期的質量值是好的,壞的......是這樣嗎?

設置參數值的方式爲PR只是一個演示這表明你選擇一個表或表多之間的差異。

選擇哪個列作爲PK和RK取決於這些列的值組合是否唯一,以及將使用哪些查詢語句來查詢表中的數據。由於PK和RK被索引,所以根據PK和RK的查詢將被有效地執行。例如,如果通常通過參數值和time_Received查詢表,那麼如果這些列的值組合是唯一的,則最好將這些列設置爲PK和RK。

+0

好的,謝謝阿莫爾 根據你的消化,我會去爲每個參數1表。 在這種情況下,正如你所提到的,如果我給param值作爲PartitionKey(PK)和質量RowKey(RK)在時間點不會它可能有重複? 即 =>預計值Parameter_Value將在一個數字範圍內 =>期望的質量價值是好的,壞的... 是這樣嗎? 我正在考慮有如 1-Value 2-Quality 3-Received_Time 4-現有PK 5-現有RK 6-現有時間戳列。 但是,正如你所說PK可以取值爲價值\質量,RK可以擁有一個unique_Val?你的Sugg? – jAntoni

+0

感謝您的反饋。我根據您的評論修改了我的回覆。 – Amor

+0

是的,這是一個好主意。謝謝。 ===> Time_Received對於一個確定的參數將永遠是唯一的======>所以在這種情況下,只需創建一列,每個參數Table的質量就足夠了? =====>值可以進入PK ========>,Time_Received可以進入RK。 ====>時間戳創建時間\更新。 =========>這個結構對於每個參數表都可以嗎? – jAntoni

相關問題