我正在使用 openTSDB 以 hbase 作为存储系统存储时间序列数据。
我想知道是否有办法在一段时间后降低数据的分辨率?
我所说的降低数据分辨率的意思是,最初说,我们以 1/秒的时间分辨率输入数据。大约 6 个月后,以相同的分辨率存储数据是没有意义的。我想将分辨率降低到 1/min,即删除该分钟内的 59 个其他数据点。
hbase 或 openTSDB 上是否有软件包可以执行此操作?
感谢您的帮助。
最佳答案
为了在一段时间后删除数据,HBase 对表进行了设置,即 TTL - time to live 。
当您在 HBase 之上使用 OpenTSDB 时,它变得非常简单 - 因为它创建了 4 个表 tsdb
、 tsdb-meta
、 tsdb-uid
、 tsdb-tree
其中 tsdb
是 OpenTSDB 放置整个数据的单个巨大表。因此,要设置删除时间,我们只需要更改 tsdb
表的 conf。
根据文档摘录(以上) TTL
可以设置为 column family
- tsdb
有一个单一的 cf,即 t
,这是为了满足最低要求,即 HBase 需要一个表至少有一个列族。
您可以通过 shell 检查 TTL
的当前值:
hbase> describe 'tsdb'
Table tsdb is ENABLED
tsdb, {NAME => 't', VERSIONS => 1, COMPRESSION => 'NONE', TTL => 'FOREVER'}
使用 HBase shell - 设置
TTL
:hbase> alter ‘tsdb′, NAME => ‘t′, TTL => 8640000
8640000
秒数等于 100 天(大约 3 个月)关于hadoop - hbase openTSDB 一定时间后自动删除数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25413520/