从 Prediction-IO App 中删除事件
Deleting events from Prediction-IO App
我们使用 Hbase、Hadoop 作为内部使用 PredictionIO 的通用推荐应用程序的事件存储。数据已经变得非常大,经过深思熟虑,我们认为最好删除超过 6 个月的数据。 (添加另一台机器作为数据节点是完全不可能的)。
经过多次查看后,我看到删除事件的唯一方法是查询事件服务器、获取事件 ID 并为每个事件 ID 调用删除请求。
问题是在随机时间,事件服务器响应 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
需要帮助重新分级在这种情况下如何删除事件。
根据你的问题,我了解到你最终想要删除 6 个月前的数据。我建议使用 HBase TTL 以干净且自动化的方式清理数据。
可以为columnFamily设置TTL。在为您的 columnFamily 设置 6 个月的 TTL 时,Hbase 主要压缩将在 6 个月后负责删除这些记录。
我们使用 Hbase、Hadoop 作为内部使用 PredictionIO 的通用推荐应用程序的事件存储。数据已经变得非常大,经过深思熟虑,我们认为最好删除超过 6 个月的数据。 (添加另一台机器作为数据节点是完全不可能的)。
经过多次查看后,我看到删除事件的唯一方法是查询事件服务器、获取事件 ID 并为每个事件 ID 调用删除请求。
问题是在随机时间,事件服务器响应 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
需要帮助重新分级在这种情况下如何删除事件。
根据你的问题,我了解到你最终想要删除 6 个月前的数据。我建议使用 HBase TTL 以干净且自动化的方式清理数据。
可以为columnFamily设置TTL。在为您的 columnFamily 设置 6 个月的 TTL 时,Hbase 主要压缩将在 6 个月后负责删除这些记录。