【问题标题】:Deleting events from Prediction-IO App从 Prediction-IO 应用程序中删除事件
【发布时间】:2018-01-11 08:36:45
【问题描述】:

我们使用 Hbase、Hadoop 作为我们的通用推荐应用程序的事件存储,这些应用程序在内部使用 PredictionIO。数据已经变得非常大,经过深思熟虑,我们认为删除 6 个月以上的数据会更好。 (添加另一台机器作为数据节点完全没有问题)。

多次查看后,我看到删除事件的唯一方法是查询事件服务器、获取 eventID 并为每个 eventID 调用删除请求。

问题是在随机时间,事件服务器以Internal Server Error 响应,因此删除被停止。当我在 Postman 中点击相同的查询时,它有时会响应事件,有时会响应 The server was not able to produce a timely response to your request.。为了确认是否实际上不存在任何事件,我在 Hbase 中进行了检查。有些事件比我在查询中询问的事件更早。

查询如下:http://server:7070/events.json?accessKey=key&entityType=user&event=add_item&untilTime=2017-05-01T00:00:00.000Z&limit=2

在这种情况下需要帮助重新评估如何删除事件。

【问题讨论】:

    标签: hadoop hbase predictionio


    【解决方案1】:

    根据您的问题,我可以理解您最终想要删除 6 个月前的数据。我对清理数据的清洁和自动化方式的建议是使用 HBase TTL

    可以为 columnFamily 设置 TTL。在为您的 columnFamily 设置 6 个月的 TTL 时,Hbase 主要压缩将负责在 6 个月后删除这些记录。

    http://hbase.apache.org/0.94/book/ttl.html

    【讨论】:

    • 从长远来看确实可以解决问题。现在我只需要弄清楚如何执行它。我应该在 HBase 级别提供它还是 PIO 提供某种配置?现在,我的问题是为什么它会给出内部服务器错误?!
    • 我对 PIO 不熟悉。我建议在 HBase 本身中创建表时设置 TTL。
    猜你喜欢
    • 2012-05-23
    • 1970-01-01
    • 2015-04-04
    • 2021-10-29
    • 1970-01-01
    • 2014-07-14
    相关资源
    最近更新 更多