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

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

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

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

最好的问候。

【问题讨论】:

    标签: azure azure-functions azure-table-storage


    【解决方案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)。因此,出于这些原因,我建议使用多行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 2022-01-27
    • 1970-01-01
    • 2017-07-25
    • 2018-10-25
    • 1970-01-01
    相关资源
    最近更新 更多