gpt4 book ai didi

hadoop - hbase openTSDB 在一定时间后自动删除数据

转载 作者:可可西里 更新时间:2023-11-01 14:22:05 25 4
gpt4 key购买 nike

我正在使用 openTSDB 以 hbase 作为存储系统来存储时间序列数据。

我想知道是否有办法在一定时间后降低数据的分辨率?

我所说的降低数据分辨率的意思是,最初说的是,我们的数据以 1/秒的时间分辨率传入。大约 6 个月后,以相同的分辨率存储数据就没有意义了。我想将分辨率降低到 1/min,即在那一分钟内删除其他 59 个数据点。

hbase 或 openTSDB 上是否有包可以执行此操作?

谢谢你的帮助。

最佳答案

为了在一段时间后删除数据,HBase 对表进行了设置,即 TTL - time to live .

ColumnFamilies can set a TTL length in seconds, and HBase will automatically delete rows once the expiration time is reached. This applies to all versions of a row - even the current one. The TTL time encoded in the HBase for the row is specified in UTC.


当您在 HBase 之上使用 OpenTSDB 时,它变得非常简单——因为它创建了 4 个表 tsdbtsdb-metatsdb- 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com