了解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搜索?
答案 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进行查询。