본문 바로가기
BIG DATA/NiFi

nifi 실습하기 2

by 골든크랩 2023. 10. 24.
728x90
반응형

1편은 다음에....올리겠음...

 

https://www.youtube.com/watch?v=_SABMAiJ5Hg

 

 

 

GenerateFlowFile ( 임시 테스트 데이터를 만들어 사용할 때) 

-> Properties -> Custom Text 에 데이터입력

 

UpdateAttribute (속성, query를 사용하기 위해서)

-> property 를 추가한다. -> Propeties -> schema.name 추가 -> 값은 hkschema 로 설정

데이터 베이스 쿼리로 데이터를 조작을 할 수 있다.

 

QueryRecord

CSV 파일을 SQL로 조작하려면, 다음 루틴을 따라야 한다.

1. Schema Access Strategy -> Use 'Schema Name' Property 를 사용해라.

2. Schema Name -> $(schema.name) => hkschema 가 들어감...

3. Schema Registry -> AvroSchemaRegistry 를 사용해야 함

4. Schema Text => 이건 버전에 따라 안보일수 있다. (1.23.2 로 실습중)

 

CSVReader는 컬럼헤더를 참조하기 위해서 AvroSchemaRegistry를 이용한다.

AvroSchemaRegistry 설정하기 위해서 아래 샘플 데이터를 사용한다.

{
    "name":"hkschema",
    "type":"record",
    "namespace":"nifi",
    "fields":[
        {"name":"ct_no", "type":"string"},
        {"name":"ct_mgr", "type":"string"}
    ]
}

CSVRecordSetWriter는 

1. Schema Write Strategy : Set 'schema.name' Attribute

2. Schema Access Strategy : Use 'Schema Name' Property

3. Schema Registry : commonAvroSchemaRegistry 

4. Propety 추가를 사용하여 필터를 생성

필터명 : hkfilter

SELECT * FROM FLOW_FILE
WHERE 1=1
AND CT_MGR IN ('HK')

 

필터명 : nonhkfilter

SELECT * FROM FLOW_FILE
WHERE 1=1
AND CT_MGR NOT IN ('HK')

 

5. LogAttribute 를 추가하여 로그를 출력함

------> 위 과정이 잘된건지 확인하기 위해서 사용함

 

로그를 확인하기 위해서, 서버에 접속해보자

1. docker exec -it nifi /bin/bash

2. cd $NIFI_HOME

3. cd logs

4. 확인할 파일은 nifi-app.log 다.  vi 가 없으면 설치해야 함.

 

 

 

 

 

 

데이터 이관실습

실습목적 : 특정 디렉토리에 파일이 쌓이면, 이걸 읽어서 처리한다.

 

1. GetFile 프로세스를 추가하고, Input Directory 에 다음과 같이 설정함.

 

2. 샘플 데이터 파일을 위에 indata디렉토리에 넣음.

WSL2 에서 위 디렉토리의 경로는 아래와 같음.

\\wsl.localhost\docker-desktop-data\data\docker\volumes\nifi-root\_data\data\indata

 

데이터 파일의 내용은

CT_NO, CT_MGR
2023A001, HK
2023A002, DENNIS
2023A003, JENY
2023A004, ALICE
2023A005, JUSTINE

 

 

 

PutDatabaseRecord 추가

 

 

 

 

 

 

 

 

 

728x90
반응형

'BIG DATA > NiFi' 카테고리의 다른 글

Processor 목록  (0) 2023.10.27
FlowFile, Processor, Connection 개념  (0) 2023.10.27
Zero Master Cluster 개념  (0) 2023.10.27
Apache Nifi 설치하기 with Docker  (0) 2023.10.24
Apache Nifi 강의 모음  (0) 2023.10.23

댓글