NIFI PostgreSQL Connection 방법 ( ExecuteSQLRecord )

2021. 7. 20. 15:59it

반응형


오늘은 postgreSql + NIFI 를 활용한 데이터 추출 방법을 알아보겠다.

( nifi는 그냥 나만 알고 싶어서, 공유를 잘 안하는데,
한번 남겨보겠다. )

음, nifi는 내가 자주 사용하는 오픈소스 ETL툴이다.
( CDC 에 최적화된 느낌 )

아마 국내에서 nifi를 가장 먼저 회사에 적용한 사람 중 한명이 내가 아닐까 생각이 든다.

현재는 카카오에서 사용해서 유명하지만,

우리 회사도 나름 빠르게 nifi를 적용한 회사 중 하나이다.

우리 회사 내에는 신기술 덕후들이 많아서...
( 그중에 한명이 나...)

참고로 우리회사는 IT회사가 아니고 제조업이다 ㅋㅋ

서론이 길었다.

그만큼 NIFI 전문가라는 걸 티내고 싶었다.

설명에 들어가겠다.

최대한 자세히 캡쳐했으니, 잘 따라오길 바란다.



1. NIFI [Processor]를 클릭한다.

2. Add Processor에서 [ExcuteSQLRecord]를 클릭한다.

 

728x90


3. ExcuteSQLRecord 블럭을 클릭한다.


4. Database Connection Pooling Service 를 클릭한다.


5. Create new service를 클릭한다.

반응형


6. compatible controller service에서 DBCPConnectionPoll 를 선택해준다.


7. 밑 그림에서 표시된 화살표를 눌러 데이터베이스 연결 정보를 세팅해준다.


8. [ 6번 ]에서 작업한 이름을 찾아, 톱니바퀴 모양을 눌러 설정 정보를 입력한다.

9. connection info, driver, jdbc.jar 위치, user, password를 입력한다.



Database Connection URL은 postgre 접속 정보를 입력해 준다.

Database Driver Class Name은 org.postgresql.Driver 라고 똑같이 입력하면 된다.

Database Driver Location은
postgresql-xx-x-xx.jar 파일은 구굴에서 postgre jar라고 치면 다운로드 받는다. 그 jar를 받아서 경로를 입력해주면 된다.


10. 설정이 완료되면 [4번] 화면으로 넘어온다. 그리고 마이그레이션 sql를 입력한다.


11. Database에서 추출된 데이터의 포맷을 설정한다.


12. Record write를 만들어서 sql로 추출된 데이터를 담을 포맷을 만들어준다.


13. 본 예시는 csv로 추출하는 예시이다. 다른 포맷을 설정해도 된다.


13. 아래 그림처럼 화살표 모양을 눌러준다.


14. CSVRecordSetWrite, DBCPConnectionPoll 옆에 있는 번개 모양을 눌러 활성화 시켜준다.
( 번개 모양은 활성화 마크이다. )


15. 그럼 ExecuteSQLRecord를 시작해준다


16. Queued 에 쌓인 데이터를 확인한다.

완료가 되었다.

캡쳐하다 죽을 뻔했다.

그래도 이정도 퀄리티 있는 설명을 없을 것이다.

잘 따라했다면, 데이터가 추출되는 걸 확인 할 수 있다.

그럼 이만 ~!


반응형