Подтвердить что ты не робот

Сравнение запросов Cassandra CQL и Spark/Shark против Hive/Hadoop (версия DSE)

Я хотел бы услышать ваши мысли и впечатления об использовании CQL и в операторе запросов в памяти Spark/Shark. Из того, что я знаю, процессор CQL работает внутри JVM Cassandra на каждом node. Обработчик запросов Shark/Spark, подключенный к кластеру Cassandra, запускается снаружи в отдельном кластере. Кроме того, Datastax имеет версию DSE Cassandra, которая позволяет развернуть Hadoop/Hive. Вопрос в том, в каком случае мы могли бы выбрать конкретное решение вместо другого.

4b9b3361

Ответ 1

Я поделюсь несколькими мыслями, основанными на моем опыте. Но, если это возможно, сообщите нам о вашем прецеденте. Это поможет нам лучше ответить на ваши запросы.

1- Если у вас будет больше записей, чем чтений, Cassandra, очевидно, является хорошим выбором. Сказав это, если вы исходите из фона SQL и планируете использовать Cassandra, то вы обязательно найдете CQL очень полезным. Но если вам нужно выполнять такие операции, как JOIN и GROUP BY, хотя CQL решает примитивные примеры использования GROUP BY через время записи и компактные временные сортировки и реализует отношения "один ко многим", CQL не является ответом.

2- Spark SQL (ранее Shark) работает очень быстро по двум причинам: обработка данных и планирование данных в памяти. Обработка в памяти делает ее примерно на 100 раз быстрее, чем улей. Как и Hive, Spark SQL обрабатывает файлы данных с большими объемами данных очень хорошо и до 10 раз быстрее благодаря запланированным конвейерам. Ситуация переключается на выгоду Spark SQL, когда присутствуют несколько конвейеров данных, таких как filter и groupBy. Пойдите для этого, когда вам нужны специальные запросы в режиме реального времени. Не подходит, когда вам нужны длительные рабочие задания по гигантским объемам данных.

3- Hive - это в основном хранилище, которое работает поверх существующего кластера Hadoop и предоставляет вам SQL-интерфейс для обработки ваших данных. Но Hive не подходит для потребностей в реальном времени. Он лучше всего подходит для автономной пакетной обработки. Не нуждается в дополнительной инфраструктуре, поскольку он использует базовую HDFS для хранения данных. Пойдите для этого, когда вам нужно выполнить такие операции, как JOIN, GROUP BY и т.д. В большом наборе данных и для OLAP.

Note : Spark SQL эмулирует поведение Apache Hive поверх Spark, поэтому он поддерживает практически все функции Hive, но потенциально быстрее. Он поддерживает существующий язык запросов Hive, форматы данных Hive (SerDes), пользовательские функции (UDF) и запросы, вызывающие внешние скрипты.

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

Надеюсь, что это ответит на некоторые ваши запросы.

P.S.: Этот ответ основан только на моем опыте. Комментарии/исправления приветствуются.