Kafka용 Openflow Connector 설정하기

참고

커넥터에는 커넥터 약관 이 적용됩니다.

전제 조건

  1. Kafka용 Openflow Connector 을 검토했는지 확인합니다.

  2. Openflow를 설정 했는지 확인합니다.

커넥터 유형

Kafka용 Openflow Connector는 3가지 구성으로 제공되며, 각 구성은 특정 사용 사례에 최적화되어 있습니다. 커넥터 갤러리에서 이러한 커넥터 정의를 다운로드할 수 있습니다.

JSON 데이터 형식용 Apache Kafka

스키마 진화 및 항목 간 매핑을 통한 JSON 메시지 수집을 위한 간소화된 커넥터

AVRO 데이터 형식용 Apache Kafka

스키마 진화 및 항목 간 매핑을 통한 AVRO 메시지 수집을 위한 간소화된 커넥터

DLQ 및 메타데이터가 포함된 Apache Kafka

배달 실패 큐(DLQ) 지원, 메타데이터 처리, :doc:`Kafka용 Snowflake Connector</user-guide/kafka-connector-overview>`와의 기능 동등성을 제공하는 모든 기능을 갖춘 커넥터

특정 커넥터 유형에 대한 자세한 구성은 다음을 참조하십시오.

어떤 커넥터를 선택해야 할까요?

데이터 형식, 운영 요구 사항 및 기능 요구 사항에 가장 적합한 커넥터 변형을 선택합니다.

다음의 경우 :doc:`JSON 또는 AVRO 데이터 형식에 Apache Kafka</user-guide/data-integration/openflow/connectors/kafka/kafka-json-avro>`를 선택합니다.

  • Kafka 메시지가 JSON 또는 AVRO 형식인 경우

  • 기본적인 스키마 진화 기능이 필요한 경우

  • 최소한의 구성으로 간단한 설정을 원하는 경우

  • 고급 오류 처리나 배달 실패 큐 기능이 필요하지 않은 경우

  • 새로운 통합을 설정 중이며 빠르게 시작하고 싶으신가요?

형식별 고려 사항:

  • JSON 형식: 다양한 데이터 구조에 더 유연하게 대응 가능, 디버깅 및 검사 용이

  • AVRO 형식: 내장된 스키마 레지스트리 통합을 갖춘 강력한 타입 지정 데이터로, 구조화된 데이터 파이프라인에 더 적합

다음의 경우 :doc:`DLQ 및 메타데이터가 있는 Apache Kafka</user-guide/data-integration/openflow/connectors/kafka/kafka-dlq-metadata>`를 선택합니다.

  • :doc:`Kafka용 Snowflake Connector</user-guide/kafka-connector-overview>`에서 마이그레이션 중이며, 호환 가능한 기능을 갖춘 기능 동등성이 필요한 경우

  • 실패한 메시지에 대해 강력한 오류 처리 및 배달 실패 큐 지원이 필요한 경우

  • 메시지 수집에 관한 상세한 메타데이터(타임스탬프, 오프셋, 헤더)가 필요한 경우

마이그레이션 고려 사항

현재 Kafka용 Snowflake Connector를 사용 중이라면, 기능 호환성을 갖춘 원활한 마이그레이션 경험을 위해 DLQ 및 메타데이터가 있는 Apache Kafka 커넥터를 선택합니다.

필드 이름 처리 차이점: Kafka용 Openflow Connector는 필드 이름 내 특수 문자를 Kafka용 Snowflake Connector와 다르게 처리합니다. 마이그레이션 후, Kafka용 Openflow Connector는 이러한 명명 규칙 차이로 인해 다른 이름의 새 Snowflake 열을 생성할 수 있습니다. 필드 이름 변환 방식에 대한 자세한 내용은 필드명 매핑 및 특수 문자 처리 섹션을 참조하세요.

성능 고려 사항

  • JSON 및 AVRO 형식의 커넥터는 간소화된 설계 덕분에 간단한 사용 사례에서 더 나은 성능을 제공합니다.

  • DLQ 및 메타데이터 커넥터는 약간 더 높은 리소스 사용량을 대가로 보다 포괄적인 모니터링 및 오류 처리를 제공합니다.

Snowflake 계정 설정하기

Snowflake 계정 관리자는 다음 작업을 수행합니다.

  1. 유형이 SERVICE 인 새 Snowflake 서비스 사용자를 생성합니다.

  2. 새 역할을 생성하거나 기존 역할을 사용하여 데이터베이스 권한 권한을 부여합니다.

    커넥터는 대상 테이블이 존재하지 않을 경우 자동으로 생성할 수 있으므로, 사용자가 Snowflake 오브젝트를 생성하고 관리하는 데 필요한 권한을 보유하고 있는지 확인합니다.

    오브젝트

    권한

    참고

    데이터베이스

    USAGE

    스키마

    USAGE . CREATE TABLE .

    스키마 수준 오브젝트가 생성된 후 CREATE object 권한이 취소될 수 있습니다.

    테이블

    OWNERSHIP

    Kafka 커넥터를 사용하여 기존 테이블로 데이터를 수집하는 경우에만 필요합니다. . 커넥터가 Kafka 항목의 레코드를 위한 새 대상 테이블을 생성하는 경우, 구성에 지정된 사용자의 기본 역할이 테이블 소유자가 됩니다.

    Snowflake는 더 나은 액세스 제어를 위해 각 Kafka 인스턴스에 대해 별도의 사용자 및 역할을 생성할 것을 권장합니다.

    다음 스크립트를 사용하여 사용자 지정 역할을 생성하고 구성할 수 있습니다(SECURITYADMIN 또는 이와 동등한 요구 사항 필요):

    USE ROLE securityadmin;
    
    CREATE ROLE kafka_connector_role_1;
    GRANT USAGE ON DATABASE kafka_db TO ROLE kafka_connector_role_1;
    GRANT USAGE ON SCHEMA kafka_schema TO ROLE kafka_connector_role_1;
    GRANT CREATE TABLE ON SCHEMA kafka_schema TO ROLE kafka_connector_role_1;
    
    -- Only for existing tables
    GRANT OWNERSHIP ON TABLE existing_table1 TO ROLE kafka_connector_role_1;
    
    Copy

    권한은 커넥터 역할에 직접 부여되어야 하며 상속될 수 없습니다.

  3. Snowflake 서비스 사용자에게 이전 단계에서 생성한 역할을 부여합니다.

    역할은 사용자에 대한 기본 역할로 할당되어야 합니다.

    GRANT ROLE kafka_connector_role_1 TO USER kafka_connector_user_1;
    ALTER USER kafka_connector_user_1 SET DEFAULT_ROLE = kafka_connector_role_1;
    
    Copy
  4. 1단계에서 Snowflake SERVICE 사용자에 대해 :doc:`키 페어 인증</user-guide/key-pair-auth>`을 구성합니다.

  5. Snowflake는 이 단계를 강력히 권장합니다. Openflow에서 지원하는 시크릿 관리자(예: AWS, Azure, Hashicorp)를 구성하고 공개 및 개인 키를 시크릿 스토어에 저장합니다.

    참고

    어떤 이유로든 시크릿 관리자를 사용하지 않으려면 조직의 보안 정책에 따라 키 페어 인증에 사용되는 공개 키와 개인 키 파일을 보호할 책임이 있습니다.

    1. 시크릿 관리자가 구성되면 인증 방법을 결정합니다. AWS 에서는 다른 시크릿을 유지할 필요가 없으므로 Openflow와 연결된 EC2 인스턴스 역할을 사용하는 것이 좋습니다.

    2. Openflow에서 오른쪽 상단의 햄버거 메뉴에서 이 시크릿 관리자와 연결된 매개 변수 공급자를 구성합니다. Controller Settings » Parameter Provider 로 이동한 다음 매개 변수 값을 가져옵니다.

    3. 이 시점에서 모든 자격 증명은 연결된 매개 변수 경로로 참조할 수 있으며 민감한 값은 Openflow 내에서 유지될 필요가 없습니다.

  6. 다른 Snowflake 사용자가 커넥터에서 수집한 원시 수집 문서 및 테이블에 대한 액세스가 필요한 경우(예:Snowflake에서 사용자 정의 처리를 위해), 해당 사용자에게 1단계에서 생성한 역할을 부여하십시오.

커넥터 설정하기

데이터 엔지니어는 다음 작업을 수행하여 커넥터를 설치하고 구성합니다.

커넥터 설치하기

  1. Openflow 개요 페이지로 이동합니다. Featured connectors 섹션에서 View more connectors 을 선택합니다.

  2. Openflow Connector 페이지에서 커넥터를 찾아 Add to runtime 을 선택합니다.

  3. Select runtime 대화 상자의 Available runtimes 드롭다운 목록에서 런타임을 선택합니다.

  4. Add 를 선택합니다.

    참고

    커넥터를 설치하기 전에 커넥터가 수집한 데이터를 저장할 수 있도록 Snowflake에서 데이터베이스와 스키마를 생성했는지 확인하십시오.

  5. Snowflake 계정 자격 증명으로 배포를 인증하고 런타임 애플리케이션이 Snowflake 계정에 액세스할 수 있도록 허용할지 묻는 메시지가 표시되면 Allow 를 선택합니다. 커넥터 설치 프로세스를 완료하는 데 몇 분 정도 걸립니다.

  6. Snowflake 계정 자격 증명으로 런타임에 인증합니다.

커넥터 프로세스 그룹이 추가된 Openflow 캔버스가 표시됩니다.

커넥터 구성

  1. 프로세스 그룹 매개 변수 채우기

    1. 가져온 프로세스 그룹을 마우스 오른쪽 버튼으로 클릭하고 Parameters 를 선택합니다.

    2. 공통 매개 변수 에 설명된 대로 필수 매개 변수 값을 입력합니다.

공통 매개 변수

모든 Kafka 커넥터 베리언트는 기본 연결 및 인증을 위한 공통 매개 변수 컨텍스트를 공유합니다.

Snowflake 대상 매개 변수

매개 변수

설명

필수

대상 데이터베이스

데이터가 유지될 데이터베이스입니다. Snowflake에 이미 존재해야 합니다

대상 스키마

데이터가 유지될 스키마입니다. Snowflake에 이미 존재해야 합니다. 이 매개 변수는 대소문자를 구분합니다. 스키마가 이중 따옴표로 된 이름으로 생성된 경우가 아니라면 이 매개 변수를 대문자로 제공합니다. 그런 다음 대소문자가 일치하도록 하되, 포함된 이중 따옴표는 포함하지 마세요. 다음 예제를 참조하세요.

  • CREATE SCHEMA SCHEMA_NAME 또는 CREATE SCHEMA schema_name - SCHEMA_NAME 사용

  • CREATE SCHEMA "schema_name" 또는 CREATE SCHEMA "SCHEMA_NAME" - schema_name 또는 ``SCHEMA_NAME``을 각각 사용

Snowflake 계정 식별자

Snowflake 계정 이름은 [organization-name]-[account-name] 형식으로 형식이 지정되며, 데이터는 여기에 영구적으로 저장됩니다.

Snowflake Authentication Strategy

Snowflake에 대한 인증 전략. 가능한 값: SNOWFLAKE_SESSION_TOKEN - SPCS 에서 플로우를 실행하는 경우, 개인 키를 사용하여 액세스를 설정하려는 경우 KEY_PAIR

Snowflake 개인 키

인증에서 사용되는 RSA 개인 키입니다. RSA 키는 PKCS8 표준에 따라 형식이 지정되어야 하며 표준 PEM 헤더와 푸터가 있어야 합니다. Snowflake 개인 키 파일 또는 Snowflake 개인 키 중 하나를 정의해야 합니다

아니요

Snowflake 개인 키 파일

PKCS8 표준에 따라 형식이 지정되고 표준 PEM 헤더와 푸터가 있는 Snowflake 인증에 사용되는 RSA 개인 키가 포함된 파일입니다. 헤더 라인은 -----BEGIN PRIVATE 로 시작합니다. Reference asset 확인란을 선택하여 개인 키 파일을 업로드합니다.

아니요

Snowflake 개인 키 비밀번호

Snowflake 개인 키 파일과 연결된 비밀번호입니다

아니요

Snowflake 역할

쿼리 실행 중에 사용되는 Snowflake 역할

Snowflake 사용자 이름

Snowflake 인스턴스에 연결하는 데 사용되는 사용자 이름입니다

Kafka 소스 매개 변수(SASL 인증)

매개 변수

설명

필수

Kafka 보안 프로토콜

브로커와 통신하는 데 사용되는 보안 프로토콜입니다. Kafka 클라이언트 security.protocol 속성에 해당합니다. SASL_PLAINTEXT / SASL_SSL 중 하나.

Kafka SASL 메커니즘

SASL 인증에 사용되는 메커니즘입니다. Kafka 클라이언트 sasl.mechanism 속성에 해당합니다. 다음 중 하나: PLAIN / SCRAM-SHA-256 / SCRAM-SHA-512

Kafka SASL 사용자 이름

Kafka에 인증할 사용자 이름입니다

Kafka SASL 비밀번호

Kafka에 인증할 비밀번호

Kafka 부트스트랩 서버

쉼표로 구분된 데이터를 가져올 Kafka 브로커의 목록으로, 포트(예: kafka-broker:9092)를 포함해야 합니다. DLQ 항목에도 동일한 인스턴스가 사용됩니다.

Kafka 수집 매개 변수

매개 변수

설명

필수

Kafka 항목 형식

다음 중 하나: 이름 / 패턴. 공급되는’Kafka 항목’이 쉼표로 구분된 이름 목록인지 아니면 단일 정규식인지 지정합니다.

Kafka 항목

쉼표로 구분된 Kafka 항목 목록 또는 정규식입니다.

Kafka 그룹 아이디

커넥터가 사용하는 컨슈머 그룹의 ID. 임의적일 수 있지만 고유해야 합니다.

Kafka 자동 오프셋 리셋

Kafka auto.offset.reset 속성에 해당하는 이전 컨슈머 오프셋이 없을 때 자동 오프셋 구성이 적용됩니다. 다음 중 하나: earliest / latest.. 기본값: latest

항목 매핑 테이블 맵

이 선택적 매개 변수를 통해 사용자는 어떤 항목를 어떤 테이블에 매핑할지 지정할 수 있습니다. 각 항목과 테이블 이름은 콜론으로 구분해야 합니다(아래 예 참조). 이 테이블 이름은 따옴표로 묶이지 않은 유효한 Snowflake 식별자여야 합니다. 정규 식은 모호할 수 없습니다. 일치하는 항목은 단 하나의 대상 테이블과만 일치해야 합니다. 비어 있거나 일치하는 항목이 없는 경우 항목 이름이 테이블 이름으로 사용됩니다. 참고: 매핑에는 쉼표 뒤에 공백을 포함할 수 없습니다.

아니요

Topic To Table Map 예시 값:

  • topic1:low_range,topic2:low_range,topic5:high_range,topic6:high_range

  • topic[0-4]:low_range,topic[5-9]:high_range

  • .*:destination_table - maps all topics to the destination_table

베리언트별 설정 구성하기

공통 매개 변수를 구성한 후에는 선택한 커넥터 베리언트에 맞는 설정을 구성해야 합니다.

JSON 데이터 형식을 위한 Apache KafkaAVRO 데이터 형식을 위한 Apache Kafka 커넥터:

JSON/AVRO 별 매개 변수는 JSON/AVRO 데이터 형식을 위한 Apache Kafka 섹션을 참조하십시오.

DLQ및 메타데이터 커넥터가 있는 Apache Kafka의 경우:

DLQ 구성, 스키마화 설정, Iceberg 테이블 지원 및 메시지 형식 옵션을 포함한 고급 매개 변수는 DLQ 및 메타데이터가 포함된 Apache Kafka 섹션을 참조하십시오.

인증

모든 커넥터 베리언트는 Kafka 소스 매개 변수(SASL 인증) 에 설명된 대로 매개 변수 컨텍스트를 통해 구성된 SASL 인증을 지원합니다.

mTLS 및 AWS MSK IAM 을 포함한 다른 인증 방법에 대해서는 Kafka용 Openflow Connector에 대한 다른 인증 방법 구성하기 섹션을 참조하십시오.

플로우 실행

  1. 비행기를 마우스 오른쪽 버튼으로 클릭하고 Enable all Controller Services 를 클릭합니다.

  2. 비행기를 마우스 오른쪽 버튼으로 클릭하고 Start 를 클릭합니다. 커넥터가 데이터 수집을 시작합니다.