В чем разница между созданием таблицы и созданием семейства столбцов в Cassandra?

Мне нужны подробности как с точки зрения производительности, так и с точки зрения запросов, я узнал на каком-то сайте, что при использовании семейства столбцов может быть указан только ключ, если да, что бы вы предложили для моего пространства ключей, мне нужно использовать group by , порядок, количество, сумма, ifnull, concat, соединения и иногда вложенные запросы.


person kumar    schedule 16.09.2013    source источник


Ответы (6)


Чтобы ответить на исходный вопрос, который вы поставили: семейство столбцов и таблица - это одно и то же.

  • Название «семейство столбцов» использовалось в более ранней версии Thrift API.
  • Имя "таблица" используется в более новом CQL API.

Дополнительную информацию об API можно найти здесь: http://wiki.apache.org/cassandra/API.

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

CQL поддерживает COUNT, но только до 10000. Он поддерживает ORDER BY, но только для ключей кластеризации. Другие вещи, которые вы упомянули, вообще не поддерживаются.

person Ike Walker    schedule 16.09.2013
comment
Не совсем верно, что количество поддерживается только до 10 000. Он работает до предела запросов (который по умолчанию равен 10 000, но может быть определен явно). При этом вы, вероятно, не должны использовать его по соображениям производительности. - person Aurand; 17.09.2013
comment
Привет, я сослался на эту ссылку maxgrinev.com/2010/07/12/, но группа получает ошибку для меня в cqlsh›выберите количество (*) из группы событий_журнала по дате; я узнал, что вставка данных в cassandra намного быстрее, чем mysql это так? - person kumar; 17.09.2013
comment
Это потому, что group by не является допустимым CQL. Вы не можете просто запускать случайные операторы SQL и ожидать, что они сработают. - person Aurand; 17.09.2013
comment
@Aurand после долгого понимания модели Cassandra мы завершили использование эластичного поиска (lucene) в качестве вторичного уровня хранения для всех моих агрегатных функций, группировки и упорядочения по функциям. по-прежнему вложенный запрос не поддерживает много в ES, все в порядке иметь в своем производстве. - person kumar; 12.08.2014
comment
Неработающие ссылки: Thrift API, CQL API, wiki.apache.org/cassandra/API . Некоторые возможные новые: Синтаксис CQL, API драйверов - person Curtis Yallop; 20.05.2020

В cassandra нет разницы между таблицей и семейством столбцов. они являются одним понятием.

person Prijecone    schedule 06.03.2018

Обратитесь к документу: https://cassandra.apache.org/doc/old/CQL-3.0.html

Он указывает, что LRM CQL поддерживает ключевое слово TABLE везде, где поддерживается COLUMNFAMILY.

Это доказательство того, что TABLE и COLUMNFAMILY являются синонимами.

person user2250246    schedule 16.02.2017

Для Cassandra 3+ и cqlsh 5.0.1

Чтобы проверить, введите приглашение cqlsh в пространстве ключей (ksp):

CREATE COLUMNFAMILY myTable (
     ...  id text,
     ...  name int
);

И введите desc myTable.
Вы увидите:

CREATE TABLE ksp.myTable (
      ...  id text,
      ...  name int
);

Это синонимы, и Cassandra по умолчанию использует таблицу.

person gavin olsen    schedule 28.02.2020

вот небольшой пример, чтобы понять концепцию. Ключевое пространство — это объект, который содержит семейства столбцов, определяемые пользователем типы.

Создайте университет пространства ключей с replication={'class':SimpleStrategy, 'replication_factor': 3};

создать таблицу University.student (прокрутить первичный ключ, текст отдела, текст имени, целое число семестра)

«Создать таблицу», таблица «Студент» будет создана в пространстве ключей «Университет» со столбцами RollNo, Name и dept. RollNo — первичный ключ. RollNo также является ключом раздела. Все данные будут в одном разделе.

Ключевые аспекты при изменении Keyspace в Cassandra

Имя пространства ключей: имя пространства ключей нельзя изменить в Cassandra.

Имя стратегии: название стратегии можно изменить, указав новое имя стратегии.

Коэффициент репликации. Коэффициент репликации можно изменить, указав новый коэффициент репликации. DURABLE_WRITES: значение DURABLE_WRITES можно изменить, указав значение true/false. По умолчанию это правда. Если установлено значение false, никакие обновления не будут записываться в журнал коммитов и наоборот.

Выполнение: вот снимок выполненной команды Alter Keyspace, которая изменяет стратегию пространства ключей с SimpleStrategy на NetworkTopologyStrategy и коэффициент репликации с 3 на 1 для DataCenter1.

person arnav    schedule 15.02.2021

Семейство столбцов несколько связано с таблицей реляционной базы данных, с различиями в распределении и, возможно, даже идеалистическим характером.

Представьте, что у вас есть пользовательский объект, который может содержать 15 столбцов, в реляционной базе данных вы можете разделить столбцы на структуру на основе небольших связанных столбцов, которую мы все знаем как таблицу. В распределенной базе данных, такой как Cassandra, вы сможете объединить все эти записи таблиц в одну длинную строку, поэтому, если вы будете использовать менеджер профилей/базы данных, вы увидите одну таблицу с 15 столбцами вместо 2/3 таблиц. Еще одна интересная вещь заключается в том, что каждое семейство столбцов записывается в разные узлы, возможно, в разные кластеры, и распознается по ключу строки, а это означает, что у вас будет один ключ для всех семейств столбцов, и вам не нужно будет поддерживать PK или FK для каждой таблицы и поддерживать отношения между ними с отношениями 1-1, 1-n, n-n. Легко!

person Nativ    schedule 16.02.2015