【问题标题】:How to set ttl in a column family using hive如何使用 hive 在列族中设置 ttl
【发布时间】:2013-11-26 01:03:45
【问题描述】:

我正在为 Cassandra 使用 Datastax 并在 CFS 之上,我尝试使用 Hive.Cassandra 在插入和更新时在列级别具有 TTL(生存时间)加载数据。我的问题是我们如何实现相同的 TTL当我们使用 Hive 将数据加载到 Column Family 中时。有没有办法指定 ColumnFamily 的 TTL 或从 hive 加载时??

示例(来自 datastax 网站的参考): cqlsh:demodb> 插入用户 (用户名密码) 使用 TTL 86400 的值('cbrown'、'ch@ngem4a');

cqlsh:demodb> 使用 TTL 432000 SET 'password' = 'ch@ngem4a' 更新用户 WHERE user_name = 'cbrown';

注意:要求是在一段时间后清除数据。Cassandra 可以选择使用 TTL 执行此操作,但我正在尝试使用 Hive 加载数据。因此寻找一个选项以在列系列级别指定 TTL 或通过 hive 加载时

【问题讨论】:

    标签: cassandra hive datastax-enterprise datastax-java-driver cassandra-2.0


    【解决方案1】:

    使用 Hive 从 CF 读取数据会排除过期的列。将数据写回列族不能在HIVE中指定TTL,我们会尽快添加这个功能。

    但您可以在 Pig 中通过在 output_query 中指定 TTL 或在 Hadoop 中通过在“cassandra.output.cql”中设置 TTL 来实现

    【讨论】:

    • 感谢您的重播,有没有更好的方法来清除 Hive 中的数据
    • 您可以在 hive 表中写入 null 以将下一行 Cassandra 表列值更改为空(但不是 tomestone)。尚不支持在 hive 中完成清除日期。
    猜你喜欢
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多