Hi,
i’m a sysadmin working for multiple companies. New to influxdb and telegraf i’m looking for some advice howto structure my data. All in one database? One database per company? Or keep i totally separated between the companies?
Maybe can give some advice from experience or link me a paper about this topic.
Thanks
Definitely not all in one database.
-
a customer might ask for a copy of their data one day - how do you strip
out the other companies’ data before sending it to them? -
it’s quite possibly in breach of some countries’ data protection laws
I don’t know what difference you mean between “one database per company” and
“totally separated between the companies” - please elaborate.
Antony.
Welcome @Gavilaan to the Influx forum.
Normally I would agree with @Pooh but the latest language of InfluxDB3 Enterprise says:
The database server contains logical databases, which have tables, which have columns. Compared to previous versions of InfluxDB you can think of a database as a
bucket
in v2 or as adb/retention_policy
in v1. Atable
is equivalent to ameasurement
, which has columns that can be of typetag
(a string dictionary),int64
,float64
,uint64
,bool
, orstring
and finally every table has atime
column that is a nanosecond precision timestamp.
In my v2 system (a single InfluxDB install set up on Ubuntu), we have dozens of buckets, each with their own retention scheme. We can delete and create new buckets as we wish. I would agree with @pooh that companies normally do not want their data shared, but maybe the nature of this data is such that they would not object.
source:
I could implement one vm per company with their own influxdb/grafana installation.
The database server contains logical databases … you can think of a
database as abucket
in v2
In my v2 system (a single InfluxDB install set up on Ubuntu), we have
dozens of buckets
So, if you have dozens of buckets, and a database can be thought of as a
bucket, this means you have dozens of databases.
Therefore you are not putting every customer’s data into one big database.
Antony.
I would say the question of “one VM per company” vs. “one server with one DB
per company” comes down to access controls.
You previously talked about influxDB and telegraf - now you have mentioned
Grafana - so you need either to run a Grafana instance per customer, with
appropriate access credentials for everyone who needs to work with it, or you
need to set up one big Grafana instance and set up access controls so that
each customer can only interact with their own dashboards and data sources.
I personally would feel far more comfortable with a separate Grafana instance
per customer, however depending on your expertise and confidence with setting
up Grafana’s access rights, a single system might be made to work well.
I do think it’s a different question from where to store the underlying data,
though.
Antony.
Thanks for the advice. I think i will start with one influxdb, one database per company and one vm with grafana per company. So i can make my first steps and have enough flexibility to change things later.
Gavilaan