hash - Cassandra,优化 in 子句
问题描述
我正在考虑一种优化子句的方法,例如(1,2,3,....)中的 id?
- 掌握 Murmur3Partitioner 散列函数
- 按产生相同散列的值分组 in-clause,例如“id in (x1, x3, ...)”,其中 x1 和 x3 具有相同的散列。
- 将该查询传递给驱动程序,驱动程序应该能够转到分区所有者节点吗?
那么,如何获取 Cassandra 的 Murmur3Partitioner 散列函数,以便计算代码中的散列值?
这个理论适用于 Cassandra 吗?
解决方案
如果使用令牌感知负载平衡策略,驱动程序已经这样做了。值得注意的是,您不太可能拥有多个具有相同令牌的 id,尽管它们可能是相同的协调者。
一般来说,尝试批量处理这样的请求是个坏主意。除非你有一个不寻常的场景,否则最好只在每个场景上使用 executeAsyncid
并在所有场景上执行。它将更好地在集群中分配和并行化协调负载,并且需要更少的自定义工作。我强烈建议不要过早优化,而是专注于拥有正确的数据模型。如果您需要批量工作,请使用 spark loader/reader 或查看它以获取有效执行此操作的好例子。
推荐阅读
- python - vscode python扩展displayDiscoverStatus [SyntaxError:JSON输入意外结束
- python - 在 product/1/new 的 views.py 中执行 Product 类的 NameError
- python - 在 django 中找到应用主页的 NoReverseMatch
- r - 如何从相异度(戴安娜,集群 R 包)输出中获得最佳集群数量?
- svg - 如何在 SVG 区域中居中文本
- android - 房间只打印第一行
- swift - 在整个应用程序的明暗模式之间切换
- python - 重命名多个文件的用户输入字段
- python - 根据名称和日期时间对象对嵌套列表进行排序
- sql - SQL Selects combine - 第二个选择在 Where 子句中