EDIT: Тайлер Hobbs указывает в своем комментарии, что этот ответ не относится к водителю pycassa. По-видимому, он уже заботится обо всем, что я упоминал ниже.
==========
Если ваш вопрос, можно ли выбрать все строки 500M сразу с get_Range(), то ответ «нет», потому что Cassandra будет работать из памяти пытаясь ответить на ваш запрос.
Если у вас есть вопрос, можете ли вы запросить Cassandra для всех строк в партиях по N строк за раз, если случайный разделитель используется, тогда ответ будет «да». Разница в использовании сохраняющего порядок разделителя заключается в том, что вы не знаете, каким будет первый ключ для вашей следующей партии, поэтому вам нужно использовать последний ключ вашей текущей партии в качестве стартового ключа и игнорировать строку при повторении новой партия. Для первой партии просто используйте «пустую» клавишу в качестве ограничений диапазона клавиш. Кроме того, нет способа сказать, насколько вы относились к относительным условиям, просмотрев ключ, который был возвращен, так как порядок не сохраняется.
Что касается количества строк: Начать небольшой. Скажите 10, затем попробуйте 100, затем 1000. В зависимости от количества столбцов, на которые вы смотрите, размеров индекса, доступной кучи и т. Д., Вы увидите заметное ухудшение производительности для одного запроса за пределами определенного порога.
Ральф, ваши точки правильны, когда речь идет о методе '' get_range() 'сырой Thrift', но '' get_range() '' pycassa обрабатывает все эти точки. Он прозрачно разбивает запрос на куски по 1024 строки по умолчанию. Это можно изменить с помощью параметра buffer_size. Он также правильно продвигает start_key для каждого из подзапросов, независимо от разделителя. –