Параллельный get_range() phpcassa
Я пытаюсь сделать что-то похожее на карту уменьшить, но без Hadoop.
Я планирую использовать несколько процессов php, каждый из которых выполняет $cf->get_range($begin, $end), и повторять каждую строку.
Но из-за случайного разбиения данные не сортируются. Это означает, что я не могу выбрать хорошие переменные $ begin, $ end, и мне будет сложно запустить 30-40 процессов параллельно.
Cassandra поддерживает get_range по токену, но он не доступен в phpcassa.
У меня есть несколько возможностей, но они мне не нравятся, потому что они не кажутся непрофессиональными:
- поместите все ключи в одну строку и используйте CoulumnSlice() + multiget() после этого.
- поместите все ключи в одну строку, но с их значениями MD5. Затем по значению MD5 получить ключ, и сделать get_range()
- делать подобные вещи с вторичным индексом
- импортировать все ключи в Redis.