2015-12-02 2 views
1

Nous explorons SPARK pour cassandra afin de surmonter les limitations avec CQL. Au début, nous étions limités à CQL, mais nous étions confrontés à quelques obstacles/obstacles par rapport au SGBDR. Pour ne citer que quelques-uns comme ci-dessousQuels sont les avantages supplémentaires offerts par Spark sur CQL?

  1. Pour comparer > (supérieur à) et < (Moins) sur une colonne, nous sommes limités à avoir les colonnes de clé Clustering. Même si j'ai une colonne dans Clustering, je devrais toujours fournir la clé de partition pour faire < ou> sur la clé de clustering.
  2. ne peut pas vérifier la valeur NULL sur une valeur de la colonne
  3. Pour interroger sur une colonne autre clé de la partition, il faut créer un index sur cette colonne
  4. ORDER BY d'une colonne qui n'est pas un REGROUPEMENT KEY
  5. GROUP BY limitations
  6. Rejoindre Tables

Je suis un débutant avec cassandra et finissent à revisiter mon schéma souvent en raison des limitations.

Par conséquent semblable à HIVE/PIG pour HDFS, quels avantages supplémentaires Spark donne sur CQL? CQL n'est pas un remplacement pour SQL.

Répondre

2

Il est vraiment conçu pour extraire des valeurs d'une clé de partition, généralement une, et comme vous l'avez souligné, ne fait aucune sorte d'agrégation, de regroupement, de tri très limité, etc. (bien que Cassandra 3.0 aura des UDF et des UDA) .

Voici ce que Spark offre plus CQL:

  • agrégation générale et l'interrogation via DataFrames et SQL, y compris SE JOINT, GROUP BY, ORDER BY et UDFs
  • requêtes beaucoup plus rapide - ordres de grandeur plus rapide - si vous mettez en cache les données Cassandra en mémoire à l'aide sqlContext.cacheTable
  • apprentissage machine intégrée, les statistiques, le traitement graphique, et pratiquement tout type de calcul distribué, vous pouvez l'imaginer, en utilisant Scala, Java, Python, et les API R
  • Abil ité à ETL et de tableaux Cassandra de et à de nombreuses autres sources de données - y compris divers formats HDFS, Amazon S3, DBMSes, Mongo, et la plupart des autres bases de données aujourd'hui

Spark est vraiment une bête complètement différente de CQL. Il offre des analyses complexes sur de grandes quantités de données, ce qui n'est pas le cas de CQL. Cependant, il y a aussi quelques limitations:

  • Spark n'est pas bon pour les requêtes hautement concurrentes. Pour cela, vous voulez garder les requêtes simples et utiliser CQL pour extraire une très petite quantité de données.
  • données Mise en cache dans Spark ne sont pas HA et ne peuvent pas mettre à jour que vous écrivez de nouvelles données en C *

Si vous voulez des requêtes analytiques très rapides sur Cassandra avec le soutien des mises à jour et pas besoin de cache, puis vérifier mon projet http://github.com/tuplejump/FiloDB.