Openflow Connector for Snowflake to Kafka 설정

참고

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

이 항목에서는 Openflow Connector for Snowflake to Kafka 를 설정하는 단계에 대해 설명합니다.

전제 조건

  1. Openflow Connector for Snowflake to Kafka 정보 을 검토했는지 확인합니다.

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

  3. 변경 사항에 대해 쿼리할 Snowflake 스트림을 생성합니다.

  4. Snowflake 스트림에서 CDC 메시지를 수신할 Kafka 항목을 생성합니다.

Snowflake 계정 설정하기

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

  1. 커넥터가 CDC 이벤트를 읽는 데 사용할 데이터베이스, 소스 테이블 및 스트림 오브젝트를 생성합니다. 예:

    create database stream_db;
    use database stream_db;
    create table stream_source (user_id varchar, data varchar);
    create stream stream_on_table on table stream_source;
    
    Copy
  2. 새 역할을 생성하거나 기존 역할을 사용하고 스트림 및 스트림의 소스 오브젝트에 SELECT 권한을 부여합니다. 커넥터에는 스트림이 포함된 데이터베이스와 스키마, 스트림의 소스 오브젝트에 대한 USAGE 권한도 필요합니다. 예:

    create role stream_reader;
    grant usage on database stream_db to role stream_reader;
    grant usage on schema stream_db.public to role stream_reader;
    grant select on stream_source to role stream_reader;
    grant select on stream_on_table to role stream_reader;
    
    Copy
  3. 유형이 SERVICE 인 새 Snowflake 서비스 사용자를 생성합니다. 예:

    create user stream_user type = service;
    
    Copy
  4. Snowflake 서비스 사용자에게 이전 단계에서 생성한 역할을 부여합니다. 예:

    grant role stream_reader to user stream_user;
    
    Copy
  5. 3단계의 Snowflake SERVICE 사용자에 대해 키 페어 인증 으로 구성합니다.

  6. Snowflake는 이 단계를 강력히 권장합니다. Openflow에서 지원하는 시크릿 관리자(예: AWS, Azure, Hashicorp)를 구성하고 공개 및 개인 키를 시크릿 스토어에 저장합니다. 단, 4단계에서 생성한 개인 키는 커넥터 구성을 위한 구성 변수로 바로 사용할 수 있다는 점에 유의하십시오. 이 경우 개인 키는 Openflow 런타임 구성에 저장됩니다.

    참고

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

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

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

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

  7. 커넥터가 사용할 웨어하우스를 지정합니다. 1개의 커넥터로 1개의 테이블을 1개의 Kafka 항목에 복제할 수 있습니다. 이러한 종류의 처리를 위해 가장 작은 웨어하우스를 선택할 수 있습니다.

커넥터 설정하기

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

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

  2. Openflow Connector 페이지에서 커넥터가 통신해야 하는 Kafka 브로커 인스턴스 종류에 따라 커넥터를 찾아 선택합니다.

    • mTLS 버전: SSL (상호 TLS) 보안 프로토콜을 사용하거나 SASL_SSL 프로토콜을 사용하며 자체 서명 인증서를 사용하는 브로커에 연결하는 경우 이 커넥터를 선택합니다.

    • SASL 버전: 다른 보안 프로토콜을 사용하는 경우 이 커넥터를 선택합니다.

  3. Add to runtime 을 선택합니다.

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

  5. Add 를 선택합니다.

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

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

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

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

  9. 플로우 매개 변수 에 설명된 대로 필수 매개 변수 값을 채웁니다.

플로우 매개 변수

이 섹션에서는 다음 매개 변수 컨텍스트에 따라 구성할 수 있는 플로우 매개 변수에 대해 설명합니다.

Kafka Sink 소스 매개 변수

매개 변수

설명

필수

Snowflake 계정 식별자

[organization-name]-[account-name]과 같은 형식의 Snowflake 계정 이름(데이터가 유지되는 곳)입니다. 예: example.snowflakecomputing.com

Snowflake Authentication Strategy

Snowflake에 대한 인증 전략. 가능한 값은 다음과 같습니다.

  • SNOWFLAKE_SESSION_TOKEN: SPCS 에서 커넥터를 실행하는 경우

  • KEY_PAIR: 개인 키를 사용하여 액세스를 설정하려는 경우

소스 데이터베이스

소스 데이터베이스입니다. 이 데이터베이스에는 소비될 Snowflake 스트림 오브젝트가 포함되어야 합니다.

Snowflake 개인 키 비밀번호

Snowflake 개인 키와 연결된 비밀번호입니다. 사용하는 개인 키가 비밀번호로 보안되지 않은 경우에는 필수가 아닙니다.

아니요

Snowflake 역할

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

Snowflake 사용자 이름

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

Snowflake 웨어하우스

쿼리 실행에 사용되는 Snowflake 웨어하우스

Snowflake 개인 키

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

Snowflake 개인 키 파일

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

아니요

소스 스키마

소스 스키마입니다. 이 스키마에는 소비될 Snowflake 스트림 오브젝트가 포함되어야 합니다.

Kafka Sink 대상 매개 변수

매개 변수

설명

필수

Kafka 부트스트랩 서버

쉼표로 구분된 데이터를 전송할 Kafka 브로커 목록입니다.

Kafka SASL 메커니즘

SASL 인증에 사용되는 메커니즘입니다. Kafka 클라이언트 sasl.mechanism 속성에 해당합니다. 가능한 값은 다음과 같습니다.

  • PLAIN

  • SCRAM-SHA-256

  • SCRAM-SHA-512

  • AWS_MSK_IAM

Kafka SASL 사용자 이름

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

Kafka SASL 비밀번호

Kafka에 인증할 비밀번호

Kafka 보안 프로토콜

브로커와 통신하는 데 사용되는 보안 프로토콜입니다. Kafka 클라이언트 security.protocol 속성에 해당합니다. 가능한 값은 다음과 같습니다.

  • PLAINTEXT

  • SASL_PLAINTEXT

  • SASL_SSL

  • SSL

Kafka 항목

Snowflake 스트림의 CDCs 가 전송되는 Kafka 항목은 다음과 같습니다

Kafka 메시지 키 필드

Kafka 메시지 키로 사용할 데이터베이스 열 이름을 지정합니다. 지정하지 않으면 메시지 키가 설정되지 않습니다. 지정하면 이 열의 값이 메시지 키로 사용됩니다. 이 매개 변수의 값은 대/소문자를 구분합니다.

아니요

Kafka keystore 파일 이름

mTLS 인증 방법에 대한 클라이언트 키 및 인증서를 저장하는 키 저장소의 전체 경로입니다. mTLS 인증 및 보안 프로토콜이 SSL 인 경우 필수입니다.

아니요

Kafka keystore 유형

키 저장소 유형입니다. mTLS 인증의 경우 필수입니다. 가능한 값은 다음과 같습니다.

  • PKCS12

  • JKS

  • BCFKS

아니요

Kafka keystore 비밀번호

keystore 파일을 보안하는 데 사용되는 비밀번호입니다.

아니요

Kafka 키 비밀번호

키 저장소에 저장된 개인 키의 비밀번호입니다. mTLS 인증의 경우 필수입니다.

아니요

Kafka truststore 파일 이름

브로커 인증서를 저장하는 truststore에 대한 전체 경로입니다. 클라이언트는 이 truststore의 인증서를 사용하여 브로커 ID를 확인합니다.

아니요

Kafka truststore 유형

truststore 파일의 유형입니다. 가능한 값은 다음과 같습니다.

  • PKCS12

  • JKS

  • BCFKS

아니요

Kafka truststore 비밀번호

truststore 파일의 비밀번호입니다.

아니요

Kafka Sink 수집 매개 변수

매개 변수

설명

필수

Snowflake FQN 스트림 이름

정규화된 Snowflake 스트림 이름입니다.

플로우 실행

  1. 평면을 마우스 오른쪽 버튼으로 클릭하고 Enable all Controller Services 를 선택합니다.

  2. 가져온 프로세스 그룹을 마우스 오른쪽 버튼으로 클릭하고 Start 를 선택합니다. 커넥터가 데이터 수집을 시작합니다.