Порядок ключей кластеризации в Кассандре - PullRequest
0 голосов
/ 25 мая 2018

Итак, у меня есть таблица, которая выглядит следующим образом:

CREATE TABLE schema.table (
  partitionkey int,
  clusterkey text,
  value bigint,
  PRIMARY KEY ((partitionkey), clusterkey)
);

Мы полагаемся на эту таблицу для правильной сортировки по clusterkey для нумерации страниц.
Проблема в том, что при возврате результатов обратноиз Кассандры, похоже, они сортируются на основе их значения ASCII, а не логической сортировки AZ.- это имеет смысл программно, но не логично для человека, который его просматривает.

Так что запрос:
SELECT clusterkey FROM schema.table WHERE partitionkey = 1 ORDER BY clusterkey ASC;
дает результаты слева, когда я ожидаю что-то вроде того, что наright

---------(current)---                ----------(wanted)---
          clusterkey                           clusterkey 
---------------------                ---------------------
       Other capital                      a should be top 
     Starts capital1                        Other capital 
     Starts capital2                      Starts capital1 
     Starts capital3                      starts capital1 
     Starts capital4                      Starts capital2 
        YYYYYYYYYYYY                      Starts capital3
        ZZZZZZZZZZZZ                      Starts capital4 
     a should be top                         YYYYYYYYYYYY 
     starts capital1                         ZZZZZZZZZZZZ 
        zzzzzzzzzzzz                         zzzzzzzzzzzz

Я понимаю, что мы могли бы изменить данные на строчные / UPPERCASE для правильной сортировки, но это изменило бы внешний вид данных.- Что определенно не требуется.

Есть ли возможность изменить метод текущего порядка кластеризации?
- или другой способ логической сортировки?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Кластеризованные столбцы сортируются в лексикографическом порядке, что означает, что заглавные буквы имеют приоритет над строчными.

Порядок, не зависящий от регистра, не поддерживается Cassandra в текущих выпусках, но в сообществе Cassandra требуется улучшение Предоставьте компилятор текста с учетом локали / сопоставления , пока он не получил многовнимание сообщества разработчиков.

0 голосов
/ 25 мая 2018

Нет, невозможно отсортировать регистр без учета регистра, кроме как сделать столбец кластеризации нижним / верхним регистром.Если вас беспокоит внешний вид данных, вы всегда можете оставить неизмененный текст в дополнительном столбце (да, он будет дублировать данные) и показать его пользователю вместо этого столбца кластеризации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...