【问题标题】:Is the Azure CloudTable column limit per entity, or for the entire table?Azure CloudTable 的列限制是每个实体还是整个表?
【发布时间】:2020-08-09 22:29:49
【问题描述】:

表服务文档指出,一个实体最多可以有 252 个自定义属性(即列)。此限制适用于每个实体,还是对表中的所有唯一列强制执行?

不切实际的例子来证明这一点:实体A可以有A1到A252和实体B,B1到B252作为一列吗?

来自docs的相关引用:

一个实体最多可以有 255 个属性,包括下一节中描述的 3 个系统属性。因此,除了 3 个系统属性之外,用户还可以包含最多 252 个自定义属性。实体属性中所有数据的总大小不能超过 1 MiB。

【问题讨论】:

    标签: azure azure-table-storage


    【解决方案1】:

    每个表格项(例如 entity)总共可以有 255 个属性,正如文档所指出的那样。这是每个实体。没有定义的模式(取决于您在每个实体中存储的内容)。每个实体的属性(除了常见的 3 个属性)不依赖于其他实体或与其他实体有任何关系。随意为每个实体存储一组不同的 252 个属性。

    每个实体的大小限制与实体中的属性数量无关。

    【讨论】:

    • 谢谢,这是否意味着列名是按实体存储的,或者表是否以某种方式保留了列 id 实体使用的索引并防止存储重复的 id?
    • 无主索引。唯一的索引属性是您的分区键 + 行键。这就是为什么搜索其他属性需要一段时间的原因,如果您有大量数据并尝试进行分区扫描或表扫描。
    • 我猜索引这个词有误导性。我并不是说这些值被编入索引,而是键/列以某种方式被编入索引。例如。如果我的列名是 255 个字节,是否每个使用该列的实体都占用 255 个字节作为“键”,或者表是否保留对唯一列的引用?
    • 抱歉没有更清楚。没有跨表的唯一列或列引用的此类引用(除了 rowkey/partitionkey/timestamp)。实体是独立的事物。您可以在一个实体中使用属性a1,在另一个实体中使用a1,并存储完全不同的内容。架构管理由您决定。
    猜你喜欢
    • 2014-09-02
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多