cassandra + pig 宽柱

Posted

技术标签:

【中文标题】cassandra + pig 宽柱【英文标题】:cassandra + pig with wide columns 【发布时间】:2012-05-22 21:24:02 【问题描述】:

我目前正在开发一个推荐应用程序,并且我正在使用 cassandra 与 hadoop 和 pig 进行 map/reduce 工作。 为了利用列名属性,我们的团队决定使用无值列和聚合列名来存储数据,例如,特定内容的所有命中都存储在具有单行的列族中,并且每一列都是针对内容使用以下结构:

rowkey = 'single_row' 
    id_content:hit_date, -
    .
    .
    .

使用这种模式,我们可以获得宽行而不是窄行;问题是,我需要如何操作 Pig 中的数据才能使用此模式将数据存储在 cassandra 中?

【问题讨论】:

【参考方案1】:

我不确定您是否使用复合列,或者您是否只是连接 id_content 和 hit_date。

对于普通(即非复合)列,架构为:

(key, (col_name, col_value), ...)

对于复合列,我认为架构如下:

(key, ((col_name_part_1, col_name_part_2), col_value), ...)

此评估(针对复合列)基于阅读在https://issues.apache.org/jira/browse/CASSANDRA-3684 上提交的补丁

【讨论】:

我的方法是连接这些值。 在这种情况下,架构将是:(key, (col_name, col_value), ...) 我将非复合模式添加到答案中以使其更完整。 pig 中的复合列不能像加载一样开箱即用。我必须序列化复合列名的元组才能将其正确存储到 cassandra 中。

以上是关于cassandra + pig 宽柱的主要内容,如果未能解决你的问题,请参考以下文章

当我尝试运行 pig + cassandra 时出现错误?请帮助

将 PIG 与 cassandra 一起使用的限制

使用 pig 将小数导入 cassandra

cassandra安装配置

Cassandra 不使用本机方法

如何使用 Pig 从 Cassandra 加载 CF/TABLE