Openflow Connector for PostgreSQL 정보

참고

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

이 항목에서는 Openflow Connector for PostgreSQL 의 기본 개념, 워크플로 및 제한 사항에 대해 설명합니다.

Openflow Connector for PostgreSQL 은 PostgreSQL 데이터베이스 인스턴스를 Snowflake에 연결하고 선택한 테이블의 데이터를 거의 실시간으로 또는 예약된 일정에 따라 복제합니다. 커넥터는 또한 복제된 테이블의 현재 상태에 따라 사용할 수 있는 모든 데이터 변경 사항의 로그를 생성합니다.

다음 작업을 수행하려는 경우 이 커넥터를 사용하십시오.

  • 포괄적인 중앙 집중식 보고를 위해 Snowflake를 사용한 PostgreSQL 테이블의 CDC 복제

워크플로

  1. 데이터베이스 관리자 가 PostgreSQL 복제 설정을 구성하고, 게시를 만들고, 커넥터에 대한 자격 증명을 생성합니다. 선택 사항으로 SSL 인증서를 제공합니다.

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

    1. 커넥터에 대한 서비스 사용자, 커넥터를 위한 웨어하우스, 복제할 대상 데이터베이스를 생성합니다.

    2. 커넥터를 설치합니다.

    3. 플로우 템플릿의 필수 매개 변수를 지정합니다.

    4. 플로우를 실행합니다. 커넥터는 Openflow에서 실행될 때 다음 작업을 수행합니다.

      1. 저널 테이블에 대한 스키마를 생성합니다.

      2. 복제를 위해 구성된 소스 테이블과 일치하는 스키마 및 대상 테이블을 생성합니다.

      3. 테이블 복제 수명 주기에 따라 복제를 시작합니다.

테이블 복제 수명 주기

  1. 스키마 검사: 커넥터는 소스 테이블의 열, 이름, 유형을 검색한 다음 Snowflake 및 커넥터의 제한 사항에 대해 유효성을 검사합니다. 유효성 검사에 실패하면 이 스테이지가 실패하고 사이클이 완료됩니다. 스키마 자가 분석을 성공적으로 완료한 후 커넥터는 빈 대상 테이블을 생성합니다.

  2. 스냅샷 로딩: 커넥터는 소스 테이블에서 사용 가능한 모든 데이터를 대상 테이블에 복사본으로 복사합니다. 이 스테이지가 실패하면 사이클이 종료되고 더 이상 데이터가 복제되지 않습니다. 성공적으로 완료되면 소스 테이블의 전체 데이터 세트를 대상 테이블에서 사용할 수 있습니다.

  3. 증분 로딩: 커넥터는 계속해서 원본 테이블의 변경 내용을 추적하고 대상 테이블에 복사합니다. 테이블이 복제에서 제거될 때까지 이 과정이 계속됩니다. 이 스테이지에서 실패하면 문제가 제거될 때까지 소스 테이블의 복제가 영구적으로 중지됩니다.

참고

연결 문제와 같은 임시 장애는 테이블 복제를 중지하지 않지만, 지원되지 않는 데이터 타입 매핑과 같은 영구 장애는 영향을 받는 테이블의 복제를 더 이상 중지하지만 구성된 다른 테이블은 변경 없이 계속 유지됩니다. 영향을 받는 테이블의 문제를 수정한 후에는 해당 테이블을 제거한 후 복제에 다시 추가할 수 있습니다.

TOASTed 값 지원

커넥터는 array, bytea, json, jsonb, text, varchar, xml 유형의 열에 대해 `TOAST 값<https://www.postgresql.org/docs/current/storage-toast.html>`_을 사용한 테이블 복제를 지원합니다.

커넥터가 CDC 스트림에서 TOASTed 값을 발견할 때마다 지정된 열 유형에 대해 형식이 지정된 기본 자리 표시자인 __previous_value_unchanged``로 대체하고 저널 테이블에 저장합니다. 그런 ``MERGE 쿼리는 자리 표시자 값을 설명하므로 대상 테이블에는 항상 TOASTed가 아닌 마지막 값이 포함됩니다.

범위를 벗어난 값 지원

커넥터는 범위를 벗어난 값을 포함하는 date, timestamptimestamptz 유형의 열이 있는 테이블의 복제를 지원합니다. 커넥터가 CDC 스트림에서 범위를 벗어난 값을 발견하면 열 유형에 따라 기본 자리 표시자를 대체합니다.

범위를 벗어난 값에 대한 자리 표시자 값

열 유형

자리 표시자 값

date

-9999-01-01 ~ 9999-12-31.

timestamp

0001-01-01 00:00:00 ~ 9999-12-31 23:59:59.999999999.

timestamptz

0001-01-01 00:00:00+00 ~ 9999-12-31 23:59:59.999999999+00.

참고

-InfinityInfinity 값도 세 가지 유형 모두에 대해 각각의 자리 표시자로 대체됩니다.

지원되는 PostgreSQL 버전

지원되는 PostgreSQL 버전은 다음과 같습니다.

지원되는 PostgreSQL 버전

11

12

13

14

15

16

17

표준

AWS RDS

Amazon Aurora

GCP 클라우드 SQL

Azure Database

Openflow 요구사항

  • 런타임 크기는 중간 이상이어야 합니다. 대용량 데이터를 복제할 때는, 특히 행 크기가 클 경우 더 큰 런타임을 사용합니다.

  • 해당 커넥터는 다중 노드 Openflow 런타임을 지원하지 않습니다. 이 커넥터의 런타임을 구성할 때 Min nodes 및 :ui:`Max nodes`를 ``1``로 설정합니다.

제한 사항

  • 커넥터는 PostgreSQL 버전 11 이상을 지원합니다.

  • 커넥터는 PostgreSQL 을 통한 사용자 이름과 비밀번호 인증만 지원합니다.

  • 이 커넥터는 파티셔닝된 테이블을 지원하지 않습니다.

  • 커넥터는 Snowflake의 유형 제한 을 초과하는 데이터가 있는 테이블은 복제하지 않습니다. 이 규칙의 예외는 범위를 벗어난 값이 포함된 날짜 및 시간 데이터 타입 열입니다. 자세한 내용은 범위를 벗어난 값 지원 섹션을 참조하세요.

  • 커넥터에는 복제된 모든 테이블에 기본 키가 있어야 하고 테이블의 복제본 ID는 기본 키와 동일해야 합니다.

  • 커넥터는 기본 키 정의 변경, 전체 자릿수 변경 또는 숫자 열의 스케일 변경을 제외한 소스 테이블 스키마 변경을 지원합니다.

참고

특정 테이블 열에 영향을 미치는 제한은 이러한 특정 열을 복제에서 제외하여 우회할 수 있습니다.

다음 단계

Openflow Connector for PostgreSQL 설정