Azure存储表

时间:2017-08-12 19:03:54

标签: azure azure-table-storage azure-cosmosdb

了解Azure存储表。
对于具有地址和其他字段的人员表, 设置PartitionKey和RowKey以优化这样的查询的最佳方法是什么?

SELECT * FROM {table} 
WHERE
((FIRST_NAME LIKE '%{Name}%'
 OR LAST_NAME LIKE '%{Name}%'
 OR NICK_NAME LIKE '%{Name}%')
AND
 (CITY LIKE '%{Loc}%'
  OR STATE LIKE '{Loc}'
  OR ZIP LIKE '%{Loc}%'))

我正在寻找一种存储大量数据的方法,并能够在保持成本尽可能低的同时快速查询数据。我一直在查看存储表和CosmosDB表。定价方面,看起来CosmosDB对于非常大的表来说可能会变得昂贵。

关于查询,我可以将“City”,“State”,“Zip”作为PartitionKey,将“First_Name”,“Last_Name”和“Nick_Name”作为RowKey。例如:“洛杉矶CA 90045”作为partitionKey,“John Doe JDoe”作为RowKey。我能否快速进行包含洛杉矶和KeySearch for John的PartitionKey搜索?

1 个答案:

答案 0 :(得分:0)

据我所知,Azure存储表的目标是在单个区域(可选的辅助只读区域,但没有故障转移),PK / RK索引和存储优化定价的高容量。

Azure Cosmos数据库表旨在实现高吞吐量(读取和写入的单位数毫秒延迟,支持&lt; 10 ms延迟读取和<99 ms延迟写入,在第99百分位,在任何规模,世界任何地方),全局分布(多个故障转移),SLA支持的预测性能,每个属性/属性的自动索引以及关注吞吐量的定价模型。

定价:

Azure表:

  

LRS首1 TB /月每GB 0.07美元

     

下一个49 TB(1到50 TB)/月每GB 0.065美元

     

访问价格:我们为每10,000笔交易收取0.00036美元。针对存储的任何类型的操作都被视为事务,包括读取,写入和删除。

详细信息请参阅此article

Azure cosmos table api:

  

SSD存储(每GB)0.25美元/月

     

预留RU /秒(每100 RU,最低400 RU)$ 0.008 / hr

详细信息请参阅此article

您可以看到cosmosdb比数据存储的表存储更昂贵。

因此,如果您有大量数据,我建议您选择表存储。

如果您想快速保持数据查询,我建议您选择cosmosdb。

  

关于查询,我可以将“City”,“State”,“Zip”作为PartitionKey,将“First_Name”,“Last_Name”和“Nick_Name”作为RowKey。例如:“洛杉矶CA 90045”作为partitionKey,“John Doe JDoe”作为RowKey。我能否快速进行包含洛杉矶和KeySearch for John的PartitionKey搜索?

据我所知,在查询中指定PartitionKey和RowKey。

这些点查询是最有效的表服务查询。关于如何设计表格,您可以参考此article

因此,如果将“City_State_Zip”设置为PartitionKey,将“First_Name_Last_Name_Nick_Name”设置为rowkey,则这将是点查询。它将是最有效的表服务查询。

注意:表查询不支持like关键字,如果要使用点查询,则需要发送正确的partitionkey和rowkey进行查询。