我正在尝试制作类似于 map reduce 的东西,但没有 hadoop。
我打算使用几个 php 进程,每个进程都执行 $cf->get_range($begin, $end) 并迭代每一行。
但是由于随机分区器,数据没有排序。这意味着我无法真正选择好的 $begin、$end 变量,并且很难并行启动 30-40 个进程。
Cassandra 通过 token 支持 get_range,但在 phpcassa 中没有公开。
我有几种可能性,但不喜欢它们,因为它们看起来并不专业:
- 将所有键放在单行上,然后使用 CoulumnSlice() + multiget() 。
- 将所有键放在单行上,但要使用它们的 MD5 值。然后通过 MD5 值获取 key,并做 get_range()
- 用二级索引做类似的事情
- 导入 Redis 中的所有密钥。