1
연결 정보 준비하기
HTTP(S)로 ClickHouse에 연결하려면 다음 정보가 필요합니다.ClickHouse Cloud 서비스의 연결 정보는 ClickHouse Cloud 콘솔에서 확인할 수 있습니다.
서비스를 선택한 다음 Connect를 클릭하십시오.HTTPS를 선택하십시오. 연결 정보가 예시
curl 명령으로 표시됩니다.자가 관리형 ClickHouse를 사용하는 경우 연결 정보는 ClickHouse 관리자가 설정합니다.2
Apache NiFi 다운로드 및 실행
새로 설정하는 경우 https://nifi.apache.org/download.html 에서 바이너리를 다운로드한 후./bin/nifi.sh start를 실행해 시작하십시오.3
ClickHouse JDBC 드라이버 다운로드
- GitHub의 ClickHouse JDBC 드라이버 릴리스 페이지로 이동하여 최신 JDBC 릴리스 버전을 확인하십시오
- 해당 릴리스에서 “Show all xx assets”를 클릭한 다음, 예를 들어
clickhouse-jdbc-0.5.0-all.jar처럼 “shaded” 또는 “all” 키워드가 포함된 JAR 파일을 찾으십시오 - Apache NiFi에서 접근할 수 있는 폴더에 JAR 파일을 두고 절대 경로를 기록해 두십시오
4
DBCPConnectionPool Controller Service를 추가하고 속성을 구성합니다
- Apache NiFi에서 Controller Service를 구성하려면 “gear” 버튼을 클릭해 NiFi Flow Configuration 페이지로 이동하세요
-
Controller Services 탭을 선택한 뒤, 오른쪽 상단의
+버튼을 클릭해 새 Controller Service를 추가하세요 -
DBCPConnectionPool을 검색한 다음 “Add” 버튼을 클릭하세요 -
새로 추가한
DBCPConnectionPool은 기본적으로 Invalid 상태입니다. 구성을 시작하려면 “gear” 버튼을 클릭하세요 - “Properties” 섹션에서 다음 값을 입력하세요
- “Settings” 섹션에서 나중에 쉽게 식별할 수 있도록 Controller Service 이름을 “ClickHouse JDBC”로 변경하세요
-
“lightning” 버튼을 클릭한 다음 “Enable” 버튼을 클릭해
DBCPConnectionPoolController Service를 활성화하세요
- Controller Services 탭에서 해당 Controller Service가 활성화되었는지 확인하세요
5
ExecuteSQL 프로세서를 사용해 테이블에서 읽기
-
적절한 업스트림 및 다운스트림 프로세서와 함께
ExecuteSQL프로세서를 추가합니다 -
ExecuteSQL프로세서의 “Properties” 섹션에서 다음 값을 입력합니다 -
ExecuteSQL프로세서를 시작합니다 -
쿼리가 성공적으로 처리되었는지 확인하려면 출력 큐에 있는
FlowFile중 하나를 확인합니다 -
출력
FlowFile의 결과를 보려면 보기를 “formatted”로 전환합니다
6
MergeRecord 및 PutDatabaseRecord 프로세서를 사용하여 테이블에 쓰기
-
한 번의 삽입으로 여러 행을 쓰려면 먼저 여러 레코드를 하나의 레코드로 머지해야 합니다. 이는
MergeRecord프로세서를 사용해 수행할 수 있습니다. -
MergeRecord프로세서의 “속성” 섹션에서 다음 값을 입력합니다. -
여러 레코드가 하나로 머지되었는지 확인하려면
MergeRecord프로세서의 입력과 출력을 확인합니다. 출력은 여러 입력 레코드로 이루어진 배열이라는 점에 유의하십시오. 입력 출력 -
PutDatabaseRecord프로세서의 “속성” 섹션에서 다음 값을 입력합니다. -
각 삽입에 여러 행이 포함되는지 확인하려면 테이블의 행 수가
MergeRecord에서 정의한 “Minimum Number of Records” 값 이상씩 증가하는지 확인합니다. - 축하합니다. Apache NiFi를 사용해 데이터를 ClickHouse에 성공적으로 로드했습니다!