InfluxDB์ TimescaleDB์ ์ต์ข ๋น๊ต๋ฅผ ์ดํด๋ณด์ธ์. ํต์ฌ์ ์ธ ์ฐจ์ด์ , ์ฑ๋ฅ, ์ฟผ๋ฆฌ ์ธ์ด ๋ฐ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ดํดํ์ฌ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ์ธ์.
InfluxDB vs. TimescaleDB: ์๊ณ์ด ๋ฐ์ดํฐ์ ๋ ๊ฑฐ์ธ์ ๋ํ ์ฌ์ธต ๋ถ์
์ฐ๋ฆฌ๊ฐ ์ฌ๋ ์ด์ฐ๊ฒฐ ์ธ์์์๋ ์ ๋ก ์๋ ์๋๋ก ๋ฐ์ดํฐ๊ฐ ์์ฑ๋๊ณ ์์ต๋๋ค. ๋ ์ผ์ ์ค๋งํธ ํฉํ ๋ฆฌ ์ผ์๋ถํฐ ์์คํธ๋ฆฌํธ์ ๊ธ์ต ์์ธ ํ์๊ธฐ, ์ฑ๊ฐํฌ๋ฅด SaaS ๊ธฐ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ์งํ, ์๋ง์กด ์ด๋์ฐ๋ฆผ์ ํ๊ฒฝ ๋ชจ๋ํฐ๋ง์ ์ด๋ฅด๊ธฐ๊น์ง, ์ด ํ๋ช ์ ์ค์ฌ์๋ ํน์ ์ ํ์ ๋ฐ์ดํฐ, ๋ฐ๋ก ์๊ณ์ด ๋ฐ์ดํฐ(time series data)๊ฐ ์์ต๋๋ค.
์๊ณ์ด ๋ฐ์ดํฐ๋ ์๊ฐ ์์๋๋ก ์ธ๋ฑ์ฑ๋ ๋ฐ์ดํฐ ํฌ์ธํธ์ ์ํ์ค์ ๋๋ค. ๋์์์ด ๋๋์ผ๋ก ๋ฐ์ํ๋ ํน์ฑ ๋๋ฌธ์ ์ ์ฅ, ๊ฒ์, ๋ถ์์ ์์ด ๊ธฐ์กด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ๋์ง ์์ ๊ณ ์ ํ ๊ณผ์ ๋ฅผ ์๊ณ ์์ต๋๋ค. ์ด๋ก ์ธํด ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค(TSDB)๋ผ๋ ์ ๋ฌธํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์นดํ ๊ณ ๋ฆฌ๊ฐ ๋ฑ์ฅํ๊ฒ ๋์์ต๋๋ค.
TSDB ๋ถ์ผ์ ์๋ง์ ์ฃผ์๋ค ๊ฐ์ด๋ฐ, ๋ ์ด๋ฆ์ด ๊พธ์คํ ๋ํ์ ์ค์ฌ์ ์ฐจ์งํ๊ณ ์์ต๋๋ค: ๋ฐ๋ก InfluxDB์ TimescaleDB์ ๋๋ค. ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ ๊ฐ๋ ฅํ๊ณ , ์ธ๊ธฐ๊ฐ ๋์ผ๋ฉฐ, ๋ฐ์ด๋ ์ฑ๋ฅ์ ์๋ํ์ง๋ง, ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ์ํคํ ์ฒ ์ฒ ํ์ผ๋ก ๋ฌธ์ ์ ์ ๊ทผํฉ๋๋ค. ๋ ์ค ํ๋๋ฅผ ์ ํํ๋ ๊ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ, ํ์ฅ์ฑ ๋ฐ ์ด์ ๋ณต์ก์ฑ์ ์๋นํ ์ํฅ์ ๋ฏธ์น ์ ์๋ ์ค์ํ ๊ฒฐ์ ์ ๋๋ค.
์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋์์๋ ์ด ๋ ๊ฑฐ์ธ์ ํด๋ถํ์ฌ ์ํคํ ์ฒ, ๋ฐ์ดํฐ ๋ชจ๋ธ, ์ฟผ๋ฆฌ ์ธ์ด, ์ฑ๋ฅ ํน์ฑ ๋ฐ ์ด์์ ์ธ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํ์ํ ๊ฒ์ ๋๋ค. ์ด ๊ธ์ ๋ค ์ฝ์ ๋์ฏค์ด๋ฉด ํน์ ์๊ตฌ ์ฌํญ์ ์ด๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ํฉํ์ง ๊ฒฐ์ ํ ์ ์๋ ๋ช ํํ ํ๋ ์์ํฌ๋ฅผ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค.
InfluxDB๋? ํน์ ๋ชฉ์ ์ผ๋ก ์ ์๋ ๊ฐ๋ ฅํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
InfluxDB๋ Go ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋, ์ฒ์๋ถํฐ ํน์ ๋ชฉ์ ์ผ๋ก ๊ตฌ์ถ๋ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. ๊ทน๋์ ํ์์คํฌํ ๋ฐ์ดํฐ๋ฅผ ์ต๋ ํจ์จ๋ก ์ฒ๋ฆฌํ๋ ๋จ ํ๋์ ์ฃผ์ ๋ชฉํ๋ฅผ ๊ฐ์ง๊ณ ์ค๊ณ๋์์ต๋๋ค. ๋ฒ์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถ๋ด์ ์ง์ง ์๊ธฐ ๋๋ฌธ์ ์๊ณ์ด ๋ฐ์ดํฐ์ ํน์ ์ํฌ๋ก๋, ์ฆ ๋์ ์ฒ๋ฆฌ๋์ ์ฐ๊ธฐ ๋ฐ ์๊ฐ ์ค์ฌ ์ฟผ๋ฆฌ์ ๊ณ ๋๋ก ์ต์ ํ๋ ์ ์์ต๋๋ค.
ํต์ฌ ์ํคํ ์ฒ ๋ฐ ๋ฐ์ดํฐ ๋ชจ๋ธ
InfluxDB์ ์ํคํ ์ฒ๋ ์๋์ ๋จ์์ฑ์ ์ํด ๊ตฌ์ถ๋์์ต๋๋ค. ์๋ ๊ฐ ๊ทธ ํต์ฌ์ ๋์ ์์ง๋ฅ ๊ณผ ํจ์จ์ ์ธ ์์ถ์ ์ต์ ํ๋ TSM(Time-Structured Merge Tree) ์คํ ๋ฆฌ์ง ์์ง์ด์์ต๋๋ค. InfluxDB์ ๋ฐ์ดํฐ๋ ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ธ ๋ชจ๋ธ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
- Measurement: ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์ํ ์ปจํ
์ด๋๋ก, SQL์ ํ
์ด๋ธ๊ณผ ์ ์ฌํฉ๋๋ค. ์:
cpu_usage. - Tags: ๋ฐ์ดํฐ์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ํค-๊ฐ ๋ฌธ์์ด ์์
๋๋ค. ํ๊ทธ๋ ํญ์ ์ธ๋ฑ์ฑ๋๋ฉฐ ํจ์จ์ ์ธ ์ฟผ๋ฆฌ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์:
host=serverA,region=us-west-1. - Fields: ์ค์, ์ ์, ๋ฌธ์์ด ๋๋ ๋ถ๋ฆฌ์ธ์ด ๋ ์ ์๋ ์ค์ ๋ฐ์ดํฐ ๊ฐ์
๋๋ค. ํ๋๋ ์ธ๋ฑ์ฑ๋์ง ์์ต๋๋ค. ์:
usage_user=98.5,usage_system=1.5. - Timestamp: ํ๋ ๊ฐ๊ณผ ์ฐ๊ด๋ ๊ณ ์ ๋ฐ ํ์์คํฌํ์ ๋๋ค.
InfluxDB์ ๋จ์ผ ๋ฐ์ดํฐ ํฌ์ธํธ๋ ๋ค์๊ณผ ๊ฐ์ ์ ์์ต๋๋ค: cpu_usage,host=serverA,region=us-west-1 usage_user=98.5,usage_system=1.5 1672531200000000000. ํ๊ทธ(์ธ๋ฑ์ฑ๋ ๋ฉํ๋ฐ์ดํฐ)์ ํ๋(์ธ๋ฑ์ฑ๋์ง ์์ ๋ฐ์ดํฐ)์ ์ฐจ์ด์ ์ ์ดํดํ๋ ๊ฒ์ ํจ๊ณผ์ ์ธ InfluxDB ์คํค๋ง๋ฅผ ์ค๊ณํ๋ ๋ฐ ๊ธฐ๋ณธ์ด ๋ฉ๋๋ค.
์ฟผ๋ฆฌ ์ธ์ด: InfluxQL๊ณผ Flux
InfluxDB๋ ๋ ๊ฐ์ง ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค:
- InfluxQL: ์ ํต์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฐ๊ฒฝ์ ๊ฐ์ง ์ฌ๋์ด๋ผ๋ฉด ๋๊ตฌ๋ ์ง๊ด์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ SQL๊ณผ ์ ์ฌํ ์ฟผ๋ฆฌ ์ธ์ด์ ๋๋ค. ๊ฐ๋จํ ์ง๊ณ ๋ฐ ๋ฐ์ดํฐ ๊ฒ์์ ํ์ํฉ๋๋ค.
- Flux: ๊ฐ๋ ฅํ๊ณ ๊ธฐ๋ฅ์ ์ธ ๋ฐ์ดํฐ ์คํฌ๋ฆฝํ ์ธ์ด์ ๋๋ค. Flux๋ InfluxQL๋ณด๋ค ํจ์ฌ ๋ ๋ฐ์ด๋ ๋ณต์กํ ๋ณํ, ์ฌ๋ฌ measurement ๊ฐ์ ์กฐ์ธ, ์ธ๋ถ ๋ฐ์ดํฐ ์์ค์์ ํตํฉ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ํ์ง๋ง ํ์ต ๊ณก์ ์ด ์๋นํ ๊ฐํ๋ฆ ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ ๋ฐ ์ํ๊ณ
- ๋์ ์ฐ๊ธฐ ์ฒ๋ฆฌ๋: ์ด๋น ์๋ฐฑ๋ง ๊ฐ์ ๋ฐ์ดํฐ ํฌ์ธํธ๋ฅผ ์์งํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
- ๋ด์ฅ ํ๋ซํผ: InfluxDB 2.0 ์ด์ ๋ฒ์ ์ ๋ฐ์ดํฐ ์์ง(Telegraf ๋ฑ), ์๊ฐํ(๋์๋ณด๋), ์๋ฆผ(์์ )์ ๋จ์ผ ๋ฐ์ด๋๋ฆฌ์ ํฌํจํ๋ ํตํฉ ํ๋ซํผ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๊ธฐ์กด์ TICK ์คํ(Telegraf, InfluxDB, Chronograf, Kapacitor)์ ๋์ฒดํฉ๋๋ค.
- ๋ฐ์ดํฐ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ: ์๋ํ๋ ๋ฐ์ดํฐ ๋ณด์กด ์ ์ฑ ์ ํตํด ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ๋ค์ด์ํ๋งํ๊ฑฐ๋ ์ญ์ ํ์ฌ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ ๋ฆฝ ์คํ์ ๋จ์์ฑ: ์คํ ์์ค ๋ฒ์ ์ ์ธ๋ถ ์ข ์์ฑ์ด ์๋ ๋จ์ผ ๋ฐ์ด๋๋ฆฌ๋ก, ๋งค์ฐ ์ฝ๊ฒ ์์ํ๊ณ ์คํํ ์ ์์ต๋๋ค.
TimescaleDB๋? ์๊ณ์ด์ ์ํ SQL
TimescaleDB๋ ์์ ํ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์ทจํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฒ์๋ถํฐ ๊ตฌ์ถํ๋ ๋์ , ๊ฐ๋ ฅํ PostgreSQL ํ์ฅ ๊ธฐ๋ฅ์ผ๋ก ๋ง๋ค์ด์ก์ต๋๋ค. ์ด๋ ์ธ๊ณ์์ ๊ฐ์ฅ ์ง๋ณด๋ ์คํ ์์ค ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค ํ๋์ ๋ชจ๋ ์์ ์ฑ, ์ ๋ขฐ์ฑ ๋ฐ ํ๋ถํ ๊ธฐ๋ฅ์ ์์๋ฐ์ผ๋ฉด์ ์๊ณ์ด ๋ฐ์ดํฐ์ ๋ํ ํนํ๋ ์ต์ ํ๋ฅผ ์ถ๊ฐํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
ํต์ฌ ์ํคํ ์ฒ ๋ฐ ๋ฐ์ดํฐ ๋ชจ๋ธ
TimescaleDB๋ฅผ ์ค์นํ๋ฉด ๋ณธ์ง์ ์ผ๋ก ํ์ค PostgreSQL ์ธ์คํด์ค๋ฅผ ๊ฐํํ๋ ๊ฒ์ ๋๋ค. ๋ง๋ฒ์ ํต์ฌ ๊ฐ๋ ์ ์์ต๋๋ค:
- Hypertables: ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ฌ์ฉ์ ๋๋ฉด ํ ์ด๋ธ์ ๋๋ค. ์ผ๋ฐ PostgreSQL ํ ์ด๋ธ์ฒ๋ผ ๋ณด์ด๊ณ ๋๊ปด์ง๋๋ค.
- Chunks: ๋ด๋ถ์ ์ผ๋ก TimescaleDB๋ ํ์ดํผํ ์ด๋ธ ๋ฐ์ดํฐ๋ฅผ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ฒญํฌ(chunk)๋ผ๊ณ ํ๋ ์ฌ๋ฌ ๊ฐ์ ์์ ์์ ํ ์ด๋ธ๋ก ์๋ ๋ถํ ํฉ๋๋ค. ๊ฐ ์ฒญํฌ๋ ํ์ค PostgreSQL ํ ์ด๋ธ์ ๋๋ค. ์ด ๋ถํ ์ ์ฌ์ฉ์์๊ฒ ํฌ๋ช ํ์ง๋ง TimescaleDB ์ฑ๋ฅ์ ํต์ฌ์ ๋๋ค.
PostgreSQL์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์์ ํ ๊ด๊ณํ์ ๋๋ค. ํ์์คํฌํ, ๋ฉํ๋ฐ์ดํฐ(์ฅ์น ID ๋๋ ์์น ๋ฑ) ๋ฐ ๋ฐ์ดํฐ ๊ฐ์ ์ํ ์ด์ด ์๋ ํ์ค SQL ํ ์ด๋ธ์ ๋ง๋ญ๋๋ค. ์ด๋ฏธ SQL์ ์๊ณ ์๋ค๋ฉด ์๋ก์ด ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฐฐ์ธ ํ์๊ฐ ์์ต๋๋ค.
CREATE TABLE conditions (
time TIMESTAMPTZ NOT NULL,
location TEXT NOT NULL,
temperature DOUBLE PRECISION NULL,
humidity DOUBLE PRECISION NULL
);
SELECT create_hypertable('conditions', 'time');
์ฟผ๋ฆฌ ์ธ์ด: ์์ ํ SQL์ ํ
TimescaleDB์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ๋ฐ๋ก ํ์ค SQL์ด๋ผ๋ ์ฟผ๋ฆฌ ์ธ์ด์ ๋๋ค. ์ด๋ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ํฐ ์ด์ ์ ๋๋ค:
- ํ์ต ๊ณก์ ์ ๋ก: SQL์ ์ฌ์ฉํ๋ ๋ชจ๋ ๊ฐ๋ฐ์, ๋ถ์๊ฐ ๋๋ ๋๊ตฌ๋ ์ฆ์ TimescaleDB๋ก ์์ ํ ์ ์์ต๋๋ค.
- ๋น๊ตํ ์ ์๋ ๊ฐ๋ ฅํจ: ์๋ธ์ฟผ๋ฆฌ, ์๋์ฐ ํจ์, ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์ค์ํ JOIN์ ํฌํจํ SQL์ ์์ ํ ๋ถ์ ๋ฅ๋ ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ํ๋ถํ ์ํ๊ณ: ๊ณ ๊ธ ์ง๋ฆฌ ๊ณต๊ฐ ์ฟผ๋ฆฌ๋ฅผ ์ํ PostGIS์ ๊ฐ์ ๋๊ตฌ, ์ปค๋ฅํฐ, ํ์ฅ ๊ธฐ๋ฅ ๋ฑ ๋ฐฉ๋ํ PostgreSQL ์ํ๊ณ ์ ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ํ TimescaleDB๋ time_bucket(), first(), last()์ ๊ฐ์ ์๋ฐฑ ๊ฐ์ ํนํ๋ ์๊ณ์ด ํจ์๋ฅผ SQL์ ์ถ๊ฐํ์ฌ ์ผ๋ฐ์ ์ธ ์๊ณ์ด ์ฟผ๋ฆฌ๋ฅผ ๋จ์ํํ๊ณ ๊ฐ์ํํฉ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ ๋ฐ ์ํ๊ณ
- ์๋ฒฝํ SQL ์ง์: ๊ธฐ์กด SQL ์ ๋ฌธ ์ง์๊ณผ ๋๊ตฌ๋ฅผ ์์ ์์ด ํ์ฉํ ์ ์์ต๋๋ค.
- ๊ด๊ณํ ๋ฐ์ดํฐ์ ์๊ณ์ด ๋ฐ์ดํฐ์ ๊ฒฐํฉ: ์๊ณ์ด ๋ฐ์ดํฐ(์: ์ผ์ ํ๋ ๊ฐ)์ ๊ด๊ณํ ๋น์ฆ๋์ค ๋ฐ์ดํฐ(์: ์ฅ์น ๋ฉํ๋ฐ์ดํฐ, ๊ณ ๊ฐ ์ ๋ณด)๋ฅผ ์ํํ๊ฒ JOINํ ์ ์์ต๋๋ค.
- ์ ์ฆ๋ ์ ๋ขฐ์ฑ: PostgreSQL์ ์์ญ ๋ ๊ฐ์ ๊ฐ๋ฐ, ๊ฒฌ๊ณ ํ ์ ๋ขฐ์ฑ ๋ฐ ACID ์ค์๋ฅผ ์์ํฉ๋๋ค.
- ๊ณ ๊ธ ์์ถ: ์คํ ๋ฆฌ์ง ๊ณต๊ฐ์ 90% ์ด์ ์ค์ผ ์ ์๋ ๋๊ธ ์ต๊ณ ์ ์ปฌ๋ผํ ์์ถ์ ์ ๊ณตํฉ๋๋ค.
์ ๋ฉด ๋น๊ต: InfluxDB vs. TimescaleDB
์ ๋ณด์ ์ ๊ฐํ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์๋๋ก ๋ช ๊ฐ์ง ์ฃผ์ ๊ธฐ์ค์ ๊ฑธ์ณ ํต์ฌ์ ์ธ ์ฐจ์ด์ ์ ๋ถ์ํด ๋ณด๊ฒ ์ต๋๋ค.
ํต์ฌ ์ฒ ํ ๋ฐ ์ํคํ ์ฒ
- InfluxDB: ํน์ ๋ชฉ์ ์ผ๋ก ์ ์๋ ๋ ๋ฆฝํ ์์คํ ์ ๋๋ค. ๋ชจ๋ ๊ฒ์ ์ฒ์๋ถํฐ ๊ตฌ์ถํ์ฌ ์๊ณ์ด ์ํฌ๋ก๋์ ๋ํ ์ฑ๋ฅ๊ณผ ์ฌ์ฉ ์ฉ์ด์ฑ์ ์ฐ์ ์ํฉ๋๋ค. ์ด๋ก ์ธํด ๊ณ ๋๋ก ์ต์ ํ๋์์ง๋ง ์ ์ฐ์ฑ์ด ๋จ์ด์ง ์ ์๋ ์์คํ ์ด ๋ฉ๋๋ค.
- TimescaleDB: ๋ฒ์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐํํ๋ ํ์ฅ ๊ธฐ๋ฅ์ ๋๋ค. ์ฑ์ํ PostgreSQL์ ๊ธฐ๋ฐ ์์ ๊ตฌ์ถํ์ฌ ์ ๋ขฐ์ฑ, ์ฟผ๋ฆฌ ๋ฅ๋ ฅ, ์ํ๊ณ ํธํ์ฑ์ ์ฐ์ ์ํฉ๋๋ค. ์ด๋ ๋๋ผ์ด ์ ์ฐ์ฑ์ ์ ๊ณตํ์ง๋ง ์์ ํ RDBMS๋ฅผ ๊ด๋ฆฌํ๋ ์ด์ ์ค๋ฒํค๋๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค.
๊ธ๋ก๋ฒ ๊ด์ : ๋ฐฉ๊ฐ๋ก๋ฅด์ ํ ์คํํธ์ ์ ๋น ๋ฅธ ํ๋กํ ํ์ดํ์ ์ํด InfluxDB์ ๋จ์ํ ์ฌ์ธ์ ์ค์ ์ ์ ํธํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด, ๋ฐ๋์ ๋๊ท๋ชจ ๊ธ์ต ๊ธฐ๊ด์ ๊ธฐ์กด PostgreSQL ์ธํ๋ผ์์ ํตํฉ ๋ฅ๋ ฅ๊ณผ ์ ์ฆ๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋๋ฌธ์ TimescaleDB๋ฅผ ์ ํธํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ๋ชจ๋ธ ๋ฐ ์คํค๋ง ์ ์ฐ์ฑ
- InfluxDB: measurement, tag, field์ ๋น๊ด๊ณํ ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ํ์ค ์๊ณ์ด ํจํด์๋ ๋งค์ฐ ํจ์จ์ ์ด์ง๋ง ๊ด๊ณํ ๋ก์ง์ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค. ๋์ ์นด๋๋๋ฆฌํฐ(๊ณ ์ ํ ํ๊ทธ ๊ฐ์ ์๊ฐ ๋ง์ ๊ฒฝ์ฐ)๋ ๊ตฌํ ๋ฒ์ ์์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค.
- TimescaleDB: ํ์ค ๊ด๊ณํ(SQL) ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ์คํค๋ง๋ฅผ ๋ฏธ๋ฆฌ ์ ์ํด์ผ ํ์ง๋ง JOIN์ ํตํด ๋ณต์กํ ๋ฐ์ดํฐ ๊ด๊ณ์ ๋ํ ์์ฒญ๋ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ๋์ ์นด๋๋๋ฆฌํฐ๋ฅผ PostgreSQL์ ๋ค๋ฅธ ์ธ๋ฑ์ฑ๋ ์ด์ฒ๋ผ ์ ์ฒ๋ฆฌํฉ๋๋ค.
์ฟผ๋ฆฌ ์ธ์ด
- InfluxDB: ์ด์ค ์ธ์ด์ ์ธ๊ณ์ ๋๋ค. InfluxQL์ ๊ฐ๋จํ์ง๋ง ์ ํ์ ์ ๋๋ค. Flux๋ ์๊ณ์ด ๋ถ์์ ๋งค์ฐ ๊ฐ๋ ฅํ์ง๋ง, ํ์ด ์๋นํ ํ์ต ํฌ์๋ฅผ ํด์ผ ํ๋ ๋ ์ ์ ์ธ ์ธ์ด์ ๋๋ค.
- TimescaleDB: ํ์ค SQL์ ๋๋ค. ์ด๊ฒ์ด ์๋ง๋ ๊ฐ์ฅ ๋งค๋ ฅ์ ์ธ ๊ธฐ๋ฅ์ผ ๊ฒ์ ๋๋ค. ์ง์ ์ฅ๋ฒฝ์ ๋ฎ์ถ๊ณ , ๋ฐฉ๋ํ ์ธ์ฌ ํ์ ํ์ฉํ๋ฉฐ, SQL์์๋ ์ฌ์ํ์ง๋ง InfluxQL์์๋ ๋ณต์กํ๊ฑฐ๋ ๋ถ๊ฐ๋ฅํ ์ ๊ตํ ๋ถ์ ์ฟผ๋ฆฌ๋ฅผ ํ์ฉํฉ๋๋ค.
์ฑ๋ฅ: ์์ง, ์ฟผ๋ฆฌ, ์คํ ๋ฆฌ์ง
์ฑ๋ฅ ๋ฒค์น๋งํฌ๋ ์ ๋ช ๋์ ์ ๋๋ก ๋ณต์กํ๊ณ ์ํฌ๋ก๋์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ธ ํน์ง์ ๋ํด ๋ ผ์ํ ์ ์์ต๋๋ค.
- ์์ง ์ฒ๋ฆฌ๋: ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ ๊ฒฝ์ด์ ์ธ ์ฐ๊ธฐ ์ฑ๋ฅ์ ์ ๊ณตํ๋ฉฐ ์ ์ ํ ํ๋์จ์ด์์ ์ด๋น ์๋ฐฑ๋ง ๊ฐ์ ๋ฉํธ๋ฆญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ค๋ซ๋์ InfluxDB๋ ํนํ๋ TSM ์์ง ๋๋ถ์ ์์ํ๊ณ ๊ฐ๋จํ ์์ง ์๋์์ ์ฝ๊ฐ์ ์ฐ์๋ฅผ ์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ต๋๋ค. TimescaleDB์ ์ฑ๋ฅ์ ๋งค์ฐ ๊ฒฝ์๋ ฅ์ด ์์ผ๋ฉฐ ์ผ๊ด ์ฐ๊ธฐ(batched writes)๋ฅผ ํตํด ํฐ ์ด์ ์ ์ป์ต๋๋ค.
- ์ฟผ๋ฆฌ ์ฑ๋ฅ:
- ๋จ์ํ ์๊ฐ ๊ธฐ๋ฐ ์ง๊ณ(์: ์ง๋ ํ ์๊ฐ ๋์ ํธ์คํธ๋ณ๋ก ๊ทธ๋ฃนํ๋ `AVG(cpu_usage)`)์ ๊ฒฝ์ฐ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ ๋ฒ๊ฐ์ฒ๋ผ ๋น ๋ฆ ๋๋ค.
- ๊ด๊ณํ ๋ฉํ๋ฐ์ดํฐ์์ JOIN์ ํฌํจํ๋ ๋ณต์กํ ๋ถ์ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ TimescaleDB๊ฐ ํ์คํ ์น์์ ๋๋ค. InfluxDB์์ ์ด๋ฌํ ์ ํ์ ์ฟผ๋ฆฌ๋ฅผ ์ํํ๋ ค๋ฉด Flux๋ฅผ ์ฌ์ฉํด์ผ ํ๋ฉฐ ํจ์ฌ ๋ ๋ณต์กํ๊ณ ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ์์ถ: ๋ ๋ค ์ ๊ณ ์ต๊ณ ์ ์ฐ์ํ ์์ถ์ ์ ๊ณตํฉ๋๋ค. InfluxDB์ TSM์ ๋ธํ ์ธ์ฝ๋ฉ ๋ฐ ๋ฐ๋ ์ค ์ธ์ฝ๋ฉ๊ณผ ๊ฐ์ ๊ธฐ์ ์ ์ฌ์ฉํฉ๋๋ค. TimescaleDB๋ ์ด๋ณ๋ก ํฌ๋ช ํ ์ปฌ๋ผํ ์์ถ์ ์ ๊ณตํ์ฌ ๋ฐ์ดํฐ ์ ํ์ ๊ฐ์ฅ ์ ํฉํ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ํผํฉํ์ฌ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ฉฐ, ์ข ์ข 90-98%์ ์์ถ๋ฅ ์ ๋ฌ์ฑํฉ๋๋ค.
์ํ๊ณ ๋ฐ ํตํฉ
- InfluxDB: ํนํ DevOps ๋ฐ ๋ชจ๋ํฐ๋ง ๋ถ์ผ์์ ๊ฐ๋ ฅํ๊ณ ์ฑ์ํ ์ํ๊ณ๋ฅผ ๊ฐ์ถ๊ณ ์์ต๋๋ค. ๋ง์ ์ธ์ด๋ก ๋ ๋ค์ดํฐ๋ธ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ผ๋ฉฐ Grafana์ ๊ฐ์ ๋๊ตฌ์ ์ํํ๊ฒ ํตํฉ๋ฉ๋๋ค. ์ฌ์ธ์ InfluxDB 2.0+ ํ๋ซํผ์ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ์๋ฒฝํ ์๋ฃจ์ ์ ๋๋ค.
- TimescaleDB: ์ํ๊ณ๋ ์ ์ฒด PostgreSQL ์ํ๊ณ์ ๋๋ค. ์ด๋ ์์ฒญ๋ ์ด์ ์ ๋๋ค. PostgreSQL๊ณผ ์๋ํ๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ , ์ปค๋ฅํฐ(JDBC, ODBC), BI ๋๊ตฌ(Tableau, Power BI) ๋๋ ํ์ฅ ๊ธฐ๋ฅ์ TimescaleDB์ ํจ๊ป ์๋ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ฌผ๋ฅ๋ ์์ฐ ์ถ์ ๊ณผ ๊ฐ์ ์ฌ์ฉ ์ฌ๋ก์ ์ด์์ ์ธ, ์ธ๊ณ์ ์์ค์ ์ง๋ฆฌ ๊ณต๊ฐ ๋ถ์์ ์ํ PostGIS์ ๊ฐ์ ๊ฐ๋ ฅํ ํ์ฅ ๊ธฐ๋ฅ์ด ํฌํจ๋ฉ๋๋ค.
ํ์ฅ์ฑ ๋ฐ ํด๋ฌ์คํฐ๋ง
- InfluxDB: ์คํ ์์ค ๋ฒ์ ์ ๋จ์ผ ๋ ธ๋ ์ธ์คํด์ค์ ๋๋ค. ์ํ์ ํ์ฅ ๋ฐ ๊ณ ๊ฐ์ฉ์ฑ์ ์์ฉ ์ ํ์ธ InfluxDB Enterprise ๋ฐ InfluxDB Cloud์ ๊ธฐ๋ฅ์ ๋๋ค.
- TimescaleDB: ์คํ ์์ค ๋ฒ์ ์ ๋จ์ผ์ ๊ฐ๋ ฅํ ์๋ฒ์์ ๋งค์ฐ ํฐ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์์ง์ ์ผ๋ก ํ์ฅํ ์ ์์ต๋๋ค. ์ํ์ ํ์ฅ ๋ฐ ๊ณ ๊ฐ์ฉ์ฑ์ ์ํ ๋ค์ค ๋ ธ๋ ํด๋ฌ์คํฐ๋ง์ ํด๋ผ์ฐ๋ ๋ฐ ์์ฒด ํธ์คํ ์ํฐํ๋ผ์ด์ฆ ์ ํ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฌ์ฉ ์ฌ๋ก ์ฌ์ธต ๋ถ์: ์ธ์ ๋ฌด์์ ์ ํํด์ผ ํ ๊น?
์ ํ์ ์ด๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ฐ๊ด์ ์ผ๋ก '๋ ๋์๊ฐ'๊ฐ ์๋๋ผ, ์ด๋ค ๊ฒ์ด ๋น์ ์ ํ๋ก์ ํธ, ํ, ๋ฐ์ดํฐ์ '์ ํฉํ๊ฐ'์ ๊ดํ ๊ฒ์ ๋๋ค.
InfluxDB๋ฅผ ์ ํํด์ผ ํ ๋...
- ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ํ DevOps/๋ฉํธ๋ฆญ ๋ชจ๋ํฐ๋ง์ผ ๋: InfluxDB์ ํ๋ซํผ์ ์๋ฒ, ์ ํ๋ฆฌ์ผ์ด์ , ๋คํธ์ํฌ์์ ๋ฉํธ๋ฆญ์ ์์งํ๊ณ ๋ถ์ํ๊ธฐ ์ํด ๋ง์ถค ์ ์๋์์ต๋๋ค. Telegraf ์์ง๊ธฐ์๋ ์๋ฐฑ ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ด ์์ด ํ๋ฌ๊ทธ ์ค ํ๋ ์ด ์๋ฃจ์ ์ ๋๋ค.
- ์ค์น์ ๋จ์์ฑ์ ์ฐ์ ์ํ ๋: ์ธ๋ถ ์ข ์์ฑ์ด ์๋ ๋น ๋ฅด๊ณ ๋ ๋ฆฝ์ ์ธ TSDB๋ฅผ ์ํ๋ค๋ฉด InfluxDB์ ๋จ์ผ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ด๊ธฐ๊ธฐ ์ด๋ ต์ต๋๋ค.
- ์ฟผ๋ฆฌ ์๊ตฌ์ฌํญ์ด ์ฃผ๋ก ์๊ฐ ์ค์ฌ ์ง๊ณ์ผ ๋: ์ฃผ๋ก `GROUP BY time()`์ ์ํํ๊ณ ๋ณต์กํ ๋น์ฆ๋์ค ๋ฐ์ดํฐ์ JOINํ ํ์๊ฐ ์๋ค๋ฉด InfluxDB๋ ๋งค์ฐ ํจ์จ์ ์ ๋๋ค.
- ํ์ด Flux์ ํฌ์ํ ์ํฅ์ด ์์ ๋: Flux์ ๊ฐ๋ ฅํ ๋ถ์ ๋ฅ๋ ฅ์ ๊ฐ์น๋ฅผ ๋ณด๊ณ ํ์ต ๊ณก์ ์ ๋๋นํ ์ค๋น๊ฐ ๋์ด ์๋ค๋ฉด, ์ด๋ ์ค์ํ ์์ฐ์ด ๋ ์ ์์ต๋๋ค.
TimescaleDB๋ฅผ ์ ํํด์ผ ํ ๋...
- ์ด๋ฏธ PostgreSQL์ ์ฌ์ฉํ๊ณ ์์ ๋: ์กฐ์ง์ ์ด๋ฏธ PostgreSQL ์ ๋ฌธ ์ง์๊ณผ ์ธํ๋ผ๊ฐ ์๋ค๋ฉด TimescaleDB๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ์์ฐ์ค๋ฝ๊ณ ์ค๋ฒํค๋๊ฐ ์ ์ ์ ํ์ ๋๋ค.
- ์๊ณ์ด ๋ฐ์ดํฐ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฅผ ๊ฒฐํฉํด์ผ ํ ๋: ์ด๊ฒ์ด TimescaleDB์ ํฌ๋ฌ ๊ธฐ๋ฅ์ ๋๋ค. "ํน์ ๊ณต์ฅ์์ ์ ์กฐ๋๊ณ 'ํ๋ฆฌ๋ฏธ์' ๋ฑ๊ธ ๊ณ ๊ฐ์ ์ํ๋ ๋ชจ๋ ์ฅ์น์ ํ๊ท ์ผ์ ์จ๋๋ฅผ ๋ณด์ฌ์ฃผ์ธ์"์ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์คํํด์ผ ํ๋ค๋ฉด TimescaleDB๊ฐ ๋ช ํํ ์ ํ์ ๋๋ค.
- ํ์ด SQL์ ๋ฅ์ํ ๋: ๊ฐ๋ฐ ๋ฐ ๋ฐ์ดํฐ ๋ถ์ ํ์ ๊ธฐ์กด ์ง์์ ํ์ฉํ๋ ๊ฒ์ ์์ฒญ๋ ์์ฐ์ฑ ํฅ์ ์์ธ์ ๋๋ค.
- ์ง๋ฆฌ-์๊ฐ์ ๋ถ์์ด ํ์ํ ๋: TimescaleDB์ PostGIS ํ์ฅ์ ์กฐํฉ์ ์๊ฐ๊ณผ ์์น ๊ตฌ์ฑ ์์๋ฅผ ๋ชจ๋ ๊ฐ์ง ๋ฐ์ดํฐ(์: ๊ธ๋ก๋ฒ ํด์ด ์ ๋จ ์ถ์ )๋ฅผ ๋ถ์ํ๊ธฐ ์ํ ๋ ๋ณด์ ์ธ ํ๋ซํผ์ ๋ง๋ญ๋๋ค.
- ์ฑ์ํ RDBMS์ ์ ๋ขฐ์ฑ๊ณผ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ด ํ์ํ ๋: ๊ธ์ต ์๋น์ค, ์ฐ์ ์ ์ด ์์คํ ๋๋ ๋ฐ์ดํฐ ์์ค์ด ํ์ฉ๋์ง ์๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ PostgreSQL์ ์ ํฌ ํ ์คํธ๋ฅผ ๊ฑฐ์น ๊ธฐ๋ฐ์ ์ฃผ์ ์ด์ ์ ๋๋ค.
๋ฏธ๋: InfluxDB 3.0๊ณผ Timescale์ ์งํ
๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๊ฒฝ์ ๋์์์ด ์งํํ๊ณ ์์ต๋๋ค. ์ค์ํ ๋ฐ์ ์ InfluxDB 3.0์ ๋๋ค. ์ด ์๋ก์ด ๋ฒ์ ์ Apache Arrow ๋ฐ Apache Parquet๊ณผ ๊ฐ์ ์ต์ ๋ฐ์ดํฐ ์ํ๊ณ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ Rust๋ก ์คํ ๋ฆฌ์ง ์์ง(IOx๋ผ๋ ์ด๋ฆ)์ ์ฌ๊ตฌ์ถํ๋ ์์ ํ ์ํคํ ์ฒ ๊ฐํธ์ ๋ํ๋ ๋๋ค. ์ด๋ ํ์ ์ ์ธ ๋ณํ๋ฅผ ๊ฐ์ ธ์ต๋๋ค:
- ์ฌ์ค์ ๋ฌด์ ํ ์นด๋๋๋ฆฌํฐ: ์๋ก์ด ์์ง์ ์ญ์ฌ์ ์ธ ๊ณจ์นซ๊ฑฐ๋ฆฌ์๋ ๊ฑฐ์ ๋ฌดํํ ์๋ฆฌ์ฆ ์นด๋๋๋ฆฌํฐ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
- SQL ์ง์: InfluxDB 3.0์ ๊ธฐ๋ณธ ์ฟผ๋ฆฌ ์ธ์ด๋ก SQL์ ์ผ๊ธ์ผ๋ก ์ง์ํ๋ฉฐ, ์ด๋ TimescaleDB์ ๊ฐ์ฅ ํฐ ์ฅ์ ๊ณผ ์ง์ ๊ฒฝ์ํ๋ ค๋ ์์ง์์ ๋๋ค.
- ์ปฌ๋ผํ ์คํ ๋ฆฌ์ง: Parquet์ ํ์ฉํ์ฌ ๋งค์ฐ ํจ์จ์ ์ด๊ณ ํ์คํ๋ ์ปฌ๋ผํ ์คํ ๋ฆฌ์ง๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด๋ฌํ ์งํ๋ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ๊ฒฝ๊ณ๋ฅผ ๋ชจํธํ๊ฒ ๋ง๋ญ๋๋ค. InfluxDB 3.0์ด ์ฑ์ํด์ง์ ๋ฐ๋ผ, ํ๋ TimescaleDB๋ง์ ๊ณ ์ ํ ์ฅ์ ์ด์๋ ๋ง์ ์ด์ (SQL ๋ฐ ์ปฌ๋ผํ ์คํ ๋ฆฌ์ง ๋ฑ)์ ์ ๊ณตํ๋ฉด์๋ ํน์ ๋ชฉ์ ์ ์ด์ ์ ์ ์งํ ๊ฒ์ ๋๋ค.
ํํธ, TimescaleDB๋ ๋์ฑ ํฅ์๋ ์์ถ, ๋ ๋์ ๋ค์ค ๋ ธ๋ ์ฑ๋ฅ, ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ํ๊ณ์์ ๋ ๊น์ ํตํฉ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ฉฐ ๊ณ์ ํ์ ํ๊ณ ์์ผ๋ฉฐ, PostgreSQL ์ธ๊ณ๋ฅผ ์ํ ์ต๊ณ ์ ์๊ณ์ด ์๋ฃจ์ ์ผ๋ก์์ ์ ์ง๋ฅผ ๊ณต๊ณ ํ ํ๊ณ ์์ต๋๋ค.
๊ฒฐ๋ก : ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์ฌ๋ฐ๋ฅธ ์ ํํ๊ธฐ
InfluxDB์ TimescaleDB ๊ฐ์ ๊ฒฝ์์ ๋ ๊ฐ์ง ์ฒ ํ, ์ฆ ํนํ๋ ๋ชฉ์ ์ ์์คํ ๋ ํ์ฅ ๊ฐ๋ฅํ ๋ฒ์ฉ ๊ฐ์์ ๊ณ ์ ์ ์ธ ์ด์ผ๊ธฐ์ ๋๋ค. ๋ณดํธ์ ์ธ ์น์๋ ์์ต๋๋ค.
์ฌ๋ฐ๋ฅธ ์ ํ์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ํ ์ ์คํ ํ๊ฐ์ ๋ฌ๋ ค ์์ต๋๋ค:
- ๋ฐ์ดํฐ ๋ชจ๋ธ ๋ณต์ก์ฑ: ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ๋น์ฆ๋์ค ๋ฐ์ดํฐ์ JOINํด์ผ ํฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด TimescaleDB ์ชฝ์ผ๋ก ๊ธฐ์ธ์ด์ธ์. ๊ทธ๋ ์ง ์๋ค๋ฉด InfluxDB๊ฐ ๊ฐ๋ ฅํ ๊ฒฝ์์์ ๋๋ค.
- ๊ธฐ์กด ํ ๊ธฐ์ : ํ์ด SQL ์ ๋ฌธ๊ฐ๋ก ๊ฐ๋ ์ฐจ ์์ต๋๊น? TimescaleDB๋ ์ง์ฒ๋ผ ํธ์ํ ๊ฒ์ ๋๋ค. Flux์ ๊ฐ์ ์๋กญ๊ณ ๊ฐ๋ ฅํ ์ธ์ด๋ฅผ ๋ฐฐ์ฐ๊ฑฐ๋ ์๋ก ์์ํ๋ ๋ฐ ์ด๋ ค ์์ต๋๊น? InfluxDB๊ฐ ์ ํฉํ ์ ์์ต๋๋ค.
- ์ด์ ์ค๋ฒํค๋: ๊ฐ๋จํ ๋ ๋ฆฝํ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ํ์ญ๋๊น? InfluxDB. ์ด๋ฏธ PostgreSQL์ ๊ด๋ฆฌํ๊ณ ์๊ฑฐ๋ ๊ด๋ฆฌํ๋ ๋ฐ ๋ถํธํจ์ด ์์ต๋๊น? TimescaleDB.
- ์ํ๊ณ ์๊ตฌ์ฌํญ: PostGIS์ ๊ฐ์ ํน์ PostgreSQL ํ์ฅ ๊ธฐ๋ฅ์ด ํ์ํฉ๋๊น? TimescaleDB๊ฐ ์ ์ผํ ์ ํ์ ๋๋ค. Telegraf์ InfluxDB ํ๋ซํผ์ DevOps ์ค์ฌ ์ํ๊ณ๊ฐ ์๋ฒฝํ๊ฒ ์ผ์นํฉ๋๊น? InfluxDB๋ฅผ ์ ํํ์ธ์.
InfluxDB 3.0์ ๋ฑ์ฅ๊ณผ SQL ์ง์์ผ๋ก ๊ฒฐ์ ์ ๋์ฑ ๋ฏธ๋ฌํด์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํต์ฌ ์ฒ ํ์ ๋จ์ ์์ต๋๋ค. InfluxDB๋ ์๊ณ์ด ์ฐ์ ํ๋ซํผ์ธ ๋ฐ๋ฉด, TimescaleDB๋ ๋ฐ์ด๋ ์๊ณ์ด ๊ธฐ๋ฅ์ ๊ฐ์ถ PostgreSQL ์ฐ์ ํ๋ซํผ์ ๋๋ค.
๊ถ๊ทน์ ์ผ๋ก ๋ชจ๋ ๊ธ๋ก๋ฒ ํ์ ์ํ ์ต์์ ์กฐ์ธ์ ๊ฐ๋ ์ฆ๋ช (proof-of-concept)์ ์ํํ๋ ๊ฒ์ ๋๋ค. ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ชจ๋ ์ค์ ํ๊ณ , ๋ํ์ ์ธ ๋ฐ์ดํฐ ์ํ์ ์์งํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ์ ํ์ ์ฟผ๋ฆฌ๋ฅผ ์คํํด ๋ณด์ญ์์ค. ์ง์ ์ ์ธ ๊ฒฝํ์ ํตํด ์ด๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ํฌ๋ก๋์ ๊ฐ์ฅ ์ ํฉํ ์ฑ๋ฅ์ ๋ฐํํ ๋ฟ๋ง ์๋๋ผ ํ์ ๊ฐ์ฅ ์ ํฉํ๊ฒ ๋๊ปด์ง๋์ง ์ ์ ์์ ๊ฒ์ ๋๋ค.