Cassandra - Hadoop(Pig)集成问题 - 无法过滤属于分区键的列

时间:2013-12-11 02:12:09

标签: hadoop cassandra apache-pig

Hello Cassandra用户,

对于我们的一个新的大数据BI项目,我们使用Apache Cassandra 1.2.10作为我们的主要数据存储,并在Hadoop的支持下进行分析。为了进行原型设计,我们为Apache Cassandra / Hadoop分别提供了1个节点。 Pig是我们选择处理来自C *的数据。

在遇到实际问题之前,对于其中一个CF,主键是复合键。例如:((A,B,C),D)。基于(A,B,C)的文档组合是我们的分区键。

我们正面临着猪与C *交谈的几个问题。最重要的是;

问题1:

我们无法对属于分区键的列应用过滤器。这似乎是C * -Pig集成的基本要求。

示例:

CREATE table myCF(
  colA text,
  colB int,
  colC bigint,
  colD bigint,

  primary key ((colA, colB, colC), colD)
)

Pig-Cassandra查询

  

data = LOAD   'CQL:// myKS / myCF where_clause%3DcolA%3DsomeVal%20于是%20colB%3DsomeVal%20于是%20colC%3DsomeVal'   使用CqlStorage();

异常

  

InvalidRequestException(原因:colA不能被多个限制   关系,如果它包括一个等于)

为了让您对这个问题有更多了解,这里是关于同一主题的jira。 https://issues.apache.org/jira/browse/CASSANDRA-6151

不幸的是,问题的状态通过解决方案解决为“无法修复”。不知道为什么。

因此,我们死在水中。不知道如何继续。

来自社区的人建议使用Pig过滤器。但这似乎不是一个想法,因为我们从Cassandra加载整个数据,然后在处理之前应用过滤器。不是

根据我的理解,如果我们避免按分区键列使用过滤器 在Cassandra查询中,将会跨群集扫描数据。

问题2:

如果二级索引列上只有过滤器,我们会收到超时。

任何人都可以帮助我解决上述问题。

0 个答案:

没有答案