이 커넥터는 데이터가 단순하고
int와 같은 기본 데이터 타입으로만 구성된 경우에만 사용해야 합니다. 맵과 같은 ClickHouse 고유 타입은 지원되지 않습니다.라이선스
절차
연결 정보를 확인합니다
ClickHouse Cloud 서비스의 연결 정보는 ClickHouse Cloud 콘솔에서 확인할 수 있습니다.
서비스를 선택한 다음 Connect를 클릭하십시오.
HTTPS를 선택하십시오. 연결 정보가 예시
curl 명령으로 표시됩니다.
자가 관리형 ClickHouse를 사용하는 경우 연결 정보는 ClickHouse 관리자가 설정합니다.
1. Kafka Connect 및 커넥터 설치
confluent-hub 설치 방식을 사용하는 경우 로컬 설정 파일이 업데이트됩니다.
Kafka에서 ClickHouse로 데이터를 전송하기 위해 커넥터의 싱크 구성 요소를 사용합니다.
2. JDBC 드라이버 다운로드 및 설치
clickhouse-jdbc-<version>-shaded.jar를 다운로드하여 설치하십시오. 여기의 안내에 따라 Kafka Connect에 설치하십시오. 다른 드라이버도 작동할 수 있지만 테스트되지는 않았습니다.
일반적인 문제: 문서에서는 jar 파일을
share/java/kafka-connect-jdbc/로 복사하라고 안내합니다. Connect가 드라이버를 찾지 못하면 드라이버를 share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib/로 복사하십시오. 또는 드라이버가 포함되도록 plugin.path를 수정하십시오. 자세한 내용은 아래를 참조하십시오.3. 구성 준비
_connection.url_-jdbc:clickhouse://<clickhouse host>:<clickhouse http port>/<target database>형식이어야 합니다.connection.user- 대상 데이터베이스에 쓰기 권한이 있는 사용자table.name.format- 데이터를 삽입할 ClickHouse 테이블입니다. 이 테이블은 반드시 미리 존재해야 합니다.batch.size- 한 번의 batch로 전송할 행 수입니다. 이 값은 충분히 크게 설정해야 합니다. ClickHouse 권장 사항에 따르면 1000은 최소값으로 보는 것이 좋습니다.tasks.max- JDBC 싱크 커넥터는 하나 이상의 작업을 실행할 수 있습니다. 이를 통해 성능을 높일 수 있습니다. batch 크기와 함께 성능을 개선하는 주요 수단입니다.value.converter.schemas.enable- 스키마 레지스트리를 사용하는 경우 false로, 스키마를 메시지에 포함하는 경우 true로 설정합니다.value.converter- 데이터 타입에 맞게 설정합니다. 예를 들어 JSON의 경우io.confluent.connect.json.JsonSchemaConverter를 사용합니다.key.converter-org.apache.kafka.connect.storage.StringConverter로 설정합니다. String 키를 사용합니다.pk.mode- ClickHouse에서는 관련이 없습니다. none으로 설정합니다.auto.create- 지원되지 않으므로 반드시 false로 설정해야 합니다.auto.evolve- 현재는 false로 설정하는 것을 권장하지만, 향후 지원될 수 있습니다.insert.mode- “insert”로 설정합니다. 현재 다른 모드는 지원되지 않습니다.key.converter- 키의 타입에 맞게 설정합니다.value.converter- topic의 데이터 타입에 따라 설정합니다. 이 데이터는 지원되는 스키마를 가져야 하며, JSON, Avro 또는 Protobuf 포맷이어야 합니다.
value.converter.schemas.enable- 스키마 레지스트리를 사용하므로 false로 설정합니다. 각 메시지에 스키마를 포함하는 경우 true로 설정합니다.key.converter- “org.apache.kafka.connect.storage.StringConverter”로 설정합니다. String 키를 사용합니다.value.converter- “io.confluent.connect.json.JsonSchemaConverter”로 설정합니다.value.converter.schema.registry.url- schema server URL로 설정하고,value.converter.schema.registry.basic.auth.user.info매개변수로 schema server의 자격 증명도 함께 설정합니다.
4. ClickHouse 테이블 생성
5. Kafka Connect 시작
6. Kafka에 데이터 추가
github.config를 수정해 Kafka 자격 증명을 포함해야 합니다. 이 스크립트는 현재 Confluent Cloud에서 사용하도록 설정되어 있습니다.
_value.converter.schemas.enable을 true로 설정) 클라이언트가 registry의 schema를 참조하는 메시지를 게시하도록 해야 합니다.
Kafka Connect가 메시지 소비를 시작하고 ClickHouse에 행을 삽입하기 시작합니다. “[JDBC Compliant Mode] Transaction isn’t supported.” 관련 경고는 예상되는 것이므로 무시해도 됩니다.
대상 테이블 “Github”를 간단히 조회하여 데이터 삽입 여부를 확인할 수 있습니다.