如果我们只使用CustomerID
作为分区键,我们最终将超过逻辑分区的10GB限制,如果我们使用Eventid
,那么查询将变得低效(将导致跨分区查询和高RU使用率,这是我们希望避免的)。
另一个想法是将文档分组为块。即PartitionKey=int(EventId/PartitionSize)
。这将导致所有客户机访问最新的分区,这可能会导致性能差和节流。
如果我们使用CustomerID
和int(EventId/PartitionSize)
的组合PartitionKey,那么我不清楚如何避免跨分区查询来检索正确的文档集。
澄清几点:
CustomerID
的列表、它们收到的最后一个Eventid
以及要检索的最大记录数来访问事件。EventId
不会很好地执行,因为它会导致跨分区查询(即whereevent>lasteventid
)。所以首先,逻辑分区的大小限制现在已经增加到20GB,请看这里。
您也可以使用EventID作为分区,因为逻辑分区的大小以GB为单位有限制,但逻辑分区的数量没有限制。所以使用EventID很好,如果使用EventID查询,您将得到一个点到点的读取,这是非常快的。现在您提到使用这种方式,您将不得不执行跨分区查询,您能解释一下如何执行吗?
但有几件事要记住,Cosmos DB并不是真正用来存储这种基于日志的数据,因为它将所有东西都存储在固态硬盘中,所以请计算您的1文档大小,以及您在一秒钟内需要存储多少,然后在一天内存储多少,再到在一个月内存储多少。完成后,可以使用TTL从Cosmos中删除,对于长期存储,可以将其存储在Azure BLOB存储中,对于快速检索,可以使用Azure Search在搜索查询中使用CustomerID和EventID查询BLOB中的数据。
巴拉特
我正在学习Cassandra,并有一个关于分区/集群键的问题。 我有一个表,存储数据的股份,如行业的分支,最近6/12个月的业绩,名称等。 该表如下所示: 多谢了,伙计们
现在,如果我再次打开我的应用程序,并通过Azure.iOS框架查询收集文档,它会返回我刚才保存的结果。这让我感到有点莫名其妙。我是不是错过了应用程序中的某些操作,还是所有的MongoDB工具都无法列出文档?该框架的文档相当稀疏,因此希望提供任何帮助。
向表中插入数据,记录中有一个字段涉及到当前记录是当前租户下第几个插入的,也就是顺序码,如何维护这个顺序码,在保证线程安全的情况下,不同租户的记录都保存在同一张表下, 目前的做法是插入数据的时候不插入该字段,获取该表记录列表的时候按照插入时间排序,然后判断对应字段是否为空,如果为空则插入
是否有一种方法可以使用Delphi访问Azure密钥库?我可以使用柏林的data.cloud.azureapi单元访问数据库和blob存储,但想从密钥库中获取数据库连接字符串,但似乎找不到任何用于此操作的代码。
我有几个关于Azure Key Vault的问题,我需要一些技术帮助:链接https://docs.microsoft.com/en-us/Azure/key-vault/general/overview指出,“机密和密钥由Azure保护,使用行业标准算法、密钥长度和硬件安全模块(HSMs)。使用的HSMs经过联邦信息处理标准(FIPS)140-2级验证”。 我想确认这是否适用于秘密,就像适用于密