๐ API ๋ฐ์ดํฐ ์์ง ์๋๋ฆฌ์ค
1. ๊ณต๊ณต๋ฐ์ดํฐํฌํธ DATA.GO.KR ๊ฐ์
ํ
https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15098962
(ํ๊ตญ๋ถ๋์ฐ์_์ ๊ตญ์ง๊ฐ๋ณ๋๋ฅ ์กฐ์ฌ ํต๊ณ ์กฐํ ์๋น์ค) Open API ํ์ฉ์ ์ฒญ ํ ์ธ์ฆํค ๋ฐ๊ธ
2. ํ์ผํฌ๋งท์ JSON, 1ํ์ด์ง์ ํ์ด์ง๋น ๊ฑด์๋ฅผ 100๊ฑด์ผ๋ก ์ค์ ํ์ฌ API ํธ์ถ.
3. ํธ์ถํ API๋ฐ์ดํฐ์์ data ๋ถ๋ถ๋ง ์ถ์ถ
4. ์์ง ๋ฐ ์ถ์ถํ ๋ฐ์ดํฐ์ ์ด๋ฆ์ ์ด๋์
_20230215.json์ผ๋ก ๋ณ๊ฒฝ ํ FTP์๋ฒ์ /nifi_data/api_dataset ํ์์ ์ ์ฅ
๊ณต๊ณต๋ฐ์ดํฐ ํฌํธ ํ์๊ฐ์ ๋งํฌ
๊ณต๊ณต๋ฐ์ดํฐ ํฌํธ
๊ตญ๊ฐ์์ ๋ณด์ ํ๊ณ ์๋ ๋ค์ํ ๋ฐ์ดํฐ๋ฅผใ๊ณต๊ณต๋ฐ์ดํฐ์ ์ ๊ณต ๋ฐ ์ด์ฉ ํ์ฑํ์ ๊ดํ ๋ฒ๋ฅ (์ 11956ํธ)ใ์ ๋ฐ๋ผ ๊ฐ๋ฐฉํ์ฌ ๊ตญ๋ฏผ๋ค์ด ๋ณด๋ค ์ฝ๊ณ ์ฉ์ดํ๊ฒ ๊ณต์ •ํ์ฉํ ์ ์๋๋ก ๊ณต๊ณต๋ฐ์ดํฐ(Datase
www.data.go.kr
๊ฐ์ ํ ์๋ ๋งํฌ๋ก ์ด๋
ํ๊ตญ๋ถ๋์ฐ์_์ ๊ตญ์ง๊ฐ๋ณ๋๋ฅ ์กฐ์ฌ ํต๊ณ ์กฐํ ์๋น์ค Open API ํ์ฉ์ ์ฒญ ํ ์ธ์ฆํค ๋ฐ๊ธ
https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15098962
ํ๊ตญ๋ถ๋์ฐ์_์ ๊ตญ์ง๊ฐ๋ณ๋๋ฅ ์กฐ์ฌ ํต๊ณ ์กฐํ ์๋น์ค
ํ๊ตญ๋ถ๋์ฐ์(๊ตฌ.ํ๊ตญ๊ฐ์ ์)์์ ์ ๊ณตํ๋ ์ ๊ตญ ์ง๊ฐ๋ณ๋๋ฅ ์กฐ์ฌ ํต๊ณ๋ฅผ ์กฐํ ํ ์ ์๋ ์๋น์ค๋ก ์ง๊ฐ๋ณ๋๋ฅ , ์ง๊ฐ์ง์, ๋ณด์กฐ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. โป ๊ด๋ จ ๊ธฐ์ ๋ฌธ์๋ ์๋ URL์ ํตํด
www.data.go.kr
value ์นธ์ ์ธ์ฆํค ๋๊ฐ๋ฅผ ๋ณต์ฌํด์ ๋ถ์ฌ ๋ฃ๊ณ ์ค์ ๋ฒํผ์ ๋๋ฌ์ค๋๋ค.
์ธ์ฆํค ์ค์ ์ ํ๊ณ ์คํฌ๋กค์ ๋ด๋ฆฌ๋ฉด API๋ชฉ๋ก์ด ์๋๋ฐ ๊ฐ์ ธ์ฌ API๋ฅผ ํ๋ ์ ํํฉ๋๋ค.
URL์ ์ฌ์ฉํด์ NiFi์์ API๋ฅผ ํธ์ถ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์คํ๋ Flow
- GenerateFlowFile ์์ฑ ์ค์
- InvokeHTTP ํ๋ก์ธ์ค ์์ฑ ์ค์
HTTP URL ์นธ์ ์๊น ๋ณต์ฌํ๋, Request URL์ ๋ถ์ฌ ๋ฃ๊ธฐ ํด์ค๋๋ค.
- EvaluateJsonPath ํ๋ก์ธ์ค
JSON์ ๋ฐ์ดํฐ๋ฅผ ์์ง ๋ฐ ์ ์ฌํ๋ ๊ฒฝ์ฐ JSON ๋ฐ์ดํฐ์ ๊ฒฝ๋ก ๋ฐ ๊ฐ์ ๋ถ๋ฆฌํ ์ ์๋ ํ๋ก์ธ์ค
์ด ํ๋ก์ธ์ค๋ฅผ ์ ์์ ์ผ๋ก ํต๊ณผํ๋ ๊ฒฝ์ฐ ์ง์ ํ JSON ์์ฑ๋ค์ NiFi ํ๋ก์ฐ ๋ด์ ์์ฑ์ผ๋ก ๋ฑ๋ก๋๊ฑฐ๋
์ถ์ถํ ๋ด์ฉ์ด flowfile๋ก ๋ณ๊ฒฝ๋๋ค.
์๋์ ๋งํฌ์์ JSON ๋ฐ์ดํฐ์ ๋ด์ฉ์ ์ถ์ถํด ๋ณด์์ต๋๋ค.
JSONPath Online Evaluator
JSONPath Online Evaluator
jsonpath.com
EvaluateJsonPath ํ๋ก์ธ์ค๋ฅผ ๊ฑฐ์ณ์ ๋ฐ์ดํฐ๊ฐ ๋์ด๊ฐ๋ ๊ฒ์ ํ์ธํด๋ณด์๋ค.
- ControlRate ํ๋ก์ธ์ค
InvokeHTTP, EvaluateJsonPath ํ๋ก์ธ์ค์ ์ฐ๊ฒฐํ์ฌ Failure, No Retry, Retry, unmathced ์ผ ๋,
์ํ๋ฅผ ํ์ธํด ๋ณผ ์ ์๋ค.
- UpdateAttribute
์์ฑ์ ์์ฑํ์ฌ FTP ์๋ฒ๋ก ํ์ผ์ ์ ์ฅํ ๋, ํ์ผ๋ช ์ ๋ฐ๊ฟ์ค๋๋ค.
- PutFTP ํ๋ก์ธ์ค
Remote Path์ ํ์ผ์ ์ฌ๋ฆด ๊ฒฝ๋ก๋ฅผ ์ค์ ํ๋ค.
Open API ํ์ผ์ ํธ์ถํ์ฌ ์ง์ ํ ์๋ฒ ์์น์ ํ์ผ์ด ์ ๋๋ก ์ฌ๋ ค์ก๋์ง ํ์ธํด๋ณด์๋ค.
ํ๊ธฐ
NiFi๋ฅผ ์ฐ์ตํ๋ฉด์ ์ค๋ ์ด๋ ค์ ๋ค. API์ URL๋ง ์ ์ฐ๊ฒฐํ์ด๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ์ง๋ ์์์ ๊ฒ ๊ฐ๋ค!
์๋ชปํ ์ :
์ธ์ฆํค๋ฅผ ์ธ์ฆํค์ค์ ์ ๋ฃ์ด์คฌ์ด์ผ ํ๋๋ฐ, ๊ณต๊ณต๋ฐ์ดํฐํฌํธ ๊ฐ์ด๋๋ฅผ ๋ณด๊ณ ์ธ์ฆํค๋ฅผ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ฃ์์ผ๋
RequestURL์ ํ๋ก์ธ์ค์ ์ค์ ํ์ด๋ ์คํ๋์ง ์๋ ๊ฒ ๋น์ฐํ๋ค.
๊ฐ์ ํด์ผ ํ ์ :
ํ๋ก์ธ์ค์ ๊ธฐ๋ฅ์ ์๋ฒฝํ๊ฒ ์ธ์ฐ์ง ๋ชปํ์ฌ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ ์ง ์๊ฐํ๋๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๋ถ๋ถ์ ๊ฐ์ ํด์ผ ํ๋ค
ํ์ฌ ์๋์ฐ์์ ์คํ ์ค์ธ๋ฐ, ์คํ์ด ์ ๋๋ก ๋์ด๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ์ผ๋ฅธ Oracle VM Virtualbox๋ฅผ ์ค์นํด์ ๋ฆฌ๋ ์ค ํ๊ฒฝ์์ ์ฐ์ต๋ ํด๋ด์ผ ํ ๊ฒ ๊ฐ๋ค!
'Apache NiFi' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ์ดํฐ ์ ์ฌ ์ฐ์ตํ๊ธฐ 04 _ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฌ๋ ๋ฐ์ดํฐ์ FTP์๋ฒ์ ํ์ผ๋ฐ์ดํฐ (0) | 2023.02.17 |
---|---|
API ๋ฐ์ดํฐ ์ ์ฌ ์ฐ์ตํ๊ธฐ 03_Open API ํธ์ถํ ๋ฐ์ดํฐ DB์ ์ฌ ํ ์์ ํ๊ธฐ (0) | 2023.02.16 |
์ ํ ๋ฐ์ดํฐ ์ ์ฌ ์ฐ์ตํ๊ธฐ 02 (0) | 2023.02.15 |
์ ํ ๋ฐ์ดํฐ ์ ์ฌ ์ฐ์ตํ๊ธฐ 01 (0) | 2023.02.14 |
NiFi Encoding ์ฒ๋ฆฌ (0) | 2023.02.09 |