Какие дополнительные преимущества дает Spark по сравнению с CQL?

Мы изучаем SPARK для cassandra, чтобы преодолеть ограничения CQL.

Первоначально мы были ограничены CQL, но столкнулись с несколькими препятствиями/препятствиями при использовании RDBMS. Чтобы назвать несколько, как показано ниже

  1. Для сравнения >(больше чем) и ‹ (меньше чем) в столбце мы ограничены наличием столбцов в ключе кластеризации. Даже если у меня есть столбец в кластеризации, я все равно должен предоставить ключ раздела для выполнения ‹ или > по ключу кластеризации.
  2. Невозможно проверить значение NULL для любого значения столбца
  3. Чтобы запросить в любом столбце другой ключ раздела, мы должны создать индекс для этого столбца.
  4. ЗАКАЗАТЬ по столбцу, который не является КЛЮЧОМ КЛАСТЕРИЗАЦИИ
  5. СГРУППИРОВАТЬ ПО Ограничения
  6. Присоединяйтесь к столам

Я новичок в cassandra и часто пересматриваю свою схему из-за ограничений.

Следовательно, похоже на HIVE/PIG для HDFS. Какие дополнительные преимущества дает Spark по сравнению с CQL?


person Vinod Jayachandran    schedule 02.12.2015    source источник


Ответы (1)


CQL не является заменой SQL. Он действительно предназначен для извлечения значений из нескольких, обычно одного, ключа раздела и, как вы указали, не выполняет никакой агрегации, группировки, очень ограниченной сортировки и т. д. (хотя Cassandra 3.0 будет иметь UDF и UDA) .

Вот что предлагает Spark по сравнению с CQL:

  • Общая агрегация и запросы через DataFrames и SQL, включая JOIN, GROUP BY, ORDER BY и UDF.
  • Значительно более быстрые запросы — на несколько порядков быстрее — если вы кэшируете данные Cassandra в памяти с помощью sqlContext.cacheTable.
  • Интегрированное машинное обучение, статистика, обработка графов и практически любые виды распределенных вычислений, которые вы только можете себе представить, с использованием Scala, Java, Python и R API.
  • Возможность ETL в таблицах Cassandra и из них из многих других источников данных, включая различные форматы HDFS, Amazon S3, СУБД, Mongo и большинство других современных баз данных.

Spark действительно отличается от CQL. Он предлагает сложную аналитику для огромных объемов данных, чего не делает CQL. Однако есть и некоторые ограничения:

  • Spark не подходит для высококонкурентных запросов. Для этого вы хотите, чтобы запросы были простыми и использовали CQL для извлечения очень небольшого количества данных.
  • Кэширование данных в Spark не является HA и не может обновляться при записи новых данных в C*.

Если вам нужны очень быстрые аналитические запросы к Cassandra с поддержкой обновлений и без необходимости кэширования, то посмотрите мой проект http://github.com/tuplejump/FiloDB.

person Evan Chan    schedule 03.12.2015