2015-12-02 22 views
1

我們正在爲cassandra探索SPARK以克服CQL的限制。Spark對CQL有什麼額外的好處?

我們最初只限於CQL,但在RDBMS上面臨很少的障礙/障礙。僅舉幾例,如下

  1. 爲了比較>(大於)<(小於)上的專欄中,我們被限制在聚集鍵列。即使如果我在羣集中有一列,我仍然應該提供分區密鑰來執行<或>羣集密鑰。
  2. 無法檢查NULL任何列值
  3. 爲了任何一列其他分區鍵查詢,我們必須在該列
  4. ORDER創建指數列這不是一個聚集鍵
  5. GROUP BY限制
  6. 聯接表

我與卡桑德拉一個新手,在重新審視我的架構往往是由於限制結束。

因此,與HDFS的HIVE/PIG類似,Spark對CQL有什麼額外的好處?

回答

2

CQL不是SQL的替代品。它真的是用於從少數(通常是一個)分區鍵中提取值,正如您所指出的那樣,它不會進行任何聚合,分組,分類非常有限等(儘管Cassandra 3.0將具有UDF和UDA) 。

這裏是提供什麼火花放電CQL:

  • 一般彙總和查詢通過DataFrames和SQL,包括聯接,GROUP BY,ORDER BY,和UDF
  • 速度明顯加快查詢 - 數量級的速度更快 - 如果你使用緩存在內存中的數據卡珊德拉sqlContext.cacheTable
  • 集成機器學習,統計,圖形處理,以及幾乎任何類型的分佈式計算,你可以想像,使用Scala中,使用Java,Python,和R的API
  • 阿維爾兩者均在進出卡桑德拉表和許多其他數據源ETL - 今天包括各種HDFS格式,亞馬遜S3,的DBMS,蒙戈,和大多數其他數據庫

Spark是真正從CQL一個完全不同的野獸。它提供了大量數據的複雜分析,而CQL則沒有。但是,也有一些限制:

  • Spark對高度併發查詢並不擅長。爲此,您希望簡化查詢並使用CQL來提取非常少量的數據。在星火
  • 緩存數據不HA和你寫新的數據到C *

如果你想在卡桑德拉非常快的分析查詢與更新的支持,無需緩存不能更新,然後檢查了我項目http://github.com/tuplejump/FiloDB