Coding Planet
[๋ฐ์ดํฐํ๋ธ] ๋ฐ์ดํฐ ํ๋ฆ ํบ์๋ณด๊ธฐ - ๋ฐ์ดํฐ ์ฝ์ด ๋ชจ๋(Data Core Module) ๋ณธ๋ฌธ
[๋ฐ์ดํฐํ๋ธ] ๋ฐ์ดํฐ ํ๋ฆ ํบ์๋ณด๊ธฐ - ๋ฐ์ดํฐ ์ฝ์ด ๋ชจ๋(Data Core Module)
jhj.sharon 2024. 1. 9. 16:04๋ฐ์ดํฐ ์ฝ์ด ๋ชจ๋์
Data manager, Data service broker, Data streaming broker, Ingest interface, Push agent, Admin UI, Dashboard ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
1. Data manger
:๋ฐ์ดํฐ ๋ชจ๋ธ ๊ด๋ฆฌ, ๋ฐ์ดํฐ ์ ๊ด๋ฆฌ, ๋ฐ์ดํฐ ์ ํ๋ก์ฐ ๊ด๋ฆฌ, ๋ฐ์ดํฐ ์ ๊ทผ๋ฐ์ด ๊ด๋ฆฌ, ๋ฐ์ดํฐ ์์ ์ฃผ๊ธฐ ๋ฑ์ ๋ฐ์ดํฐ ๊ฑฐ๋ฒ๋์ค ๋ด๋น
๋ฐ์ดํฐ์
: ๋ฐ์ดํฐ์ ๋ชจ์. ์ผ๋ฐ์ ์ผ๋ก ๋น์ทํ ์ ํ์ ๋ฐ์ดํฐ๊ฐ ๋ชจ์์ ธ ์๋ค. ์ด๋ฌํ ๋ฐ์ดํฐ๋ ์ฃผ์ , ๋ชฉ์ ๋๋ ๋ถ์ ๋ชฉํ์ ๋ฐ๋ผ ๊ตฌ์ฑ๋ ์ ์์ผ๋ฉฐ ๋ฐ์ดํฐ์ ํจํด, ํน์ฑ ๋๋ ๊ด๊ณ๋ฅผ ์ดํดํ๊ณ ์ ๋ณด๋ฅผ ์ถ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
๋ฐ์ดํฐ ๊ฑฐ๋ฒ๋์ค
: ์กฐ์ง ๋ด์์ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ ์ดํ๊ธฐ ์ํ ์ ๋ต, ์ ์ฑ , ํ๋ก์ธ์ค ๋ฐ ๊ธฐ์ ์ ์งํฉ์ ์๋ฏธํ๋ค. ๋ฐ์ดํฐ ๊ฑฐ๋ฒ๋์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ค์ํ ์์ฐ์ผ๋ก ์ธ์ํ๊ณ , ๋ฐ์ดํฐ์ ํ์ง, ๋ณด์, ๊ท์ ์ค์, ์ ๊ทผ ๋ฐ ์ฌ์ฉ์ ์กฐ์ง์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ ๋ฐ์ดํฐ ์์ฐ์ ๊ฐ์น๋ฅผ ๊ทน๋ํํ๊ณ ๋ฐ์ดํฐ ๊ด๋ จ ๋ฆฌ์คํฌ๋ฅผ ์ต์ํํ๋ ๊ฒ์ ๋ชฉํ๋กํ๋ค.
2. Data Service Broker
: NGSI-LD API ์ธํฐํ์ด์ค๋ฅผ ํตํ ๋ฐ์ดํฐ ์์ง ๋ฐ ์ ๊ณต ๋ด๋น
- ๋ฐ์ดํฐ ์๋น์ค ๋ธ๋ก์ปค๋ ๋ฐ์ดํฐ ์์ค์ ๋ฐ์ดํฐ ์ฌ์ฉ์ ๊ฐ์ ์ค๊ฐ์ ์ญํ ์ ํ๋ ์์คํ ์ด๋ค. ์ด ์์คํ ์ ๋ฐ์ดํฐ๋ฅผ ์์ง, ๊ด๋ฆฌ ,๊ทธ๋ฆฌ๊ณ ํ์ํ ๊ณณ์ ์ ๊ณตํ๋ ์ญํ ์ ํ๋ค. NGSI-LD API ์ธํฐํ์ด์ค๋ฅผ ํตํ ๋ฐ์ดํฐ ์์ง ๋ฐ ์ ๊ณต์ ๋ด๋นํ๋ค.
- NGSI-LD API ์ธํฐํ์ด์ค: IoT ํ๊ฒฝ์์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ธฐ ์ํ ํ์ค ์ธํฐํ์ด์ค์ด๋ค. API๋ ์ํํธ์จ์ด ๋๋ ์์คํ ๊ฐ์ ์ํธ์์ฉ์ ๊ฐ๋ฅํ๊ฒํ๋ ๋๊ตฌ์ ๊ท์ฝ์ ์งํฉ์ด๋ค. ๋ฐ๋ผ์ NGSI-LD API ์ธํฐํ์ด์ค๋ IoT์ฅ์น์ ์์คํ ๊ฐ์ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ํ์คํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค.
3. Data Streaming Broker
:Apache Kafka ๊ธฐ๋ฐ ๋ฉ์์ง ํ๋ก ๋ฐ์ดํฐ ์ ๋ณ ํ ํฝ ๊ด๋ฆฌ, ์ด๋ฒคํธ ๋ฉ์์ง ๋ฐ ํต์ง ์์ฒญ ๋ฉ์์ง ํ ํฝ ๊ด๋ฆฌ. Ingest interface: ๋ฐ์ดํฐ ์ ๋ณ ์์ง ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณต, ๋ฐ์ดํฐ ์ ์ด ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฐ๋ฅธ ๋ฐ์ดํฐ ๊ฒ์ฆ ๊ธฐ๋ฅ ์ ๊ณต, ์ธ๋ถ ๋ฐ์ดํฐ ์์ค์ ๊ดํ ์ธ์ฆ ๊ธฐ๋ฅ ์ ๊ณต
**Apache Kafka : ๋์ฉ๋์ ์ค์๊ฐ ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์คํ ์์ค ๋ถ์ฐ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ์ด๋ค. Kafka๋ ๋ฉ์์ง ํ ์์คํ ์ ํ ํํ๋ก ๋ฉ์์ง(๋ฐ์ดํฐ)๋ฅผ ์์๋๋ก ์ ์ฅํ๊ณ ํ์์ ๋ฐ๋ผ ์ ๋ฌํ๋ค. |
- ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ ๋ธ๋ก์ปค๋ ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ก, ์ฒ๋ฆฌ ๋ฐ ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋ค. ์ฌ๊ธฐ์ ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ์ ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์์ฑ๋๊ณ ๊ทธ ๋ ์ดํฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ ์กํ๊ณ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ์๋ฏธํ๋ค.
- ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ ๋ธ๋ก์ปค๋ Apache Kafka๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ์ธ์ง ํ ์์คํ ์ ๊ตฌํํ๋ค.
- Kafka์์ 'ํ ํฝ'์ ๋ฉ์ธ์ง(๋ฐ์ดํฐ)๋ฅผ ๊ตฌ๋ถํ๋ ์นดํ ๊ณ ๋ฆฌ๋ ์ฃผ์ ๋ฅผ ์๋ฏธํ๋ค. ๋ฐ์ดํฐ ์ ๋ณ ํ ํฝ ๊ด๋ฆฌ๋ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์๋ก ๋ค๋ฅธ ํ ํฝ์ผ๋ก ๋ถ๋ฅํ์ฌ ๊ด๋ฆฌํ๋ค.
- ์ด๋ฒคํธ ๋ฉ์ธ์ง(์์คํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ฐ์ํ๋ ์ฌ๊ฑด์ ๋ํ ์ ๋ณด)์ ํต์ง ์์ฒญ ๋ฉ์ธ์ง(์ด๋ค ์์ ์ด๋ ์ด๋ฒคํธ์ ๋ํ ์๋ฆผ์ ์์ฒญํ๋ ๋ฉ์ธ์ง)๋ฅผ ๋ณ๋์ ํ ํฝ์ผ๋ก ๊ด๋ฆฌํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
4. Push agent
: ๋ฐ์ดํฐ ๊ตฌ๋ ๊ธฐ๋ฐ NGSI-LD ํต์ง ๋ฉ์์ง ์ ์ก
- Push Agent๋ ๋ฐ์ดํฐ๋ ์ ๋ณด๋ฅผ ์์ ์์๊ฒ ์๋์ผ๋ก ์ ์กํ๋ ์์คํ ๋๋ ์ํํธ์จ์ด ๊ตฌ์ฑ ์์๋ฅผ ์๋ฏธํ๋ค. ์ด๋ ์ฌ์ฉ์๋ ๋ค๋ฅธ ์์คํ ์ด ๋ช ์์ ์ผ๋ก ์์ฒญํ์ง ์์๋ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ์ ์กํ๋ 'ํธ์'์ญํ ์ ํ๋ค.
- ๋ฐ์ดํฐ๊ตฌ๋ ๊ธฐ๋ฐ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๋ฐฉ์์ด ๊ตฌ๋ ์์ ์๊ตฌ์ ์ํด ๊ฒฐ์ ๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ฌ์ฉ์ ๋๋ ๋ค๋ฅธ ์์คํ ์ด ํน์ ๋ฐ์ดํฐ์ ๋ํด '๊ตฌ๋ '์ ํ๋ฉด, ํด๋น ๋ฐ์ดํฐ๊ฐ ์ ๋ฐ์ดํธ๋๊ฑฐ๋ ์๋ก์ด ์ ๋ณด๊ฐ ์๊ธธ ๋๋ง๋ค ์๋์ผ๋ก ์ด๋ฅผ ๋ฐ๊ฒ ๋๋ค.
- ํน์ ๋ฐ์ดํฐ์ ๋ํด ๊ตฌ๋ ํ ์ฌ์ฉ์๋ ์์คํ ์๊ฒ NGSI-LD ํ์์ ํต์ง ๋ฉ์์ง๋ฅผ ์๋์ผ๋ก ๋ณด๋ด๋ 'ํธ์ ์์ด์ ํธ'์ ์ญํ ์ ํ๋ค.์ค์๊ฐ ์ ๋ณด ํต์ ๊ณผ ์๋ํ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๊ธฐ์ฌํ๋ค.