当前位置: 首页 > 知识库问答 >
问题:

Azure CosmosDb中分区密钥的使用

田修为
2023-03-14
    null
  • 关于如何管理分区密钥的依赖关系,您有什么建议吗?或者我没有根据cosmosdb最佳实践以最佳方式对数据层建模?

共有1个答案

公良鸿风
2023-03-14

如果分区键是作为过滤器谓词(where)发送的,Linq可能能够推断出它,这就是为什么您不需要指定它。但是如果您不传递它,Linq会很高兴地运行扇出查询,当大规模执行时,扇出查询速度慢且效率低,在高请求量时肯定会避免。

存储的procs的作用域为分区键,因此需要传递它。

如果在这里执行查询,我不会使用存储过程,因为它们只在主副本上执行,所以只能访问所提供吞吐量的1/4。使用SDK的常规查询可以访问4个副本中的任何一个,从而更好地利用吞吐量。这对于高并发性查询尤其重要,但无论您的目标是什么,都应该是高效的。

 类似资料:
  • 参考文献: https://docs.datastax.com/en/cql/3.1/cql/ddl/ddl_compound_keys_c.html Cassandra中分区键、复合键和聚类键的区别?

  • 我正在尝试将以下结构存储在卡桑德拉中。 上面的大多数查询是 这就是为什么将()设置为主键很有用的原因。 根据docu,Cassandra的默认分区键是主键的第一列-在我的例子中是,但我想在Cassandr集群上均匀分布数据,我不能允许一个中的所有数据只存储在一个分区中,因为有些商店有10M条记录,有些只有1k条记录。 我可以设置()作为分区键,然后我可以达到Cassandra集群中记录的统一分布。

  • 我正在学习Cassandra,并有一个关于分区/集群键的问题。 我有一个表,存储数据的股份,如行业的分支,最近6/12个月的业绩,名称等。 该表如下所示: 多谢了,伙计们

  • 我的主要问题是用复合分区键对表上的Cassandra resultset进行分页。然而,我试图用一个简单的场景来缩小范围。喂,我有桌子, 我有一个数据, 我的模式使用默认的分区器(Murmur3Partitioner)。这是完全可以实现的吗?

  • 我有一个Azure CosmosDB SQP API帐户,其中包含一个容器“EmployeeContainer”,分区键为“PersonID”。我在这个容器中有三种不同类型的集合。它们的模式如下所示: 部门-雇员 如何将数据存储在逻辑分区中?PersonId是分区键,所有集合中都有PersonId。那么,人员id为“p1241234”的人员集合中的文档和人员id为“p1241234”的人员-部门集