Most efficient way storing data

Hey,

Maybe there is already a thread discussing this, but i didn’t find it so my apologies if it does :wink:.

What is the most efficient way to store your data in InfluxDB? I read that you can best send the data in a batch of 5000 lines of line protocol and too sort your tagkey in lexicografic order.

  1. But with a batch do they mean a batch of the same measurements or is it better to write a batch with different measurements but with a ascending timestamp?

  2. Also is it better to group allot of fieldssets in 1 measurement or make more measurements with less fieldssets? (And what is the most optimal number of fieldssets?)

  3. And the final question. They say you best order your tagkey in lexicografic order. Does this also counts for the fieldkey?

It’s just for a basic idea for how i have to setup the installation.

Thanks at advance!
Kind regards,
Ward

Little follow up. I’m going to use node-red for the datacollector. Does anyone know if i make use of the InfluxDB batch node, that it sends the data as cli protocol or not? Because i also read that the CLI protocol is one of the best method.

Hello @Roekens,

  1. The intersection of both is better https://docs.influxdata.com/influxdb/v2.0/write-data/best-practices/optimize-writes/#sort-tags-by-key . That being said, InfluxDB has an incredibly high ingest rate (>700,000 points/second with a dimensionality of 10,000 for an r4.4xl instance
  2. I can recommend theses resources for you: https://www.influxdata.com/blog/data-layout-and-schema-design-best-practices-for-influxdb/
  3. It does not count for the fieldkey as fields are not indexed.

This resource might be valuable to you re: node red https://www.influxdata.com/blog/continuous-deployment-of-telegraf-configurations/