Ваше решение добавить этот один логический ключ и всегда устанавливать его в "да" в основном создает один огромный раздел со всеми вашими данными.Это редко то, что вы действительно хотите.Если этот один раздел представляет собой все ваши данные, это означает, что даже если у вас есть 10-узловый кластер с 8 ЦП на каждом узле, только 3 ЦП из всех 80 в вашем кластере будут выполнять любую работу (поскольку каждый раздел принадлежитопределенный процессор, и с RF = 3, есть три реплики).
Если вам интересно, почему ваше оригинальное решение не работает, и Сцилла отказалась от «ORDER BY», то проблема в том, что, хотя Scyllaможет сканировать всю таблицу, чтобы найти записи после времени X (вам нужно добавить «РАЗРЕШИТЬ ФИЛЬТР» в запрос), у нее нет эффективного способа сортировать того, что он находит по времени.Внутренне различные разделы сортируются не по ключу раздела, а по «токену», хэш-функции ключа раздела.Это хеширование с его эффектом рандомизации важно для балансировки нагрузки между всеми процессорами в кластере, но не позволяет Scylla (или Cassandra) читать разделы в исходном порядке ключей.
Одна вещь, которую вы можете сделать, это сделатьто, что Алекс предложил выше, является промежуточным звеном между вашей первоначальной настройкой и вашим предлагаемым решением: не иметь один элемент на раздел или все элементы в одном разделе, но что-то посередине: например, представьте, что вваша рабочая нагрузка, каждый день вы собираете 100 МБ данных.Таким образом, вы используете номер дня в качестве ключа раздела (вместо вашего bool).Все данные одного конкретного дня будут находиться в одном разделе. Внутри раздела каждого дня различные записи (строки) будут отсортированы по порядку ключей кластеризации, который будет временем.С помощью этой настройки, чтобы получить все элементы после определенного дня, просто начните запрашивать каждый отдельный день, один за другим.Например, день запроса 134, затем день 135, они 136, затем и т. Д. Внутри каждого дня результаты будут уже отсортированы.Итак, проблема решена.
Этот метод является довольно известным моделированием данных "временных рядов".У Сциллы (и Кассандры) даже есть специальная стратегия уплотнения, настроенная для этого моделирования, TWCS (стратегия уплотнения с временным окном).