# Kafka 대상

이 항목에서는 Kafka 대상 커넥터를 사용하여 Kafka 대상에 대한 연결을 구성하는 방법을 설명합니다. Kafka는 복제 작업에서만 대상으로 사용할 수 있습니다.

Kafka을 대상으로 설정하려면 다음이 필요합니다.

* [전제 조건](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/kafka-target.htm#Prerequi) 충족
* Kafka 에 대한 연결 구성

## 연결 속성 설정

커넥터를 구성하려면 다음을 수행합니다.

1. 연결에서 연결 만들기를 클릭합니다.

2. Kafka 대상 커넥터를 선택한 후 다음 설정을 제공합니다.

### 데이터 대상

#### 데이터 게이트웨이

정보 메모이 구독 계층에서는 데이터 이동 게이트웨이가 지원되지 않으므로 이 필드는 Qlik Talend Cloud 시작 구독에서 사용할 수 없습니다.

Amazon MSK로 데이터를 이동할 때, 데이터 이동 게이트웨이는 Amazon MSK가 Qlik Cloud에서 액세스할 수 없고 비공개 링크를 통해서만 액세스할 수 있는 경우에만 필요합니다(예를 들어, Virtual Private Cloud에 있는 경우). 이 경우, 대상 데이터베이스에 액세스하려는 데이터 이동 게이트웨이를 선택합니다. 사용 사례에 따라 이는 데이터 소스에서 데이터를 배포하기 위해 동일하거나 다른 데이터 이동 게이트웨이가 배포되어 있습니다.

Qlik Cloud에서 직접 액세스할 수 있는 Amazon MSK 인스턴스로 데이터를 이동하는 경우, 없음을(를) 선택합니다.

정보 메모

* 온프레미스 Kafka로 데이터를 이동하는 경우(아래 클라우드 공급자 참조), Kafka가 Qlik Cloud에서 직접 액세스 가능한지 여부와 관계없이 데이터 이동 게이트웨이를 선택해야 합니다.

* 데이터 이동 게이트웨이를 사용해야 하는 경우, 버전 2025.5.40 이상이 필요합니다.

데이터 이동 게이트웨이 사용 사례에 대한 자세한 내용은 [데이터 이동 게이트웨이는 언제 필요합니까?](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#top) 및 [일반적인 사용 사례](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#Common)를 참조하십시오.

#### 클라우드 공급자

온프레미스 Kafka를 사용하려면 없음을 선택하거나, Amazon MSK를 사용하려면 Amazon MSK를 선택합니다.

#### 브로커 서버

다음 형식을 사용하여 하나 이상의 브로커 서버를 지정합니다(고가용성을 위해):

`server1[:port1][,server2[:port2]]`

**예:**

`192.168.1.100:9092,192.168.1.101:9093`

데이터 태스크는 첫 번째 사용 가능한 호스트에 연결됩니다. 포트 없이 호스트가 지정된 경우 포트 9092가 기본값으로 사용됩니다.

정보 메모

SSL 또는 Kerberos 인증을 사용할 때 브로커 FQDN을 지정해야 합니다(즉, IP 주소가 아님).

정보 메모

클러스터의 모든 브로커 서버는 데이터 이동 게이트웨이 시스템에서 액세스할 수 있어야 합니다. 하지만 에 있는 모든 서버를 지정할 필요는 없습니다. **브로커 서버** 필드. 이는 데이터 이동 게이트웨이가 클러스터의 다른 서버에 대한 연결 세부 정보를 검색하기 위해 서버 중 하나에만 연결하면 되기 때문입니다. 따라서 작업이 실행될 때 가장 사용 가능성이 높은 서버를 지정하는 것이 모범 사례입니다. 데이터 작업이 메시지를 생성하는 서버는 토픽 및 파티셔닝 토픽, 그리고 파티셔닝 설정에 의해 결정됩니다.

### 계정 속성

#### 인증 방법

다음 중 하나를 선택합니다.

* **없음:** 인증 없음.

  정보 메모

  선택한 클라우드 공급자가 Amazon MSK인 경우 사용할 수 없습니다.

* **인증서**: 이 옵션을 선택하면 다음 정보도 제공해야 합니다:

  **참고**공개 및 개인 키 파일은 PEM 형식이어야 합니다.

  * **공개 키 파일:** PEM 형식의 공개 키 파일을 찾아봅니다. 저장을 클릭하면 파일이 Qlik Talend Cloud에 업로드되고 커넥터 설정에서 선택한 데이터 이동 게이트웨이에 배포됩니다.
  * **개인 키 파일**: PEM 형식의 개인 키 파일을 찾습니다. 저장을 클릭하면 파일이 Qlik Talend Cloud에 업로드되고 커넥터 설정에서 선택한 데이터 이동 게이트웨이에 배포됩니다.
  * **개인 키 비밀번호**: 개인 키 파일의 비밀번호입니다.

* 케르베로스 (SASL/GSSAPI): Kerberos를 사용하여 Kafka 클러스터에 대해 인증하도록 선택합니다.

  정보 메모

  선택한 클라우드 공급자가 Amazon MSK인 경우 이 인증 방법은 사용할 수 없습니다.

  * 주체: 브로커 서버에 대해 인증하는 데 사용되는 Kerberos 주체.
  * 키탭 파일: 키탭 파일을 찾아봅니다. 저장을 클릭하면, 파일이 Qlik Talend Cloud에 업로드되고 커넥터 설정에서 선택된 데이터 이동 게이트웨이에 배포됩니다.

  정보 메모

  Linux에서 Kerberos 인증을 사용하려면 Kerberos 클라이언트(워크스테이션) 패키지를 설치해야 합니다.

* 사용자 이름 및 비밀번호 (SASL/PLAIN): 사용자 이름 및 비밀번호(SASL/PLAIN)를 사용하여 자신을 인증하려면 이 옵션을 선택할 수 있습니다. 비밀번호가 평문으로 전송되는 것을 방지하려면 TLS 활성화 옵션도 활성화하는 것이 좋습니다.

  정보 메모

  선택한 클라우드 공급자가 Amazon MSK인 경우에는 이 인증 방법을 사용할 수 없습니다.

* 사용자 이름 및 비밀번호 (SASL/SCRAM-SHA-256): 이 옵션을 선택하여 사용자 이름 및 비밀번호(SASL/SCRAM-SHA-256)를 사용하여 인증할 수 있습니다.

  참고로, 이 옵션을 선택하면 각 브로커의 `server.properties` 파일이 해당 SASL/SCRAM 메커니즘으로 구성되어야 합니다.

  정보 메모

  선택한 클라우드 공급자가 Amazon MSK인 경우 이 인증 방법은 사용할 수 없습니다.

* 사용자 이름 및 비밀번호 (SASL/SCRAM-SHA-512): 이 옵션을 선택하여 사용자 이름과 비밀번호(SASL/SCRAM-SHA-512)를 사용하여 자신을 인증할 수 있습니다.

  이 옵션을 선택하면 각 브로커의 `server.properties` 파일이 해당 SASL/SCRAM 메커니즘으로 구성되어야 합니다.

#### SSL 옵션

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/kafka-target.htm)TLS 활성화 (TLS 1.0, 1.1 및 1.2 지원)

Qlik Talend Cloud와 브로커 서버 사이의 통신을 암호화하려면 이 옵션을 선택합니다. 브로커가 SSL을 요구하도록 구성된 경우, 이 옵션을 *반드시* 선택해야 합니다.

* CA 파일: PEM 형식의 CA 인증서를 찾아봅니다. 저장을 클릭하면, 파일이 Qlik Talend Cloud에 업로드되고 커넥터 설정에서 선택한 데이터 이동 게이트웨이에 배포됩니다.

  정보 메모

  선택한 클라우드 공급자가 Amazon MSK인 경우 필요하지 않습니다.

### 메타데이터 메시지 게시

#### 메타데이터 메시지 게시를 위해 스키마 레지스트리를 사용할 수 있습니다

드롭다운 목록에서 다음 중 하나를 선택합니다.

* 아니요

  이 옵션을 선택하면 데이터 메시지만 게시됩니다.

* Confluent 스키마 레지스트리

  이 옵션을 선택하는 경우, 아래에 설명된 스키마 레지스트리 연결 속성도 구성해야 합니다.

  경고 메모Confluent 스키마 레지스트리를 선택한 경우 다음 [내부 속성](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/kafka-target.htm#internal_prop)을 설정해야 합니다: CsrSkipGlobalConfig=false

정보 메모

* Confluent 스키마 레지스트리 옵션은 Avro 메시지 형식만 지원합니다.

* 스키마 메시지를 데이터 메시지와 동일한 토픽에 게시하지 *않도록* 강력히 권장합니다.

* 토픽이 존재하지 않는 경우, 데이터 태스크가 런타임 중에 토픽을 생성할 수 있도록 `auto.create.topics.enable=true`로 브로커를 구성합니다. 그렇지 않으면 작업이 실패합니다.

#### 메시지 형식

메시지 형식으로 JSON 또는 Avro를 선택합니다. Confluent schema registry를 선택한 경우 Avro 만 사용 가능한 옵션입니다.

### 스키마 레지스트리 연결 속성

#### 스키마 레지스트리 서버

하나 이상의 스키마 레지스트리 서버를 다음 형식을 사용하여 지정합니다(고가용성을 위해):

Confluent 스키마 레지스트리에 데이터 스키마를 게시할 때:

` server1:port1[,server2[:port2]]
                 `

` 192.168.1.100:8081,192.168.1.101:8081
                 `

데이터 작업은 첫 번째 사용 가능한 호스트에 연결됩니다.

#### 인증 방법

다음 Schema Registry 인증 옵션 중 하나를 선택합니다.

* 없음: 인증 없음.

* 인증서: 인증서를 사용하여 인증하려면 선택합니다.

  이 옵션을 선택하는 경우 다음 정보도 제공해야 합니다.

  * 공개 키 파일: PEM 형식의 공개 키 파일을 찾아봅니다. 저장을 클릭하면 파일이 Qlik Talend Cloud에 업로드되고 커넥터 설정에서 선택한 데이터 이동 게이트웨이에 배포됩니다.
  * 개인 키 파일: PEM 형식의 개인 키 파일을 찾아봅니다. 저장을 클릭하면 파일이 Qlik Talend Cloud에 업로드되고 커넥터 설정에서 선택한 데이터 이동 게이트웨이에 배포됩니다.
  * 개인 키 비밀번호: 개인 키 파일의 비밀번호입니다.

* 사용자 이름 및 비밀번호: 사용자 이름과 비밀번호로 인증하려면 선택하십시오. 그런 다음 사용자 이름 및 비밀번호 필드에 로그인 자격 증명을 입력하십시오.

* 인증서 + 사용자 이름 및 비밀번호: 인증서와 사용자 이름 및 비밀번호를 모두 사용하여 인증하려면 선택합니다.

  이 옵션을 선택하면 위에 설명된 공개 키 파일, 개인 키 파일, 개인 키 비밀번호, 사용자 이름 및 비밀번호 필드에 필요한 정보를 입력합니다.

* TLS 활성화 (TLS 1.0, 1.1 및 1.2 지원): 이 옵션을 선택하여 데이터 이동 게이트웨이 머신과 스키마 레지스트리 서버 간의 데이터를 암호화합니다. 서버가 SSL을 요구하도록 구성된 경우, 이 옵션을 *반드시* 선택해야 합니다.

  * CA 파일: PEM 형식의 CA 인증서를 찾습니다. 저장을 클릭하면, 파일이 Qlik Talend Cloud에 업로드되고 커넥터 설정에서 선택된 데이터 이동 게이트웨이에 배포됩니다.

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/kafka-target.htm)

### 내부 속성

내부 속성은 특별한 사용 사례를 위한 것이므로 대화 상자에 표시되지 않습니다. Qlik 지원 팀에서 지시한 경우에만 사용해야 합니다.

필드 오른쪽에 있는 the 새로 만들기 icon 및 the 취소 icon 버튼을 사용하여 필요에 따라 속성을 추가하거나 제거합니다.

### 이름

연결의 표시 이름입니다.

## 전제 조건

Kafka를 대상으로 사용하기 전에 다음 전제 조건이 충족되어야 합니다.

* [](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/kafka-target.htm) 데이터 이동 게이트웨이 머신에서 모든 브로커에 TCP 포트를 엽니다.

* 데이터 작업이 대상 토픽에 쓸 수 있도록 허용하는 권한을 설정합니다. 이를 수행하는 한 가지 방법은 Kafka ACL 스크립트(kafka-acls)를 사용하는 것입니다.

* 데이터 작업을 시작하기 전에 attrep\_apply\_exceptions라는 토픽을 생성하거나 `auto.create.topics.enable=true`로 브로커를 구성합니다.

  참고로, 이 토픽이 존재하지 않으면 오류 처리 정책과 관계없이 데이터 오류가 발생할 때 태스크는 항상 실패합니다.

  attrep\_apply\_exceptions 제어 테이블에 대한 설명은 [예외 적용](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/apply_exceptions.htm)을(를) 참조하십시오.

## 제한 사항 및 고려 사항

Kafka를 대상 커넥터로 사용하여 태스크를 정의할 때 다음과 같은 제한 사항이 적용됩니다.

* 지원되지 않는 태스크 설정:

  * Kafka 대상 커넥터는 무제한 LOB 크기를 지원하지 않습니다. 작업 설정에서 LOB 열 포함 및 열 크기 제한(KB) 옵션이 활성화되고 읽기 전용이 됩니다.

  * 변경 내용 저장 모드는 지원되지 않습니다.

  * 일괄 최적화 적용 모드는 지원되지 않습니다. Kafka는 항상 트랜잭션 적용 모드로 작동합니다.

  * ALTER 무시 변경 내용 적용 설정은 소스 데이터 유형 변경 및 테이블 이름 변경에 대해 지원되지 않습니다.

  * 대상 테이블 준비 필드의 테이블 삭제 및 생성 옵션은 지원되지 않습니다.

  * 대상 테이블 준비 필드의 로드 전 잘라내기 옵션은 지원되지 않습니다.

  * 변경 데이터 파티셔닝 제어 테이블은 지원되지 않습니다.

* 일반 제한 사항:

  * Kafka 토픽 이름은 공백을 포함하거나 255자(Kafka 0.10부터 249자)를 초과할 수 없으며 다음 문자만 포함할 수 있습니다.

    a-z|A-Z|0-9|. (점)|\_(밑줄)|-(빼기)

    소스 테이블 이름이 허용된 최대 길이를 초과하거나 지원되지 않는 문자를 포함하는 경우, 작업을 시작하기 전에 이름을 수정하거나 전역 변환을 정의해야 합니다.

  * 열 이름은 [A-Za-z\_] (문자 또는 밑줄)로 시작해야 하며, [A-Za-z0-9\_] (문자, 숫자 또는 밑줄)이 뒤에 이어져야 합니다. 예를 들어, \_Test\_는 유효한 열 이름이지만 &Test는 유효하지 않습니다.

    소스 열 이름이 이 규칙을 따르지 않는 경우, 열 이름을 변경하기 위해 변환을 사용해야 합니다.

  * 소스 테이블 삭제 또는 이름 변경은 지원되지 않습니다.

## 데이터 유형

다음 표는 Qlik Cloud를 사용할 때 지원되는 Kafka 데이터 유형과 Qlik Cloud 데이터 유형의 기본 매핑을 보여 줍니다.

정보 메모

JSON 메시지 형식을 사용할 때 이진 값은 16진수 숫자로 표현됩니다.

Kafka 데이터 매핑

| Qlik Cloud 데이터 유형 | 스키마 메시지의 Kafka 대상 데이터 유형 |
| --- | --- |
| DATE | DATE |
| TIME | TIME |
| DATETIME | DATETIME |
| BYTES | BYTES(길이) |
| BLOB | BLOB |
| REAL4 | REAL4(7) |
| REAL8 | REAL8(14) |
| INT1 | INT1(3) |
| INT2 | INT2(5) |
| INT4 | INT4(10) |
| INT8 | INT8(19) |
| UINT1 | UINT1(3) |
| UINT2 | UINT2(5) |
| UINT4<br><br>정보 메모<br><br>2^31-1보다 큰 값은 지원되지 않습니다. | UINT4(10) |
| UINT8<br><br>정보 메모<br><br>2^63-1보다 큰 값은 지원되지 않습니다. | UINT8(20) |
| NUMERIC | NUMERIC(p,s) |
| STRING | STRING(길이) |
| WSTRING | STRING(길이) |
| CLOB | CLOB |
| NCLOB | NCLOB |
| BOOLEAN | BOOLEAN(1) |

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/kafka-target.htm)

## JSON 및 Avro에 매핑

Avro 메시지 형식은 데이터 유형의 더 정확한 표현을 위해 논리적 유형을 사용합니다.

Qlik Cloud 데이터 유형은 특정 데이터 유형에 논리적 데이터 유형 사용 확인란이 선택된 경우에만 지원되는 Avro 논리적 데이터 유형에 매핑됩니다.

데이터 유형 매핑

| Qlik Cloud 데이터 유형 | JSON | Avro 논리 데이터 유형 |
| --- | --- | --- |
| DATE | STRING | DATE<br><br>Avro INT에 주석을 답니다. |
| TIME | STRING | TIME-MILLIS<br><br>Avro INT에 주석을 답니다. |
| TIMESTAMP | STRING | TIMESTAMP-MICROS<br><br>Avro LONG에 주석을 답니다. |
| STRING | STRING | - |
| WSTRING | STRING | - |
| CLOB | STRING | - |
| NCLOB | STRING | - |
| NUMERIC | STRING | DECIMAL(p,s)<br><br>Avro BYTES에 주석을 답니다. |
| BYTES | BYTES | - |
| BLOB | BYTES | - |
| REAL4 | FLOAT | - |
| REAL8 | DOUBLE | - |
| INT1 | INT | - |
| INT2 | INT | - |
| INT4 | INT | - |
| UINT1 | INT | - |
| UINT2 | INT | - |
| UINT4 | LONG | - |
| INT8 | LONG | - |
| UINT8 | STRING | DECIMAL(20,0)<br><br>Avro BYTES에 주석을 답니다. |
| BOOLEAN | BOOLEAN | - |