Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Continuous downsampling #12226

Open
1 of 2 tasks
snimavat opened this issue Mar 23, 2024 · 6 comments
Open
1 of 2 tasks

Continuous downsampling #12226

snimavat opened this issue Mar 23, 2024 · 6 comments

Comments

@snimavat
Copy link

Search before asking

  • I searched in the issues and found nothing similar.

Motivation

Is there any support for continuous downsampling, like it can be done with influx or timescale db ?
If no, it would be really nice to have feature.
If yes, thn I dont see any documentation, please update.

Solution

No response

Alternatives

Influx, timescaledb

Are you willing to submit a PR?

  • I'm willing to submit a PR!
Copy link

Hi, this is your first issue in IoTDB project. Thanks for your report. Welcome to join the community!

@SeanGaluzzi
Copy link

I'm looking for the same, i think it depends on the IoTDB version that you have

V0.13.x: https://iotdb.apache.org/UserGuide/V0.13.x/Process-Data/Continuous-Query.html

V13.0.x: nothing found

My main concern is this:

Note that the current distributed version of IoTDB does not support continuous queries. Please stay tuned.

I have IoTDB 1.13.x and trying to create a CQ it fails every time with the provided example:

Error occurred while parsing SQL to physical plan: line 5:2 no viable alternative at input 'SELECT max_value(temperature) \n  INTO temperature_max \n  FROM'

Even with a real path:

IoTDB> CREATE CONTINUOUS QUERY cq1
> BEGIN
>   SELECT max_value(uptime)
>   INTO test
>   FROM root.Switch.**
>   GROUP BY time(10s)
> END
Msg: 700: Error occurred while parsing SQL to physical plan: line 5:2 no viable alternative at input 'SELECT max_value(uptime) \n  INTO test \n  FROM'

@snimavat Did you find anything?
@HTHou @CritasWang Can someone help us with this question? i mean, does CQ are at least supported in version 1.13.x? ( or any other way to create a downsample similtar to InfluxDB: Reference: http://wiki.webperfect.ch/index.php?title=InfluxDB_2.x:_Task:_Downsampling )

@CritasWang
Copy link
Contributor

CritasWang commented May 16, 2024 via email

@SeanGaluzzi
Copy link

Thanks!!!

i'm working on a python script to create every CQS that are needed to downsample an entire db and with only two database i got a lot of CQS (it's pretty messy and hard to debug in case of any kind of issue)

image

as i pointed out in the previus message with influxDB we can downsample an entire db with a pretty easy query:

option task = {name: "_30d", every: 5m}

data =
    from(bucket: "foo")
        |> range(start: -task.every)
        |> filter(fn: (r) => r._measurement =~ /.*/)

data
    |> aggregateWindow(fn: mean, every: 5m)
    |> filter(fn: (r) => exists r._value)
    |> to(bucket: "foo_30d", org: "bar")

@CritasWang there are any ways to create a full db downsample without the need to create a cqs for every metrics in the db?
Thanks in advance

@CritasWang
Copy link
Contributor

If there are many such CQ, then I feel like you can use pipe to handle them
https://github.com/apache/iotdb/blob/master/example/pipe-count-point-processor/src/main/java/org/apache/iotdb/CountPointProcessor.java

@SeanGaluzzi
Copy link

@CritasWang i found this in the documentation: https://iotdb.apache.org/UserGuide/V1.2.x/User-Manual/Data-Sync.html
but i'm note sure how to create the pipe that downsample the entire DB
it seems that the pipe is use to transfer data between two IoTDB Instances.

my schema is something like this:

foo_db <- 7 day retention policy

I want to create 2 new db with the pipe to get

  • foo30d_db <- 30 day retention policy (20m aggregation data)
  • foohystory_db <- no retention policy (1h aggregation data)

Can you please give me an example pipe that downsample the foo_db (and send the data to the same IoTDB instance)?

thanks in advice

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants