메인 콘텐츠로 건너뛰기
Apache NiFi는 소프트웨어 시스템 간 데이터 흐름을 자동화하도록 설계된 오픈 소스 워크플로 관리 소프트웨어입니다. ETL 데이터 파이프라인을 생성할 수 있으며, 300개가 넘는 데이터 프로세서가 함께 제공됩니다. 이 단계별 튜토리얼에서는 Apache NiFi를 ClickHouse의 소스와 대상으로 모두 연결하고, 샘플 데이터셋을 로드하는 방법을 설명합니다.
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 드라이버 다운로드

  1. GitHub의 ClickHouse JDBC 드라이버 릴리스 페이지로 이동하여 최신 JDBC 릴리스 버전을 확인하십시오
  2. 해당 릴리스에서 “Show all xx assets”를 클릭한 다음, 예를 들어 clickhouse-jdbc-0.5.0-all.jar처럼 “shaded” 또는 “all” 키워드가 포함된 JAR 파일을 찾으십시오
  3. Apache NiFi에서 접근할 수 있는 폴더에 JAR 파일을 두고 절대 경로를 기록해 두십시오
4

DBCPConnectionPool Controller Service를 추가하고 속성을 구성합니다

  1. Apache NiFi에서 Controller Service를 구성하려면 “gear” 버튼을 클릭해 NiFi Flow Configuration 페이지로 이동하세요
  2. Controller Services 탭을 선택한 뒤, 오른쪽 상단의 + 버튼을 클릭해 새 Controller Service를 추가하세요
  3. DBCPConnectionPool을 검색한 다음 “Add” 버튼을 클릭하세요
  4. 새로 추가한 DBCPConnectionPool은 기본적으로 Invalid 상태입니다. 구성을 시작하려면 “gear” 버튼을 클릭하세요
  5. “Properties” 섹션에서 다음 값을 입력하세요
  1. “Settings” 섹션에서 나중에 쉽게 식별할 수 있도록 Controller Service 이름을 “ClickHouse JDBC”로 변경하세요
  2. “lightning” 버튼을 클릭한 다음 “Enable” 버튼을 클릭해 DBCPConnectionPool Controller Service를 활성화하세요
  3. Controller Services 탭에서 해당 Controller Service가 활성화되었는지 확인하세요
5

ExecuteSQL 프로세서를 사용해 테이블에서 읽기

  1. 적절한 업스트림 및 다운스트림 프로세서와 함께 ExecuteSQL 프로세서를 추가합니다
  2. ExecuteSQL 프로세서의 “Properties” 섹션에서 다음 값을 입력합니다
  3. ExecuteSQL 프로세서를 시작합니다
  4. 쿼리가 성공적으로 처리되었는지 확인하려면 출력 큐에 있는 FlowFile 중 하나를 확인합니다
  5. 출력 FlowFile의 결과를 보려면 보기를 “formatted”로 전환합니다
6

MergeRecordPutDatabaseRecord 프로세서를 사용하여 테이블에 쓰기

  1. 한 번의 삽입으로 여러 행을 쓰려면 먼저 여러 레코드를 하나의 레코드로 머지해야 합니다. 이는 MergeRecord 프로세서를 사용해 수행할 수 있습니다.
  2. MergeRecord 프로세서의 “속성” 섹션에서 다음 값을 입력합니다.
  3. 여러 레코드가 하나로 머지되었는지 확인하려면 MergeRecord 프로세서의 입력과 출력을 확인합니다. 출력은 여러 입력 레코드로 이루어진 배열이라는 점에 유의하십시오. 입력 출력
  4. PutDatabaseRecord 프로세서의 “속성” 섹션에서 다음 값을 입력합니다.
  5. 각 삽입에 여러 행이 포함되는지 확인하려면 테이블의 행 수가 MergeRecord에서 정의한 “Minimum Number of Records” 값 이상씩 증가하는지 확인합니다.
  6. 축하합니다. Apache NiFi를 사용해 데이터를 ClickHouse에 성공적으로 로드했습니다!
마지막 수정일 2026년 6월 19일