Snowflake Connector for PostgreSQL 특성¶
버전 지원¶
Snowflake Connector for PostgreSQL 은 공식적으로 지원되는 모든 PostgreSQL 버전을 지원합니다. 고객이 최신 버전으로 이동하면 Snowflake는 이전 버전에 대한 지원을 중단합니다. Snowflake는 출시되는 대로 새 버전에 대한 지원을 발표합니다.
커넥터는 여러 가지 PostgreSQL 클라우드 버전을 지원하지만 일부 버전은 추가 설정이 필요합니다. 자세한 내용은 Snowflake Connector for PostgreSQL 데이터 원본의 전제 조건 섹션을 참조하십시오.
지원되는 PostgresSQL 버전은 다음과 같습니다.
11 |
12 |
13 |
14 |
15 |
16 |
17 |
|
---|---|---|---|---|---|---|---|
예 |
예 |
예 |
예 |
예 |
예 |
예 |
|
예 |
예 |
예 |
예 |
예 |
예 |
예 |
|
예 |
예 |
예 |
예 |
예 |
예 |
||
예 |
예 |
예 |
예 |
예 |
예 |
||
예 |
예 |
예 |
예 |
예 |
예 |
서버 설정¶
필요에 따라 PostgreSQL 서버에서 다음 설정을 검토하고 조정합니다.
|
커넥터는 기본 키를 사용하여 변경 내용을 대상 테이블에 병합합니다. 다음 설정은 WAL (Write-Ahead Log) 레코드에 기본 키 정보를 포함하도록 합니다. |
|
데이터베이스 에이전트에서 이 데이터베이스에 대한 모든 데이터 원본 구성 항목에 대해 1을 추가합니다. |
|
데이터베이스 에이전트에서 이 데이터베이스에 대한 모든 데이터 원본 구성 항목에 대해 1을 추가합니다. |
|
데이터베이스 에이전트에서 이 데이터베이스에 대한 모든 데이터 원본 구성 항목에 대해 1을 추가합니다. |
게시¶
커넥터는 복제를 위해 테이블에 액세스하려면 PostgreSQL 게시 가 필요합니다.
데이터베이스 에이전트는 데이터 원본당 정확히 하나의 게시를 지원합니다. 단일 PostgreSQL 서버에서 여러 게시를 사용해야 하는 경우 해당 서버를 각각 별도의 데이터 원본으로 여러 번 구성할 수 있으며, 각각 고유한 게시가 있습니다.
게시에는
INSERT
,UPDATE
,DELETE
,TRUNCATE
를 포함하여 데이터에 대한 모든 변경 사항이 포함되어야 합니다.ALL TABLES
또는 테이블의 하위 세트에 대해 게시를 설정할 수 있지만 성능을 최적화하려면 복제해야 하는 테이블만 추가하십시오. 커넥터는 게시에 포함된 테이블의 변경 사항만 수신합니다.테이블은 모든 열 또는 열의 하위 세트와 함께 게시에 추가할 수 있습니다. 열의 하위 세트로 추가하는 경우 ADD_TABLE_WITH_COLUMNS 프로시저 를 사용합니다.
경고
열의 하위 세트로 테이블을 게시에 추가한 다음 ADD_TABLES 프로시저를 사용하여 복제를 사용하도록 설정하면 게시에 없는 열은 대상 테이블에서 삭제된 것으로 표시됩니다. 나중에 게시에 열을 추가하면 테이블이 영구적으로 실패한 것으로 표시됩니다.
게서 구성에 대한 자세한 내용은 게시물 구성하기 섹션을 참조하십시오.
복제 슬롯¶
데이터 및 스키마 변경 사항을 복제하기 위해 커넥터는 복제 슬롯 을 생성합니다. 슬롯은 지정된 데이터 원본의 첫 번째 테이블이 복제에 추가될 때 생성되며, 해당 데이터 원본의 모든 테이블에 사용됩니다.
슬롯의 이름은 sf_db_conn_rs_kbmd_<data-source-name>
으로 구조화되며, 여기서 <data-source-name>
은 데이터베이스 에이전트의 구성에서 데이터 원본의 식별자입니다.
동일한 데이터베이스에 여러 번 연결하도록 데이터베이스 에이전트를 구성하는 경우, 여러 데이터 원본을 추가하여 커넥터가 여러 개의 복제 슬롯을 만듭니다.
동일한 PostgreSQL 서버에 연결하도록 여러 데이터베이스 에이전트를 구성하는 경우 각 데이터베이스 에이전트에 고유한 데이터 원본 이름을 제공해야 합니다.
조심
데이터베이스 에이전트는 사용하지 않는 복제 슬롯을 제거하지 않습니다. PostgreSQL 인스턴스에서 데이터베이스 에이전트의 연결을 끊거나 복제에서 모든 테이블을 제거하면 WAL 트리밍을 보류하지 않도록 복제 슬롯도 수동으로 제거해야 합니다.
WAL 성장 및 복제 슬롯 위치¶
복제 슬롯이 생성되면 커넥터가 해당 위치를 확인하고 전진할 때까지 PostgreSQL 은 복제 슬롯이 보유한 위치의 WAL 데이터를 유지하게 됩니다. 커넥터는 레코드가 아직 대상 테이블에 병합되지 않았더라도 저널 테이블에 레코드가 저장된 후 주기적으로 위치를 확인합니다.
연속 모드 에서는 커넥터가 매분마다 위치를 확인합니다.
예약 모드 에서 커넥터는 구성된 일정에 따라 위치를 확인합니다. 예약이 길어지면 WAL 이 더 커지게 됩니다.
PostgreSQL 서버에 WAL 을 위한 충분한 디스크 공간이 있는지 확인해야 합니다. WAL 이 계속 증가하는 것을 감지하면 다음을 확인하십시오.
데이터베이스 에이전트가 연결되어 있고 커넥터가 데이터를 활발하게 복제하고 있나요? 그렇지 않은 경우 복제 슬롯이 진행 중이 아니며 WAL 트리밍을 차단합니다.
복제가 복제된 테이블의 데이터 변경 사항을 따라잡고 있나요? 그렇지 않은 경우, 즉 원본의 데이터 변경과 Snowflake 대상 테이블에 표시되는 것 사이의 지연이 계속 증가한다면 복제 슬롯이 너무 느리게 진행되고 있는 것입니다. 복제에서 일부 테이블을 제거하거나 컴퓨팅 웨어하우스 크기를 늘려야 합니다.
PostgreSQL 의 max_wal_size
설정은 복제 슬롯이 진행되지 않아 발생하는 경우 WAL 성장에 영향을 미치지 않습니다.
팁
중요한 상황에서는 커넥터가 사용하는 복제 슬롯을 수동으로 제거할 수 있습니다. 이렇게 하면 커넥터에서 실행 중인 복제가 중단되지만 PostgreSQL 을 활성화하여 WAL 을 트리밍하고 디스크 공간을 확보할 수 있습니다.
기본 키 및 테이블 복제본 ID¶
커넥터는 기본 키를 사용하여 변경 내용을 대상 테이블에 병합합니다. 그 결과:
복제를 사용하도록 설정된 모든 테이블에는 기본 키가 있어야 합니다. 키는 단일 열 또는 복합 열일 수 있습니다.
또한 테이블은 REPLICA IDENTITY 를
DEFAULT
로 설정해야 합니다. 이렇게 하면 기본 키가 WAL 에 표시되고 커넥터가 이를 읽을 수 있습니다.
에이전트 인증¶
현재 지원되는 인증 방법은 사용자 이름과 비밀번호뿐입니다. 데이터베이스 에이전트 구성의 모든 데이터 원본 항목에는 고유한 자격 증명 세트가 포함되며, 이러한 자격 증명은 데이터 원본마다 다를 수 있습니다.
데이터베이스 에이전트의 사용자에게는 REPLICATION
특성이 있는 역할이 있어야 하며, 전자를 적용할 수 없는 경우에는 SUPERUSER
를 사용해야 합니다.
데이터베이스 에이전트에 대한 사용자를 생성하는 방법에 대한 지침은 필수 사용자 생성하기 섹션을 참조하십시오.
원본 데이터베이스에 대한 데이터베이스 에이전트의 액세스 보안에 대한 자세한 내용은 PostgreSQL 설명서 를 참조하십시오.