소스 PostgreSQL 데이터베이스

이 섹션에는 다음에 대한 정보가 포함되어 있습니다.

  • Datastream이 소스 PostgreSQL 데이터베이스에서 가져오는 데이터를 처리하는 동작
  • Datastream에서 지원하는 PostgreSQL 데이터베이스 버전
  • 데이터를 대상으로 스트리밍할 수 있도록 소스 PostgreSQL 데이터베이스를 설정하는 방법의 개요
  • PostgreSQL 데이터베이스를 소스로 사용할 경우의 알려진 제한사항

동작

소스 PostgreSQL 데이터베이스는 논리적 디코딩 기능을 사용합니다. 논리적 디코딩은 데이터베이스에 커밋된 모든 변경사항을 노출하고 출력 플러그인을 사용하여 이러한 변경사항을 사용자 친화적인 형식으로 사용하고 처리할 수 있게 해줍니다. Datastream은 PostgreSQL 10 이상용 표준 PostgreSQL 논리적 디코딩 플러그인인 pgoutput 플러그인을 사용합니다.

  • 특정 PostgreSQL 소스의 모든 스키마 또는 특정 스키마와 스키마의 모든 테이블 또는 특정 테이블을 선택할 수 있습니다.
  • 모든 이전 데이터가 복제됩니다.
  • 지정된 데이터베이스 및 테이블의 삽입, 업데이트, 삭제와 같은 모든 데이터 조작 언어(DML) 변경사항이 복제됩니다.
  • 커밋된 변경사항만 복제됩니다.
  • 테이블에 복제본 ID를 정의하면 Datastream이 지정된 열을 기본 키로 취급합니다.

버전

Datastream은 PostgreSQL 버전 10 이상을 지원합니다.

Datastream은 다음 유형의 PostgreSQL 데이터베이스를 지원합니다.

  • 자체 호스팅 PostgreSQL
  • PostgreSQL용 Cloud SQL
  • PostgreSQL용 AlloyDB
  • AlloyDB Omni
  • PostgreSQL용 Amazon RDS
  • Amazon Aurora PostgreSQL

알려진 제한사항

PostgreSQL 데이터베이스를 소스로 사용하여 Datastream을 사용할 때의 알려진 제한사항은 다음과 같습니다.

  • 스트림이 테이블 10,000개로 제한됩니다.
  • 행 개수가 5억 개를 초과하는 테이블은 다음 조건이 충족되지 않는 한 백필할 수 없습니다.
    1. 테이블에 고유한 B-tree 색인이 있습니다.
    2. 색인에 DOUBLE, FLOAT, MONEY, REAL, JSON, JSONB, BYTEA, TXID, XML 유형 또는 기하학적 데이터 유형의 열이 포함되어 있지 않습니다.
    3. 색인의 열 중에 null이 허용되는 열이 없습니다.
    4. 색인의 모든 열이 오름차순으로 정렬되거나 색인의 모든 열이 내림차순으로 정렬됩니다.
    5. 색인의 모든 열이 스트림에 포함됩니다.
  • 기본 키가 없는 테이블에는 복제본 ID가 있어야 합니다. 그렇지 않으면 INSERT 이벤트만 대상에 복제됩니다.
  • PostgreSQL은 읽기 복제본에서 논리적 디코딩을 지원하지 않으므로 Datastream이 읽기 복제본 인스턴스에서 복제할 수 없습니다.
  • 소스 스키마에 대한 모든 변경사항이 올바르게 검색되지 않아서 데이터 손상이 발생할 수 있습니다. 다음 스키마 변경으로 인해 데이터가 손상되거나 이벤트 다운스트림을 처리하지 못할 수 있습니다.
    • 열 삭제
    • 테이블 중간에 열 추가
    • 열의 데이터 유형 변경:
    • 열 재정렬
    • 테이블 삭제(새 데이터를 추가한 후 같은 테이블을 다시 만드는 경우에 해당)
  • Datastream은 geometric 데이터 유형의 열을 지원하지 않습니다.
  • Datastream은 range 데이터 유형의 열을 지원하지 않습니다.
  • Datastream은 지원되지 않는 데이터 유형의 배열, 사용자 정의 데이터 유형의 배열(ENUM 포함)이나 DATE, TIMESTAMP 또는 TIMESTAMP WITH TIME ZONE 데이터 유형의 배열을 지원하지 않습니다. 이러한 열은 무시됩니다.
  • Datastream은 테이블의 복제본 ID에 포함된 열에 TOAST 값을 포함하는 행에 대해 UPDATE 이벤트 복제를 지원하지 않습니다. 이러한 이벤트는 삭제됩니다.
  • Datastream은 2,950개를 초과하는 중첩된 객체와 JSON 또는 JSONB 값을 포함하는 행의 복제를 지원하지 않습니다. JSON 또는 JSONB 값이 포함된 이벤트는 대상 데이터베이스에 복제되지 않습니다.
  • Datastream은 NUMERIC (precision, scale) 열에 NaN 값이 포함된 행의 복제를 지원하지 않습니다. 이러한 열의 값은 NULL 값으로 바뀝니다.
  • Datastream은 hstore 데이터 유형의 열 복제를 지원하지 않습니다. 이러한 열의 값은 NULL 값으로 바뀝니다.
  • DataStream은 클라이언트 인증서가 필요한 SSL/TLS 연결을 지원하지 않습니다.
  • Datastream은 SQL_ASCII로 인코딩된 소스 데이터베이스에서 비ASCII 레코드 복제를 지원하지 않습니다. 이러한 레코드는 삭제됩니다.
  • Datastream은 행 수준 보안(RLS) 정책이 정의된 테이블의 복제를 지원하지 않습니다. 이 제한을 우회하는 방법에 대한 자세한 내용은 PostgreSQL 소스 동작 및 제한사항을 참조하세요.
  • DataStream은 생성된 열의 변경사항을 캡처하지 않습니다.