gpt4 book ai didi

thingsboard - 如何从 Thingsboard 中删除旧事件?

转载 作者:行者123 更新时间:2023-12-02 02:46:22 24 4
gpt4 key购买 nike

我应该怎么做才能从 Thingsboard 中正确删除“事件”条目?

据我所知,当前的 API 没有提供删除事件的方法。似乎唯一的方法是直接删除数据库中的记录。

顺便说一下,我使用 PostgreSQL 作为数据库。

最佳答案

在 Thingsboard 源代码中研究了两个小时后,我找到了解决方案。

日期包含在 V1 UUID 格式的 uid_event 字段中。

所以首先,你需要写一个函数 uuid_timestamp以便将 UUID 转换为时间戳。我在这里找到了解决方案:https://stackoverflow.com/a/24191574/5300212

CREATE FUNCTION uuid_timestamp(id uuid) RETURNS timestamptz AS $$
select TIMESTAMP WITH TIME ZONE 'epoch' +
(((('x' || lpad(split_part(id::text, '-', 1), 16, '0'))::bit(64)::bigint) +
(('x' || lpad(split_part(id::text, '-', 2), 16, '0'))::bit(64)::bigint << 32) +
((('x' || lpad(split_part(id::text, '-', 3), 16, '0'))::bit(64)::bigint&4095) << 48) - 122192928000000000) / 10000000 ) * INTERVAL '1 second';
$$ LANGUAGE SQL
IMMUTABLE
RETURNS NULL ON NULL INPUT;

之后,要删除 30 天前的所有事件,您可以运行如下查询:
DELETE FROM public.event WHERE uuid_timestamp(event_uid::uuid) < now() - '30 days'::interval;

关于thingsboard - 如何从 Thingsboard 中删除旧事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54643417/

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