优化在cassandra中存储csv数据的方法,以便快速检索

时间:2014-12-29 12:00:46

标签: csv cassandra

我有一列csv数据,我希望将其存储在apache cassandra中(不是DATASTAX版本)。

例如我的数据将包含:

val3,val1,val2,val4  
val2,val4,val1,val3

我想处理这些数据,并希望以下列方式输出:

 value       position 
   val1         2,3
   val2         3,1 
   val3         1,4
   val4         4,2

请记住,即使在制作二级索引之后,cassandra也不允许join,order by,group by或where子句(> =,< =)。那么,我应该抛弃它吗?

所以,我的问题是人们在cassandra中有效存储csv数据的一般做法是什么?

是否有一个稳定的版本(因为稳定的原因,我试过其中很少但没有用)的hive-cassandra连接器,通过它我们可以实现连接,order by,group by或where子句(> = ,< =)?

1 个答案:

答案 0 :(得分:1)

Cassandra受益于查询驱动的建模。你的疑问是什么?是获取值的索引吗?在这种情况下,请创建一个表格,如:

create table entries(
    value text,
    entry int,
    location int,
    primary key (value, entry))

然后阅读csv并插入表中。然后你可以做

select * from entries where value='val1'

或者,如果您正在寻找任意分析(ala hadoop),我强烈建议使用spark cassandra连接器或使用spark来进行分析查询。您甚至可以使用Spark(甚至Spark Streaming)读取csv文件,并执行sc.SaveToCassandra将结果存储在cassandra表中以便快速查询。

https://github.com/datastax/spark-cassandra-connector