Мне нужны детали как с точки зрения производительности, так и с запросами, я узнал от сайт, что только ключ может быть задан при использовании columnfamily, если да, что бы вы предложили для моего ключевого пространства, мне нужно использовать группу by, order by , count, sum, ifnull, concat, join и несколько раз вложенные запросы.В чем разница между созданием таблицы и созданием columnfamily в Cassandra?
ответ
Чтобы ответить на исходный вопрос, который вы задали: семейство столбцов и стол - одно и то же.
- Название "column family" использовано в старших Thrift API.
- Название «таблица» используется в новее CQL API.
Более подробную информацию о API, можно найти здесь: http://wiki.apache.org/cassandra/API
Если нужно использовать «группу по, порядке, граф, сумма, IFNULL, CONCAT, присоединяется и несколько раз вложенных запросов ", как вы заявляете, то вы, вероятно, не хотите использовать Cassandra, поскольку она не поддерживает большинство из них.
CQL поддерживает COUNT
, но только до 10000. Он поддерживает ORDER BY
, но только при кластеризации ключей. Остальные вещи, о которых вы упоминаете, вообще не поддерживаются.
Семейство колонок несколько связано с таблицей реляционной базы данных с различиями в распределении и, возможно, даже идеалистическим характером.
У вас есть пользовательский объект, который может содержать 15 столбцов, в реляционной базе данных вы можете разделить столбцы на структуру с небольшим родством на основе столбца, которую все мы знаем как Table. В распределенной db, такой как Cassandra, вы сможете объединить все эти записи таблиц в одну длинную строку, поэтому, если вы будете использовать менеджер профилировщика/db, вы увидите одну таблицу с 15 столбцами вместо 2/3 таблиц. Еще одна интересная вещь заключается в том, что каждое семейство столбцов записывается в разные узлы, возможно, на разных кластерах и распознается ключом строки, что означает, что у вас будет один ключ для всех семейств столбцов и не потребуется поддерживать ПК или FK для каждой таблицы и поддерживать отношения между ними с отношениями 1-1, 1-n, nn. Легко!
Направить документ: https://cassandra.apache.org/doc/old/CQL-3.0.html
Он указывает, что LRM в CQL поддерживает ключевое слово TABLE, где ColumnFamily поддерживается.
Это доказательство того, что TABLE и COLUMNFAMILY являются синонимами.
В кассандре нет разницы между таблицей и columnfamily. они - одна концепция.
- 1. В чем разница между созданием и созданием! в рельсах
- 2. В чем разница между созданием и новым?
- 3. Разница между созданием данных и созданием объекта
- 4. Разница между повторным созданием и повторным созданием процесса в android
- 5. Swift - разница между созданием уровня класса и созданием уровня метода
- 6. В чем разница между первой блокировкой и созданием lock_guard (принятие_lock) и созданием unique_lock (defer_lock) и блокировки?
- 7. В чем разница между посещением, созданием экземпляров и объявлением модуля?
- 8. SharedAccessBlobPermissions - в чем разница между добавлением, созданием и записью?
- 9. В чем разница между «асинхроннымFetchRequest» и «созданием частного контекста»?
- 10. В чем разница между созданием веб-приложения и веб-сайта?
- 11. В чем разница между автоустановкой и созданием объекта?
- 12. В чем разница между присваиванием и созданием экземпляра строки?
- 13. В чем разница между #define и созданием обычного типа?
- 14. Разница между созданием и рендерингом в Enyo
- 15. В чем разница между созданием файла с fopen и созданием файла с заголовками
- 16. В чем разница между созданием переменной struct сразу и созданием переменной позже?
- 17. Разница между scanf и созданием FileHandler
- 18. разница между созданием JavaScript объектов
- 19. Разница между повышением и созданием объектов-потомков
- 20. Java; Разница между созданием Thread
- 21. В чем разница между созданием объекта этими двумя способами?
- 22. Разница между созданием объекта и активацией класса
- 23. Разница между .click() и созданием события мыши?
- 24. Разница между созданием переменной экземпляра и созданием нового объекта в Java?
- 25. Rails: Разница между созданием и новыми методами в ActiveRecord?
- 26. Разница между созданием папки и созданием проекта в CRXDE Lite в CQ5
- 27. Разница между созданием модели данных сущности в EF4 и EF6
- 28. Разница в производительности между созданием замыкания и some_func.bind (this)
- 29. Разница между созданием массива в конструкторе и объявлением в C++
- 30. Разница между созданием нового списка мутацией существующего
Не совсем верно, что подсчет поддерживается только до 10 000. Он работает до предела запроса (который по умолчанию равен 10 000, но может быть явно определен). При этом вы, вероятно, не должны использовать его по соображениям производительности. – Aurand
Привет, я ссылался на эту ссылку http://maxgrinev.com/2010/07/12/do-you-really-need-sql-to-do-it-all-in-cassandra/, но группа по ошибке получает ошибку для меня в cqlsh> выберите count (*) из группы event_log по дате, я узнал, что вставка данных в cassandra намного быстрее, чем mysql - это так? – kumar
Это потому, что 'group by' недействителен CQL. Вы не можете запускать произвольные SQL-запросы и ожидать, что они будут работать. – Aurand