2015-01-12 17 views
0

Мне нужно создать таблицу, в которой хранится большое количество данных (например, 400 столбцов и от 5.000.000 до 40.000.000 строк). Существует счетчик «счетчик», который рассчитывается от 1 вверх. Сейчас это мой основной ключ. Другие переменные - это тип int, float и varchar и повторяются.Cassandra range queries cql

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

В этой таблице я хочу выполнить некоторые запросы диапазона. Запросы должны быть такими:

Счетчик SELECT, val1, val2, val3 FROM table WHERE counter> 1000 AND counter < 5000;

Также будут другие фильтры-параметры:

... И val54 = 'OK';

Я думаю, что это проблема в Кассандре, потому что «счетчик» - это ПК. Я попробую запустить функцию token(), но я думаю, что это будет медленным.

Прямо сейчас я изучаю моделирование данных в Кассандре, но надеюсь, что кто-то, кто имеет опыт работы в Кассандре, получил некоторые подсказки для меня, например, как организовать стол и сделать запросы возможными и быстрыми? Возможно, только некоторые темы, которые я должен изучить или ссылки, которые мне помогут.

Иметь хороший день, Фридриха

+0

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

+0

Спасибо за ваш ответ. Будет ли запрос возможен или проще, если я буду использовать временные ряды? Я не вижу разницы, но это было бы возможно. – Friedrich

+0

Можно ли разместить данные только в одном разделе и выполнить запросы? Мое требование: я хочу создать базу данных в Cassandra и MSSQL, а затем сравнить некоторые запросы, даже если это проблема в Cassandra. Я хотел бы услышать ваш ответ! – Friedrich

ответ

1

Это звучит как плохой прецедент для Кассандры.

Во-первых, запросы диапазона не поощряются в Кассандре. Это связано с тем, что диапазон не может быть разрешен без посещения каждого узла в кластере.

Во-вторых, вы не можете смешивать столбец типа счетчика с другими типами столбцов. Для данной таблицы он может иметь (и только иметь) столбцы счетчика или иметь все столбцы без учета.

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

+0

Я думаю, что это может быть нормально, если я просто запрошу значение счетчика. Итак, если я создам раздел вокруг счетчика, запрос будет возможен? Как это сделать? Можете ли вы рассказать мне о шагах или дать мне ссылку? Я думаю, что я использовал неправильное слово, я не имел в виду тип счетчика, это просто имя значения целочисленного типа в моей базе данных. Я изменю это запутанное имя. Спасибо за помощь! – Friedrich