[NiFi] DB To Snowflake 실습

CHAN LIM·2023년 12월 21일
0

NiFi

목록 보기
7/13
post-thumbnail

1. DB To Snowflake

예상

  • 이전까지 실습으로
    NiFi와 Snowflake가 연결되려면 Database Connection Pool Service 를 활성화 해야 했다.
  • 따라서, Data를 받아올 DB도 D.C.P.S가 요구될 것이다.

과정
1. Ubuntu에 DB 설치
2. DB에 맞는 jdbc 다운로드
3. NiFi와 DB를 연결
4. Data 전송


1.1 DB 설치 및 DATA 삽입

1.1.1 MySQL 설치

MySQL 설치


1.2 DB와 NiFi 연결

1.2.1 JDBC 설치

MySQL JDBC 설치

wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-j-8.0.33.zip

zip 파일이기 때문에 압축해제 후 .jar 파일을 가져온다.

sudo apt-get update
sudo apt install unzip

unzip ~~~

이대로 MySQLDBConnectionPoolingService 준비 완료.

1.2.2 DB Connector Controller 만들기

  • PutSQL
    • insert 관련 Processor
  • ExecuteSQL
    • select 관련 Processor
  • ExecuteSQLRecord
    • select 관련 Processor
    • ExecuteSQL과 다른점은
      select시 Writer(데이터 포맷 형식 ex) csv, json, avro등)를 지정 가능

이전 실습처럼 Configure 에서 Controller 제작

  • jdbc:mysql://자신의 주소:포트번호/DB이름으로 작성
  • Database Driver Class Name
    • com.mysql.jdbc.Driver로 고정
  • 위에서 아까 다운로드한 JDBC Connector 주소입력
  • DB 접속 사용자 정보 입력
    • 외부 접속 권한이 부여된 사용자로

생성한 Connection Pooling Service를 연결

  • SQL Select query에 실행할 Query를 작성하고 적용한다.

간단한 DataFlow 작성 완료


1.3 DB To Local

DB의 Data가 Local로 Loading된 것을 확인할 수 있다.

  • 저렇게 쓰레기값처럼 오는 이유는 잘못 설정했기 때문이다.
    • 일단, Data가 이동하는 것을 확인했으니 넘어갔다. (추후에 수정할 예정)

1.4 DB To Snowflake

1.4.1 Snowflake DB 생성

  • Database
    • TEST2
  • Schema
    • Public
  • Table
    • DBTOSN

1.4.2 NiFi Processor 설정

중요

  • Record Reader는 NiFi Flowfile의 Default인 AvroReader를 사용한다.
    • 따로 설정없이 바로 생성하고 사용하면 된다.

1.4.3 DataFlow 작성 완료

1.4.4 결과



출처

DB Connector
Pushing data into Snowflake
GetFile, PutFile

profile
클라우드, 데이터, DevOps 엔지니어 지향 || 글보단 사진 지향

0개의 댓글