๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Apache NiFi

API ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์—ฐ์Šตํ•˜๊ธฐ 03_Open API ํ˜ธ์ถœํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘

 

 

๐Ÿ“– 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 ํ•˜์œ„์— ์ €์žฅ

 

 

 

 

 

 

๊ณต๊ณต๋ฐ์ดํ„ฐ ํฌํ„ธ ํšŒ์›๊ฐ€์ž… ๋งํฌ

 

https://www.data.go.kr/

 

๊ณต๊ณต๋ฐ์ดํ„ฐ ํฌํ„ธ

๊ตญ๊ฐ€์—์„œ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผใ€Ž๊ณต๊ณต๋ฐ์ดํ„ฐ์˜ ์ œ๊ณต ๋ฐ ์ด์šฉ ํ™œ์„ฑํ™”์— ๊ด€ํ•œ ๋ฒ•๋ฅ (์ œ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 ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ์„ ์ถ”์ถœํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

https://jsonpath.com/

 

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๋ฅผ ์„ค์น˜ํ•ด์„œ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์—์„œ ์—ฐ์Šต๋„ ํ•ด๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค!