Confluent 플랫폼용 JDBC 커넥터(소스 및 싱크)

Kafka Connect JDBC 소스 커넥터를 사용하여 JDBC 드라이버가 있는 모든 관계형 데이터베이스에서 Apache Kafka® topic으로 데이터를 가져올 수 있습니다. JDBC 싱크 커넥터를 사용하여 Kafka topic에서 JDBC 드라이버가 있는 모든 관계형 데이터베이스로 데이터를 내보낼 수 있습니다. JDBC 커넥터는 다양한 데이터베이스를 지원합니다.

JDBC 커넥터 설치

이 커넥터는 기본적으로 Confluent Platform과 함께 번들로 제공됩니다. Confluent Platform이 설치되어 실행 중인 경우 추가적으로 설치가 필요 없습니다.

Confluent Platform이 설치되어 실행되지 않은 경우 Confluent Hub 클라이언트 (권장)를 사용하여 커넥터를 설치하거나 ZIP 파일을 수동으로 다운로드할 수 있습니다.

다중 노드 Connect 클러스터를 실행 중인 경우 클러스터의 모든 Connect 작업자에 JDBC 커넥터 및 JDBC 드라이버 JAR를 설치해야 합니다.

Confluent Hub를 사용하여 커넥터 설치

전제 조건Confluent Hub 클라이언트 가 설치되어 있어야 합니다. 이것은 Confluent Enterprise와 함께 기본적으로 설치됩니다.

Confluent Platform 설치 디렉터리로 이동하고 다음 명령을 실행하여 최신( latest) 커넥터 버전을 설치합니다. Connect가 실행될 모든 시스템에 커넥터를 설치해야 합니다.

confluent-hub install confluentinc/kafka-connect-jdbc:latest
 

버전을 지정하여 특정 버전을 설치할 수 있습니다. 아래와 같이 latest를 5.5.1  로 변경하여 설치할 수 있습니다.

confluent-hub install confluentinc/kafka-connect-jdbc:5.5.1
 

커넥터를 수동으로 설치

커넥터용 ZIP 파일을 다운로드하여 압축을 푼 다음 수동 커넥터 설치 지침 을 따릅니다 .

License

이 커넥터는 Confluent Community License 하에 사용할 수 있습니다 .

구성 속성

소스 커넥터에 대한 구성 속성의 전체 목록은 JDBC 커넥터 소스 커넥터 구성 속성 을 참조하십시오 .

싱크 커넥터에 대한 구성 속성의 전체 목록은 JDBC 싱크 커넥터 구성 속성 을 참조하세요 .

메모

Kafka Connect를 Confluent Cloud 에 연결하는 방법의 예는 Connect Kafka Connect to Confluent Cloud 의 분산 클러스터 를 참조하십시오 .

JDBC 드라이버 설치

JDBC 소스 및 싱크 커넥터 는 애플리케이션이 광범위한 데이터베이스 시스템에 연결하고 사용할 수 있도록 하는 JDBC(Java Database Connectivity) API 를 사용합니다. 이것이 작동하려면 커넥터에 사용할 특정 데이터베이스 시스템에 대한 JDBC 드라이버 가 있어야 합니다.

커넥터는 일부 데이터베이스 시스템용 JDBC 드라이버와 함께 제공되지만 다른 데이터베이스 시스템에서 커넥터를 사용하기 전에 해당 데이터베이스 시스템에 대한 최신 JDBC 4.0 드라이버를 설치해야 합니다. 세부 정보는 JDBC 드라이버마다 다르지만 기본 단계는 다음과 같습니다.

  1. 사용할 각 데이터베이스 시스템에 대한 JDBC 4.0 드라이버 JAR 파일을 찾으십시오.
  2. 이 JAR 파일을 share/java/kafka-connect-jdbc각 Connect 작업자 노드의 Confluent Platform 설치 디렉터리에 넣습니다.
  3. 모든 Connect 작업자 노드를 다시 시작하십시오.

이 섹션의 나머지 부분에서는 보다 일반적인 데이터베이스 관리 시스템에 대한 특정 단계를 간략하게 설명합니다.

일반 지침

다음은 고려해야 할 추가 지침입니다.

  • 사용 가능한 최신 버전의 JDBC 4.0 드라이버를 사용하십시오. 최신 버전의 JDBC 드라이버는 대부분의 데이터베이스 관리 시스템 버전을 지원하며 더 많은 버그 수정이 포함되어 있습니다.
  • Connect 작업자를 실행하는 데 사용되는 Java 버전에 대해 올바른 JAR 파일을 사용하십시오. 일부 JDBC 드라이버에는 여러 Java 버전에서 작동하는 단일 JAR이 있습니다. 다른 드라이버에는 Java 8용 JAR과 Java 10 또는 11용 JAR이 있습니다. 사용 중인 Java 버전에 대해 올바른 JAR 파일을 사용하는지 확인하십시오. 잘못된 버전의 Java에 대해 JDBC 드라이버 JAR 파일을 설치하고 사용하려고 하면 JDBC 소스 커넥터 또는 JDBC 싱크 커넥터를 시작하는 데 실패할 가능성이 UnsupportedClassVersionError. 이 경우 설치한 JDBC 드라이버 JAR 파일을 제거하고 올바른 JAR 파일로 드라이버 설치 프로세스를 반복하십시오.
  • 위에서 share/java/kafka-connect-jdbc언급한 디렉토리는 Confluent Platform용입니다. 다른 설치를 사용하는 경우 Confluent JDBC 소스 및 싱크 커넥터 JAR ​​파일이 있는 위치를 찾고 대상 데이터베이스에 대한 JDBC 드라이버 JAR 파일을 동일한 디렉토리에 배치합니다.
  • 데이터베이스 관리 시스템에 특정한 JDBC 드라이버가 올바르게 설치되지 않은 경우 JDBC 소스 또는 싱크 커넥터는 시작 시 실패합니다. 일반적으로 시스템에서 오류가 발생 합니다. 이 경우 지침에 따라 JDBC 드라이버를 다시 설치하십시오.No suitable driver found

마이크로소프트 SQL 서버

JDBC 소스 및 싱크 커넥터에는 Microsoft SQL Server에서 읽고 쓸 수 있는 오픈 소스 jTDS JDBC 드라이버 가 포함되어 있습니다. JDBC 4.0 드라이버가 포함되어 있으므로 Microsoft SQL Server에 대한 커넥터를 실행하기 전에 추가 단계가 필요하지 않습니다.

또는 jTDS JDBC 드라이버를 제거하고 오픈 소스 Microsoft JDBC 드라이버 를 설치할 수 있습니다 . 먼저 최신 버전의 JDBC 드라이버 아카이브(예: sqljdbc_7.2.2.0_enu.tar.gz영어)를 다운로드하고 파일 내용을 임시 디렉토리에 추출한 다음 Java 버전에 맞는 올바른 JAR 파일을 찾습니다. 예를 들어, 드라이버의 7.2.2.0 버전을 다운로드하는 경우 Java 8에서 Connect를 실행 하는 경우 또는 Java 11에서 Connect를 실행 하는 경우를 찾으십시오 .mssql-jdbc-7.2.2.jre8.jarmssql-jdbc-7.2.2.jre11.jar

그런 다음 JDBC 소스 또는 싱크 커넥터를 배포하기 전에 각 Connect 작업자 노드에서 다음 단계를 수행하십시오.

  1. share/java/kafka-connect-jdbc/jtds-1.3.1.jarConfluent Platform 설치에서 기존 파일을 제거 합니다.
  2. share/java/kafka-connect-jdbc/Confluent Platform 설치 디렉터리에 JAR 파일을 설치합니다.
  3. Connect 작업자를 다시 시작하십시오.

잘못된 버전의 Java용 JDBC 드라이버 JAR 파일을 설치하고 SQL Server 데이터베이스를 사용하는 JDBC 소스 커넥터 또는 JDBC 싱크 커넥터를 시작하려고 하면 커넥터가 UnsupportedClassVersionError. 이 경우 JDBC 드라이버 JAR 파일을 제거하고 올바른 JAR 파일로 드라이버 설치 프로세스를 반복하십시오.

Kerberos 인증 예외

Kafka 클러스터가 Kerberos(SASL_SSL)로 보호되고 커넥터가 통합 Kerberos 인증으로 구성된 Microsoft SQL Server 데이터베이스에 액세스하는 경우 다음 예외가 발생합니다.

connect-distributed: Caused by: javax.security.auth.login.LoginException: Unable to obtain Principal Name for authentication
 

이 예외를 해결하려면 아래와 같이 Connect 속성 파일을 로드하기 전에 시스템 속성을 변경해야 합니다.

export KAFKA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false"

bin/connect-distributed etc/kafka/connect-distributed.properties
 

이 시스템 속성에 대한 자세한 내용은 Oracle 설명서 를 참조하십시오 .

PostgreSQL 데이터베이스

JDBC 소스 및 싱크 커넥터에는 PostgreSQL 데이터베이스 서버에서 읽고 쓸 수 있는 오픈 소스 PostgreSQL JDBC 4.0 드라이버 가 포함되어 있습니다. JDBC 4.0 드라이버가 포함되어 있으므로 PostgreSQL 데이터베이스에 대한 커넥터를 실행하기 전에 추가 단계가 필요하지 않습니다.

오라클 데이터베이스

Oracle은 Oracle 용 JDBC 드라이버를 제공합니다 . 최신 버전을 찾아 Java 8에서 Connect를 실행 중인 경우 또는 Java 11에서 Connect를 실행 중인 경우 다운로드하십시오. 그런 다음 이 JAR 파일 하나를 Confluent Platform 설치의 디렉토리에 배치하고 모든 Connect 작업자 노드를 다시 시작하십시오.ojdbc8.jar ojdbc10.jarshare/java/kafka-connect-jdbc

JDBC 드라이버 및 동반 JAR이 있는 파일 을 다운로드하는 경우 tar.gz의 파일 내용을 tar.gz 임시 디렉토리로 추출하고 readme 파일을 사용하여 필요한 JAR 파일을 판별하십시오. JDBC 드라이버 JAR 파일 및 기타 필수 컴패니언 JAR 파일을 share/java/kafka-connect-jdbc각 Connect 작업자 노드의 Confluent Platform 설치 디렉터리에 복사한 다음 모든 Connect 작업자 노드를 다시 시작합니다.

잘못된 버전의 Java용 JDBC 드라이버 JAR 파일을 설치하고 Oracle 데이터베이스를 사용하는 JDBC 소스 커넥터 또는 JDBC 싱크 커넥터를 시작하려고 하면 커넥터가 UnsupportedClassVersionError. 이 경우 JDBC 드라이버 JAR 파일을 제거하고 올바른 JAR 파일로 드라이버 설치 프로세스를 반복하십시오.

IBM DB2

IBM은 DB2 버전에 따라 달라지는 DB2용 JDBC 드라이버를 제공합니다. 일반적으로 최신 JDBC 4.0 드라이버를 선택하고 다운로드 옵션 중 하나를 선택합니다. 다운로드한 파일 db2jcc4.jar내에서 파일 의 압축을 풀고 찾아 파일 만 Confluent Platform 설치 디렉터리에 넣습니다 .tar.gzdb2jdcc4.jarshare/java/kafka-connect-jdbc

예를 들어, 압축 tar.gz파일(예: v10.5fp10_jdbc_sqlj.tar.gz)을 다운로드한 경우 다음 단계를 수행하십시오.

  1. tar.gz파일 내용을 임시 디렉토리에 추출합니다 .
  2. db2_db2driver_for_jdbc_sqlj압축을 푼 파일에서 ZIP 파일(예: )을 찾습니다.
  3. zip파일의 내용을 다른 임시 디렉토리에 추출하십시오 .
  4. 파일을 찾아 각 Connect 작업자 노드의 Confluent Platform 설치 디렉터리에 db2jdcc4.jar복사 share/java/kafka-connect-jdbc 한 다음 모든 Connect 작업자 노드를 다시 시작합니다.
  5. 두 개의 임시 디렉토리를 제거하십시오.

메모

share/java/kafka-connect-jdbcIBM 다운로드의 다른 파일을 Confluent Platform 설치 의 디렉토리에 두지 마십시오 . AS/400에서 실행되는 DB2용 UPSERT는 현재 Confluent JDBC Connector에서 지원되지 않습니다.

MySQL 서버

MySQL은 여러 플랫폼 에서 MySQL용 Connect/J JDBC 드라이버를 제공합니다. 플랫폼 독립 옵션을 선택 하고 압축 TAR 아카이브 를 다운로드하십시오 . 이 파일에는 JAR 파일과 소스 코드가 모두 포함되어 있습니다.

tar.gz이 파일의 내용을 임시 디렉토리 에 추출하십시오 . 추출된 파일 중 하나는 jar파일(예: mysql-connector-java-8.0.16.jar)이며 이 JAR 파일만 각 share/java/kafka-connect-jdbcConnect 작업자 노드의 Confluent Platform 설치 디렉터리에 복사한 다음 모든 Connect 작업자 노드를 다시 시작합니다.

SAP HANA

SAP는 SAP HANA JDBC 드라이버 를 제공하고 Maven Central 에서 사용할 수 있도록 합니다 . 최신 버전의 JAR 파일(예: ngdbc-2.4.56.jar)을 다운로드 share/java/kafka-connect-jdbc하여 각 Connect 작업자 노드의 Confluent Platform 설치 디렉터리에 넣은 다음 모든 Connect 작업자 노드를 다시 시작합니다.

SQLite 임베디드 데이터베이스

JDBC 소스 및 싱크 커넥터에는 로컬 SQLite 데이터베이스에서 읽고 쓸 수 있는 오픈 소스 SQLite JDBC 4.0 드라이버 가 포함되어 있습니다. SQLite는 내장 데이터베이스이기 때문에 이 구성은 데모용입니다.

기타 데이터베이스

다른 데이터베이스용 JDBC 4.0 드라이버 JAR 파일을 찾아 필요한 JAR 파일만 share/java/kafka-connect-jdbc각 Connect 작업자 노드의 Confluent Platform 설치 디렉터리에 넣은 다음 모든 Connect 작업자 노드를 다시 시작합니다.

 

'ksqlDB' 카테고리의 다른 글

ksql - Lambda Functions  (0) 2022.01.13
ksql - User-defined functions  (0) 2022.01.13
ksql - Time and Windows - 수정  (0) 2022.01.13
ksql - joins  (0) 2022.01.13
ksql - 쿼리  (0) 2022.01.13

+ Recent posts