๐Ÿ“š Databases

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” InfluxDB์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž

iseunghan 2024. 5. 18. 23:52
๋ฐ˜์‘ํ˜•

influxDB๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์ „ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ž€?

https://www.influxdata.com/what-is-time-series-data/

์‹œ๊ณ„์—ด์€ ์ผ์ • ๊ธฐ๊ฐ„ ๋™์•ˆ ์ˆ˜์ง‘๋˜๊ณ  ์‹œ๊ฐ„์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ ์š”์†Œ์˜ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค. ์‹œ๊ณ„์—ด์˜ ์ฃผ์š” ํŠน์ง•์€ ์ธ๋ฑ์‹ฑ๋˜๊ฑฐ๋‚˜ ์‹œ๊ฐ„ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ด๋œ๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ ๊ทธ๋ž˜์„œ ๊ทธ๋ž˜ํ”„์— ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™” ํ•  ๋•Œ ์ค‘์š”ํ•œ ์ถ•์€ ์‹œ๊ฐ„์ด ๋ฉ๋‹ˆ๋‹ค.

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณณ์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ์ƒ ์˜ˆ๋ณด
  • ์ฃผ์‹
  • ์„ผ์„œ ๋ฐ์ดํ„ฐ
  • ์ผ(์›”,์—ฐ)๊ฐ„ ๊ตฌ๋…์ž
  • ์„œ๋ฒ„ ์ž์› ๋ชจ๋‹ˆํ„ฐ๋ง ๋“ฑ๋“ฑ

์š”์ฆ˜ ๋“ค์–ด ์Šค๋งˆํŠธ ํŒฉํ† ๋ฆฌ, ๋น…๋ฐ์ดํ„ฐ, ์ฝ”์ธ, ์ฃผ์‹ ๋“ฑ์ด ํ•ซํ•œ๋ฐ ์ด๋Ÿฐ ๋ฐ์ดํ„ฐ๋“ค์˜ ํŠน์ง•์€ ์‹œ๊ฐ„์ˆœ์œผ๋กœ ์ธ๋ฑ์‹ฑ์ด ์ค‘์š”ํ•˜๊ณ , ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ ํ•ธ๋“ค๋ง ํ•˜๋Š” ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ค‘ InfluxDB๊ฐ€ ๋„๋Œ€์ฒด ์–ด๋– ํ•œ ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ €์žฅํ•˜์—ฌ ๋น ๋ฅธ ์†๋„๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ์™œ ์ด๋ ‡๊ฒŒ ์œ ๋ช…ํ•˜๊ณ  ๋งŽ์ด๋“ค ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

influxDB๋ž€? (Data Principle)

influxdb๋Š” ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(time-series database)์ž…๋‹ˆ๋‹ค. InfluxDB์˜ ํŠน์ง•์„ ๋‚˜์—ดํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์‹œ๊ฐ„์ˆœ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ(Point)๋“ค์„ ์ €์žฅ
  • ์ˆ˜ ์ดˆ, ๋‚˜๋…ธ์ดˆ์˜ ์—„์ฒญ๋‚œ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์“ฐ๊ธฐ์— ์•„์ฃผ ํŠนํ™”๋จ
  • ์ฟผ๋ฆฌ ๋ฐ ์“ฐ๊ธฐ ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์—…๋ฐ์ดํŠธ ๋ฐ ์‚ญ์ œ ๊ธฐ๋Šฅ์€ ์—„๊ฒฉํ•˜๊ฒŒ ์ œํ•œ
  • SQL๊ณผ ์œ ์‚ฌํ•œ InfluxQL์„ ์ œ๊ณต
  • Continuous Query ๊ธฐ๋Šฅ ์ œ๊ณต
  • Tag๋ผ๋Š” ๊ฒƒ์„ ์ด์šฉํ•ด ์ธ๋ฑ์‹ฑ ์ œ๊ณต
  • REST API ์ œ๊ณต

Storage Engine

๊ณต์‹๋ฌธ์„œ์—์„œ๋Š” Storage Engine์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

InfluxDB ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์€ ๋‹ค์Œ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
1. ๋ฐ์ดํ„ฐ๊ฐ€ ๋””์Šคํฌ์— ์•ˆ์ „ํ•˜๊ฒŒ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.
2. ์ฟผ๋ฆฌ๋œ ๋ฐ์ดํ„ฐ๋Š” ์™„์ „ํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.
3. ๋ฐ์ดํ„ฐ๊ฐ€ ์ •ํ™•ํ•˜๊ณ  ์„ฑ๋Šฅ์ด ์šฐ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์œ„์™€ ๊ฐ™์ด ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋‚ด๋ถ€๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Writing Data (API → Disk)

์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์€ HTTP API ์š”์ฒญ์„ ์ˆ˜์‹ ํ•œ ์‹œ์ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Point๋“ค์„ WAL์— ๊ธฐ๋กํ•จ๊ณผ ๋™์‹œ์— ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ์บ์‹œ์— ๊ธฐ๋ก์‹œ์ผœ ์ฆ‰์‹œ ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋Œ€๋น„ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ์บ์‹œ๋Š” TSM ํŒŒ์ผ ํ˜•์‹์œผ๋กœ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋””์Šคํฌ์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. TSM ํŒŒ์ผ์ด ๋ˆ„์ ๋˜๋ฉด ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์€ ๋ˆ„์ ๋œ ํŒŒ์ผ์„ ๋” ๋†’์€ ์ˆ˜์ค€์˜ TSM ํŒŒ์ผ๋กœ ๊ฒฐํ•ฉํ•˜๊ณ  ์••์ถ•ํ•ฉ๋‹ˆ๋‹ค.

Write Ahead Log (WAL)

WAL์€ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด ๋‹ค์‹œ ์‹œ์ž‘๋  ๋•Œ influxDB ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋‚ด๊ตฌ์„ฑ์„ ๋ณด์žฅํ•ด์ค๋‹ˆ๋‹ค. ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์˜ ์ข…๋ฃŒ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์žฌ์‹œ์ž‘ ๋  ๋•Œ WAL๊ณผ Storage Engine์˜ Sync๋ฅผ ๋งž์ถฐ ๋ฐ์ดํ„ฐ์˜ ๋‚ด๊ตฌ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

  1. ์“ฐ๊ธฐ ์š”์ฒญ์€ WAL ํŒŒ์ผ์˜ ๋์— ์ถ”๊ฐ€
  2. ๋ฐ์ดํ„ฐ๋Š” fsync()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋””์Šคํฌ์— ๊ธฐ๋ก
  3. in-memory ์บ์‹œ์— ์—…๋ฐ์ดํŠธ
  4. ๋ฐ์ดํ„ฐ๊ฐ€ ๋””์Šคํฌ์— ์„ฑ๊ณต์ ์œผ๋กœ ๊ธฐ๋ก๋˜๋ฉด ์“ฐ๊ธฐ ์š”์ฒญ์ด ์„ฑ๊ณตํ–ˆ์Œ์„ ํ™•์ธํ•˜๋Š” ์‘๋‹ต ํ‘œ์‹œ

fsync()๋Š” ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์„œ ๋ณด๋ฅ˜ ์ค‘์ธ ์“ฐ๊ธฐ๋ฅผ ๋””์Šคํฌ๊นŒ์ง€ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ํ˜ธ์ถœ๋กœ์„œ, fsync()์—๋Š” ๊ณ„์‚ฐ ๋น„์šฉ์ด ๋งŽ์ด ๋“ค์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ๋””์Šคํฌ์—์„œ ์•ˆ์ „ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜๋Š” ์ปค๋„ ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด ๋‹ค์‹œ ์‹œ์ž‘๋˜๋ฉด WAL ํŒŒ์ผ์„ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋‹ค์‹œ ์ฝ์–ด๋“ค์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ influxDB๋Š” /read ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•œ ์š”์ฒญ ์‘๋‹ต.

์บ์‹œ (Cache)

์บ์‹œ๋Š” WAL์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ in-memory์— ๋ณต์ œํ•œ ๊ฒƒ์ด๋ฏ€๋กœ, WAL๊ณผ ์บ์‹œ๋Š” ๋ณ„๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ๋ฉฐ ์„œ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ํ‚ค(measurement, tag set, unique fields)๋ณ„๋กœ ๊ตฌ์„ฑ๋œ ํฌ์ธํŠธ๋Š” ์‹œ๊ฐ„ ์ˆœ์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.(์••์ถ• X)
  • ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด ์žฌ ์‹œ์ž‘๋  ๋•Œ๋งˆ๋‹ค WAL์—์„œ ๊ฐ€์ ธ์™€์„œ ์บ์‹ฑํ•ด๋‘ก๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ๋ฅผ ํ•˜๋ฉด ์บ์‹œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  TSM ํŒŒ์ผ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์™€ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. (๋ฐ์ดํ„ฐ์˜ ์บ์‹œ๋ฅผ ์˜ค๋ž˜ ์œ ์ง€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด maxSize๋ฅผ ๋Š˜๋ฆฌ๋ฉด ๋จ)
  • TSM ํŒŒ์ผ์— ๊ธฐ๋ก๋˜๊ณ  ์žˆ๋Š” ์บ์‹œ ๊ฐœ์ฒด๋ฅผ ์บ์‹œ ์Šค๋ƒ…์ƒท์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  • ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ๋Š” ์บ์‹œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ TSM ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ์™€ merge(์•„๋ž˜ TSM์˜ ์ €์žฅ๋˜๋Š” ํ˜•ํƒœ๋ฅผ ๋ณด์‹œ๋ฉด ์ดํ•ด๊ฐ€ ๊ฐ€์‹ค๊ฒ๋‹ˆ๋‹ค)ํ•ด์„œ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

Time-Structured Merge Tree (TSM)

https://docs.influxdata.com/resources/videos/tsm-engine/

์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์€ TSM ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์šฉ๋Ÿ‰์˜ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์••์ถ•, ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด field value๋ฅผ series-key๋ณ„๋กœ ๊ทธ๋ฃนํ™”ํ•œ ๋‹ค์Œ ํ•ด๋‹น field value๋ฅผ ์‹œ๊ฐ„๋ณ„๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. (series-key๋Š” measurement, tag key, tag value, field key๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค)

  • TSM ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋ฉด ์‹œ๋ฆฌ์ฆˆ ํ‚ค๋กœ ์ฝ๊ณ  ๊ด€๋ จ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.
  • TSM ํŒŒ์ผ์— ์ตœ์ข…์ ์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ๋˜๋ฉด WAL๊ณผ ์บ์‹œ๊ฐ€ ์ง€์›Œ์ง‘๋‹ˆ๋‹ค.

TSM ํŒŒ์ผ์€ ์••์ถ•๋œ series data๋ฅผ ์—ด ํ˜•์‹์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค.

measurement: weather

| timestamp | fields: wind_speed | fields: wind_direction |
| --------- | ------------------ | ---------------------- |
|   10:15   |         3.5        |           378          |
|   10:20   |         3.7        |           380          |

์œ„ ๋ฐ์ดํ„ฐ๋Š” ์‹ค์ œ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด TSM ํ˜•ํƒœ๋กœ ๋””์Šคํฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

[measurement, tags, field key]
-----------------------------------
[weather, wind_speed]
  10:15 , 3.5
  10:20 , 3.7

[weather, wind_direction]
  10:15 , 378
  10:20 , 380

series-key(measurement, tag key, tag value, field key)๋ณ„๋กœ ์‹œ๊ฐ„ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅ์‹œํ‚ต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด 2๊ฐœ์˜ TSM ๋ฐ์ดํ„ฐ ์…‹์œผ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์ €์žฅ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ํŽธํ•ฉ๋‹ˆ๋‹ค.

Continuous Query & Retension Policy

influxdb์˜ ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋Šฅ ๋‘๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๋Œ€์šฉ๋Ÿ‰์˜ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์ด๋‹ค ๋ณด๋‹ˆ๊นŒ ์ €์žฅ๊ณต๊ฐ„ ๊ด€๋ฆฌ ์ธก๋ฉด๊ณผ ๋ฐ์ดํ„ฐ๋“ค์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Continous Query

https://www.influxdata.com/blog/continuous-queries-in-influxdb-part-i/

influxdb๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ์ƒˆ๋กญ๊ฒŒ ์ €์žฅํ•˜๋Š” Down Sampling(๋‹ค์šด ์ƒ˜ํ”Œ๋ง)์„ ์ผ์ • ์ฃผ๊ธฐ๋งˆ๋‹ค ์‹คํ–‰๋˜๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์ธ Continuous Query๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด์„œ ์ผ์ • ์ฃผ๊ธฐ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๋“ค์„ ๋‹ค์šด ์ƒ˜ํ”Œ๋ง ํ•˜์—ฌ ๋ฏธ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•ด๋‘๋ฉด → ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ํšจ์œจ์ ์ด๊ณ  ๋น ๋ฅด๊ฒŒ ์ฟผ๋ฆฌํ•˜์—ฌ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Retension Policy

๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์Œ“์ด๊ณ  ๋‚˜์ค‘์— ์ €์žฅ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์ง€ ๋ชปํ•˜๋ฉด ํฐ์ผ์ž…๋‹ˆ๋‹ค. ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋Œ€๋Ÿ‰์œผ๋กœ ์Œ“์ด๊ธฐ ๋•Œ๋ฌธ์— influxdb์—์„œ๋Š” ์ด ๋ณด์กด ์ •์ฑ…์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (๊ธฐ๋ณธ๊ฐ’: ์˜๊ตฌ์ €์žฅ)

๊ธฐ๋ณธ ๊ฐ’์€ ์˜๊ตฌ์ ์œผ๋กœ ๊ณ„์† ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์กด ์ •์ฑ…์„ ์„ค์ •ํ•˜์—ฌ ์˜ค๋ž˜๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.  

์•ˆ๊ทธ๋Ÿฌ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ์Œ“์—ฌ์„œ ์ €์žฅ๊ณต๊ฐ„ ๋ถ€์กฑํ•˜๋ฉด influxdb ์ฃฝ์Šต๋‹ˆ๋‹ค..

ํ…Œ์ด๋ธ” ๊ตฌ์กฐ

RDB InfluxDB
database influxdb instance
Table measurement
column key
indexed column tag key (only String)
unindexed column field key
row point

Database

In InfluxDB 2.2, a database represents the InfluxDB instance as a whole.

influxDB 2.2์—์„œ๋Š” ์ „์ฒด influxDB ์ธ์Šคํ„ด์Šค๋ฅผ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋ณธ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Measurement

  • measurement๋Š” RDB์—์„œ Table๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ์–ด๋–ค ๊ฐ’์ด ์ธก์ •๋˜๋Š”์ง€์— ๋Œ€ํ•ด ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. (์˜ˆ๋ฅผ๋“ค์–ด, ์œ„ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์ธ๊ตฌ์กฐ์‚ฌ์— ๋Œ€ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค๋ฉด, measurement๋Š” ์ธ๊ตฌ์กฐ์‚ฌ(census)๊ฐ€ ๋˜๊ฒ ์ฃ )

TimeStamp

  • ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ‚ค๊ฐ’์ธ _time ์ปฌ๋Ÿผ์— ์ €์žฅ๋˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ ์ธ๋ฑ์‹ฑ์ด ๋ฉ๋‹ˆ๋‹ค.
  • Timestamp๋Š” RFC 3339(for example: 2020-01-01T00:00:00.00Z)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Field Key, Field Value

(Required) ํ•„์ˆ˜๊ฐ’์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์ €์žฅํ•˜๋ ค๋Š” ํ‚ค/๊ฐ’์„ field์— ๋„ฃ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • Field๋Š” Tag์™€ ๋‹ค๋ฅด๊ฒŒ ์ธ๋ฑ์‹ฑ์ด ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— Field๋ฅผ ์ด์šฉํ•ด ํ•„ํ„ฐ๋ง์„ ๊ฑธ๋ฉด ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์‹ฑ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด Tag๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Tag Key, Tag Value

(Optional) ํ•„์ˆ˜๊ฐ’์€ ์•„๋‹ˆ์ง€๋งŒ ์ธ๋ฑ์‹ฑ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— Tag๋ฅผ ๋„ฃ์–ด์„œ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ๊ฒƒ์ด ๋ฒ ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.

  • Tag Key๋Š” ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋“ค์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: ์ง€์—ญ, ํƒ€์ž… ๋“ฑ๋“ฑ)
  • Tag Key๋Š” ๋ฌด์กฐ๊ฑด Stringํ˜•์ž…๋‹ˆ๋‹ค.

REFERENCES

๋ฐ˜์‘ํ˜•