InfluxDB explained
Glossary
- Database
- A logical container for users, retention policies, continuous queries, and time series data.
- Measurement
- Analogous to an SQL table, houses a collection of points
- Field
- Key-value pair of a field name and its associated value. Fields are always associated with a timestamp
- Tag
- Similar to fields, except Tags are indexed and so can be used to search much quicker
- Point
- A field set, tag set, timestamp, and the measurement that this point belongs to
- Series
- A container for a measurement and retention policy, together with a tag set. The values in the tag set will be used to filter only points from the measurement that match the tag set of the series
Heirarchy
Database: campus_data
Contains many measurements:
Measurement: campus_animals
Contains many points:
2019/11/04 13:55:32
ducks=5
geese=4
campus=west
2019/11/04 14:00:07
geese=40
rabbits=2
campus=east
2019/11/04 14:05:24
ducks=6
geese=20
rabbits=1
campus=west
2019/11/04 14:10:49
geese=15
rabbits=50
campus=east
Measurement: datacenter_metrics
Contains many points:
2019/11/04 00:00:00
temperature=20.1
power=1043
datacenter=tfta
zone=1
2019/11/04 00:00:01
temperature=18.9
power=987
datacenter=tfta
zone=2
2019/11/04 00:00:01
temperature=23.4
power=1301
datacenter=bs
2019/11/04 00:00:02
temperature=25.1
power=1424
datacenter=tfta
zone=3
Series: westcampus_animals
campus_animals
campus=west
2019/11/04 13:55:32
ducks=5
geese=4
campus=west
2019/11/04 14:05:24
ducks=6
geese=20
rabbits=1
campus=west
IRC logs with User_4575
23:31 ldm what I'd really like to understand is the _heirarchy_ 23:32 User_4574 hierarchy? 23:32 ldm in SQL-like DBs, you have a database, which contains many tables, each of which have a schema (column definition) and rows, each row has a set number of key-value pairs that correspond to the column definition 23:32 User_4574 right 23:32 ldm in influx, I can't tell which is "nested" inside which 23:35 User_4574 so, sort of, but not really, because it's sqlike not sql, you have databases (databases) which contain series (tables) which contain fields (columns) 23:35 ldm okay, where do measurements come into it? 23:35 User_4574 rows, sorta 23:36 ldm what's the caveat that makes it a sorta? 23:37 User_4574 sorry, i got that the wrong, this is exactly what confuses me 23:37 User_4574 measurements are tables, not rows 23:37 ldm aha that's fair 23:37 User_4574 and a "series" is the weird one 23:37 User_4574 it kind of encapsulates the measurement with a tagset and a retention policy 23:38 User_4574 https://docs.influxdata.com/influxdb/v1.7/concepts/key_concepts is a really good overview 23:39 User_4574 a *point* is a row 23:39 ldm User_4574: I hadn't read ^ enough times for it to fully sink in :D 23:39 ldm ah okay 23:39 User_4574 i try to remember it in terms of the queries you make 23:40 ldm > A point represents a single data record that has four components: a measurement, tag set, field set, and a timestamp. A point is uniquely identified by its series and timestamp. 23:40 User_4574 yeah 23:40 ldm so it has a measurement in that it "belongs to" or is "part of" that measurement 23:40 User_4574 so a series is a measurement with some tags and an RP 23:40 ldm the tag and field sets are the "y" values at x = timestamp 23:41 ldm okay, here's more confusion 23:41 ldm why does the series have tags 23:41 ldm but the points also have tags 23:41 User_4574 a series is SORT of like a view as i see it 23:41 User_4574 so a point has tags 23:42 User_4574 and the series is like "create view select fields from measurement where tag = thing and tag = otherthing" 23:42 User_4574 I THINK 23:42 User_4574 that is my understanding 23:43 ldm ahh got you 23:44 ldm so if you have a measurement of number of geese on campus 23:44 ldm a point in that measurement might be (field) geese = 100 (tag) campus = west 23:44 ldm and another might be (field) geese = 40 (tag) campus = east 23:45 User_4574 yes 23:45 ldm you would create a series which is that measurement but you _set_ the campus = east 23:45 ldm and the points that belong to that series would only show geese on east 23:45 User_4574 im just looking at it and im becoming increasingly concerned that series arent actually things 23:45 ldm 😂 23:46 User_4574 they're just a thing you can imagine, not a concrete thing in the db 23:46 ldm yeah 23:46 User_4574 influx is stupid. 23:46 ldm Well, I now understand it a lot better, so thank you for that! 23:46 User_4574 fields are the things you're measuring, and tags are the metadata for those... measurements... 23:47 ldm series are not part of the data storage but can be useful to the application to save it some collation 23:47 User_4574 you could "INSERT campus_animals,campus=west geese=100,ducks=200" 23:48 ldm A series doesn't have a tag key so any series you'd create from campus_animals would always have the geese and ducks results 23:49 ldm I think? 23:49 ldm So you can "filter" by tags but not by present fields 23:49 User_4574 but you can select which fields you want 23:49 User_4574 SELECT geese FROM campus_animals WHERE campus=west 23:49 ldm ah and it won't return points for null-valued ones 23:49 User_4574 i believe not