删除 InfluxDB 中的重复项
Removing duplicates in InfluxDB
我想执行查询以删除重复项。我在这里定义为重复的是我们有超过 1 个数据点的测量。它们会有不同的标签,因此默认情况下它们不会被覆盖,但我想删除最旧的插入,而不管标签如何。
例如,登录的测量(这实际上没有意义,但它是为了避免使用抽象实体):
> Email | Name | TS | Login Time
>
> a@a.com | Alice | xxxxx1000 | 2017-05-19
> a@a.com | Alice | xxxxx1000 | 2017-05-18
> a@a.com | Alice | xxxxx1000 | 2017-05-17
> b@b.com | Bob | xxxxx1000 | 2017-05-18
> c@c.com | Charlie | xxxxx1200 | 2017-05-19
我想删除第二行和第三行,因为数据点与第一行具有相同的时间戳,是相同的测量值,但它们的登录时间不同,我想只取最后一行。
我很清楚我可以通过查询解决这个问题,但要求比这更复杂(在 Grafana 中可视化奇怪的 KPI 数据),我需要删除实际的重复项(生成和加载两次)。
谢谢。
你可以使用group by取所有登录用户名,然后按时间排序,这样最新的登录时间排在最前面,然后你可以删除剩下的。
此外,您可能需要将最新的项目复制到其他测量值,因为您无法删除 influxdb 中的行。
为此,您可以使用 limit 1 offset 0,这样只有最新的登录时间才会来自查询输出。
如果我理解正确,请告诉我。
我想执行查询以删除重复项。我在这里定义为重复的是我们有超过 1 个数据点的测量。它们会有不同的标签,因此默认情况下它们不会被覆盖,但我想删除最旧的插入,而不管标签如何。
例如,登录的测量(这实际上没有意义,但它是为了避免使用抽象实体):
> Email | Name | TS | Login Time
>
> a@a.com | Alice | xxxxx1000 | 2017-05-19
> a@a.com | Alice | xxxxx1000 | 2017-05-18
> a@a.com | Alice | xxxxx1000 | 2017-05-17
> b@b.com | Bob | xxxxx1000 | 2017-05-18
> c@c.com | Charlie | xxxxx1200 | 2017-05-19
我想删除第二行和第三行,因为数据点与第一行具有相同的时间戳,是相同的测量值,但它们的登录时间不同,我想只取最后一行。
我很清楚我可以通过查询解决这个问题,但要求比这更复杂(在 Grafana 中可视化奇怪的 KPI 数据),我需要删除实际的重复项(生成和加载两次)。
谢谢。
你可以使用group by取所有登录用户名,然后按时间排序,这样最新的登录时间排在最前面,然后你可以删除剩下的。
此外,您可能需要将最新的项目复制到其他测量值,因为您无法删除 influxdb 中的行。
为此,您可以使用 limit 1 offset 0,这样只有最新的登录时间才会来自查询输出。
如果我理解正确,请告诉我。