Azure Table Storage(Azure 資料表儲存體):主要適用於存取非關連式的資料
也就是所謂NoSQL的Schema Free種類的資料
主要是key-value pair形式存取
常見的NoSQL基本上就大方向分為:
基於memory型態的Redis
Redis開發學習(1)_Windows上安裝教學_VisualStudio C# StackExchange.Redis套件配置教學
https://coolmandiary.blogspot.com/2019/04/redis1windowsvisualstudio-c.html
Redis開發學習(2)_In-memory database跟On Disk(Relational) database比較_cli的基礎20大指令(資料型態介紹)
https://coolmandiary.blogspot.com/2019/04/redis2in-memory-databaseon.html
基於檔案型態的MongoDB
MongoDB教學(一)_下載安裝_基礎指令
https://coolmandiary.blogspot.com/2021/01/mongodb.html
那Azure本身提供Table Storage的schemaless design雲服務
基本上特性是在於
table集合是由許多entity組成而每一筆entity都有各自不同(不統一的)的properties
(備註: Entity是被很多properties所組成的,每一個property 是採用key(name)-value pair的Entity。)
Azure Table Storage基本上會分為
Partition Key:字串型態,用於做辨識這個entity是位於哪個table集合。
Row Key:字串型態,則是一種unique的唯一識別用途
Partition Key會依附Row Key藉此來做為唯一識別的組合於table集合中進行辨別。
(PartitionKey 值會識別特定的分割,而 RowKey 值會識別該分割中實體的子集。)
為大量讀取應用程式中的查詢進行設計。當您在設計資料表時,請先考量您將執行的查詢 (特別是無法容忍延遲的查詢),然後再考量更新實體的方式。 透過這樣的方式,通常可造就一個有效率且高效能的解決方案。
在查詢中同時指定 PartitionKey 和 RowKey。像這樣的「點查詢」是最有效率的資料表服務查詢。
考慮儲存實體的重複複本。資料表儲存體成本較低,故請考慮使用不同索引鍵多次儲存相同的實體,讓查詢更有效率。
考慮反正規化您的資料。資料表儲存體成本較低,故請考慮將您的資料反正規化。 例如儲存摘要實體,可讓彙總資料的查詢只需存取單一實體。
使用複合索引鍵值。您所擁有的索引鍵只有 PartitionKey 和 RowKey。 例如,使用複合索引鍵值啟用替代的實體索引鍵式存取路徑。
使用查詢投影。您可以使用僅選取所需欄位的查詢,降低透過網路轉送的資料量。
Ref:
https://learn.microsoft.com/zh-tw/azure/storage/tables/table-storage-overview
https://learn.microsoft.com/zh-tw/azure/storage/tables/table-storage-design-guidelines?source=recommendations
https://learn.microsoft.com/zh-tw/azure/storage/tables/table-storage-design-for-query#how-your-choice-of-partitionkey-and-rowkey-impacts-query-performance
https://learn.microsoft.com/zh-tw/azure/cosmos-db/table/create-table-dotnet?tabs=azure-cli%2Cwindows