【发布时间】:2020-09-27 09:59:16
【问题描述】:
我对 Cassandra 数据库很陌生。我有一个关于使用 cassandra 的问题。
表结构如下:-
表名称:- 产品详细信息。
ProductFamily 文本,
访问组文本,
产品详情图
((ProductFamily), AccessGroup) 主键
数据关系:-
对于 1 个产品系列,我们有多个访问组,每个访问组在 Map 中都有产品详细信息。很可能 1 个产品详细信息存在于所有访问组或某些访问组中。
场景 1:-
- 我们收到一个仅包含 ProductId 和产品系列的删除事件。
我们的实现:-
从数据库中获取产品系列的所有访问组。
对于每个访问组,点击数据库获取地图,然后我们检查它是否有特定的productid作为地图键。
如果是,则将该 accessgroup -> productid (key,value) 对保存在内存中。
最后,准备批处理语句删除访问组的所有产品id,因为我们的分区键相同。
注意 - 最大。我们在一个地图中有 15-20 个项目和一个产品系列的 8-10 个访问组。
.
问题:-
能否告诉我我是否遵循了正确的批量删除方法?
如果我们在一天内收到数千个此类事件,这种方法是否有效?
提前致谢。
【问题讨论】:
-
“点击数据库获取地图”是什么意思?您是否为同一张表发送另一个选择语句?您可以选择第一个查询中的所有列来避免这种情况
-
是的,另一个选择语句为每个产品系列和访问组获取地图。在第一个选择中,我们只获取 2 列(产品系列和访问组)
-
您可以测试与单个查询相比,该方法是否具有更好的结果以获取所有 3 列。
标签: c# datastax-enterprise cassandra-3.0