向 Azure 表存储中的同一键添加多个值

Posted

技术标签:

【中文标题】向 Azure 表存储中的同一键添加多个值【英文标题】:Adding multiple values to the same key in Azure Table storage 【发布时间】:2022-01-22 18:38:16 【问题描述】:

我期待使用 Azure 表存储构建一个小型非 SQL 数据库。

我对同一个行键有多个值。有没有办法在同一个键上添加多个值,例如

PartitionKey : Qradar
RowKey : CP-WIN-08
payload : 'test1' , 'test2' , test3 ..... , testn 
log source : 'log1' , 'log2'

最好的问候。

【问题讨论】:

【参考方案1】:

我建议将它们存储为具有不同 RowKey 的单独实体,而是将第二部分添加到 RowKey 以使其唯一。第 2 部分可以是数据中具有适当唯一性的自然部分,或者是时间戳或 Guid 之类的东西。

例如

PK: Qradar
RowKey: CP-WIN-08_test1
Payload: 'test1'
LogSource: 'log1'

PK: Qradar
RowKey: CP-WIN-08_test2
Payload: 'test2'
LogSource: 'log2'

要查询 CP-WIN-08 的所有行,您可以执行“介于”查询 - 实质上是查找分区中 RowKey 以“CP-WIN-08”开头的所有行。

如果有真正的原因需要向同一个 RowKey 添加多个,则可以只使用一个属性“Data”并将数据序列化为 JSON 字符串。但我会质疑这样做是否有正当理由。

【讨论】:

感谢帮助,将数据序列化为 JSON 字符串的方法是什么 例如JsonConvert.SerializeObject - newtonsoft.com/json/help/html/… - 你必须在退出时反序列化它,另外你必须小心你不会超过实体大小限制(1MB)或实体属性大小限制(64KB)。因此,出于这些原因,我建议使用多行。

以上是关于向 Azure 表存储中的同一键添加多个值的主要内容,如果未能解决你的问题,请参考以下文章

向 Azure 数据工厂中的表添加新列

SQL - 如何向单行添加多个值?

Azure(PowerShell)如何向多个现有的网络安全组(源地址前缀字段)添加额外的 IP?

如何向 Azure 存储 Blob 上传添加身份验证

使用 SQL 向 MS Access 中的多个表添加列

Azure 表存储:是不是可以使用与添加两列值的结果进行比较的查询条件?