중요합니다
Lakeflow Connect용 PostgreSQL 커넥터는 공개 미리 보기로 제공됩니다. 공개 미리 보기에 등록하려면 Databricks 계정 팀에 문의하세요.
이 페이지에는 Databricks Lakeflow Connect를 사용한 PostgreSQL 수집에 대한 제한 사항 및 고려 사항이 나열되어 있습니다.
일반 데이터베이스 커넥터 제한 사항
이 섹션의 제한 사항은 Lakeflow Connect의 모든 데이터베이스 커넥터에 적용됩니다. 커넥터 관련 제한 사항을 계속 읽어 보세요.
- 예약된 파이프라인을 실행하면 경고가 즉시 트리거되지 않습니다. 대신 다음 업데이트가 실행되면 트리거됩니다.
- 원본 테이블이 삭제되면 대상 테이블이 자동으로 삭제되지 않습니다. 대상 테이블을 수동으로 삭제해야 합니다. 이 동작은 Lakeflow Spark 선언적 파이프라인 동작과 일치하지 않습니다.
- 원본 유지 관리 기간 동안 Databricks가 데이터에 액세스하지 못할 수 있습니다.
- 원본 테이블 이름이 기존 대상 테이블 이름과 충돌하는 경우 파이프라인 업데이트가 실패합니다.
- 다중 목적지 파이프라인 지원은 API 전용입니다.
- 옵션으로 수집하는 테이블의 이름을 변경할 수 있습니다. 파이프라인에서 테이블의 이름을 변경하면, 해당 파이프라인은 API 전용 파이프라인이 되며 UI에서 더 이상 파이프라인을 편집할 수 없습니다.
- 파이프라인이 이미 시작된 후에 열을 선택하면, 커넥터는 새 열에 대한 데이터를 자동으로 백필하지 않습니다. 역사적 데이터를 수집하려면 테이블에서 전체 새로 고침을 수동으로 실행하세요.
- Databricks는 다른 원본 스키마에서 온 경우에도 동일한 파이프라인에서 동일한 이름의 테이블을 둘 이상 수집할 수 없습니다.
- 원본 시스템은 커서 열이 단조로 증가한다고 가정합니다.
- 관리되는 수집 파이프라인은 Azure GovCloud 지역의 작업 영역에 대해 지원되지 않습니다.
- SCD 유형 1을 사용하도록 설정하면 삭제는 변경 데이터 피드에서 명시적
delete이벤트를 생성하지 않습니다. 감사 가능한 삭제의 경우 커넥터에서 지원하는 경우 SCD 형식 2를 사용합니다. 자세한 내용은 예제: CDF 원본 데이터를 사용한 SCD 형식 1 및 SCD 형식 2 처리를 참조하세요. - 커넥터는 변환 없이 원시 데이터를 수집합니다. 변환을 위해 Lakeflow Spark의 다운스트림 선언적 파이프라인을 사용합니다.
- 커넥터는 기본 PostgreSQL 인스턴스에서만 복제를 지원합니다.
Authentication
- 커넥터는 사용자 이름 및 암호 인증만 지원합니다.
데이터베이스 변형
- 커넥터는 PostgreSQL 13 이상을 지원합니다.
- 커넥터는 AWS RDS PostgreSQL, Aurora PostgreSQL, Amazon EC2, Azure Database for PostgreSQL, Azure Virtual Machines 및 GCP Cloud SQL for PostgreSQL을 지원합니다. 또한 커넥터는 Azure ExpressRoute, AWS Direct Connect 및 VPN 네트워킹을 사용하여 온-프레미스 PostgreSQL을 지원합니다.
파이프라인
- 각 수집 파이프라인은 정확히 하나의 수집 게이트웨이와 연결되어야 합니다.
- 수집 파이프라인은 서버리스 컴퓨팅에서 실행되지만 수집 게이트웨이는 클래식 컴퓨팅에서 실행되어야 합니다.
- 수집 게이트웨이는 Write-Ahead Log(WAL) bloat 및 복제 슬롯 누적을 방지하기 위해 지속 모드로 실행되어야 합니다.
복제
- 논리 복제를 수행하려면 PostgreSQL 13 이상이 필요하며,
wal_level매개 변수를logical로 설정해야 합니다.
- 복제하는 각 테이블에는 복제본 ID가
FULL또는DEFAULT로 설정되어야 합니다. Databricks는 기본 키가 없거나 TOASTable 열이 있는 테이블에 '복제본 ID'를 사용하는 것이 좋습니다. - 파이프라인을 삭제하면 복제 슬롯이 자동으로 제거되지 않습니다. WAL 누적을 방지하려면 복제 슬롯을 수동으로 정리해야 합니다. 복제 슬롯 정리를 참조하세요.
스키마 진화
커넥터는 새 열과 삭제된 열을 자동으로 처리합니다.
- 원본에 새 열이 나타나면 Databricks는 다음 파이프라인 실행 시 자동으로 수집합니다.
- 열이 원본에서 삭제되면 Databricks는 열을 자동으로 삭제하지 않습니다. 대신 커넥터는 테이블 속성을 사용하여 삭제된 열을
inactive대상에 설정합니다. 나중에inactive열과 이름이 충돌하는 다른 열이 나타나면, 파이프라인이 실패합니다. 이 경우 테이블을 완전히 새로 고치거나 비활성 열을 수동으로 삭제합니다.
커넥터는 아래에 언급된 DDL(예: 열 이름 바꾸기)을 처리할 수 있지만 대상 테이블을 완전히 새로 고쳐야 합니다.
DDL의 전체 새로 고침 필요
- 열의 데이터 형식 변경
- 열 이름 바꾸기
- 테이블의 기본 키 변경
- 테이블을 기록되지 않음에서 로깅됨으로 또는 그 반대로 변환
- 파티션 추가 또는 제거(분할된 테이블의 경우)
Staging
스테이징 카탈로그는 외부 카탈로그일 수 없습니다.
Tables
- Databricks는 파이프라인당 250개 이하의 테이블을 수집하여 처리하는 것이 권장됩니다. 그러나 이러한 테이블 내에서 지원되는 행 또는 열의 수는 제한되지 않습니다.
- Databricks는 이름이 대소문자만 다른 두 개의 테이블 (예:
mytable와MyTable)을 하나의 파이프라인으로 가져올 수 없습니다. 이러한 경우를 지원하려면 서로 다른 대상 스키마에 게시하는 두 개의 게이트웨이 수집 파이프라인 쌍을 만듭니다. -
source_catalog,source_schema및source_table이름은 데이터베이스 이름에 대/소문자를 구분하지만 스키마 및 테이블 이름에 대해 대/소문자를 구분하지 않습니다(PostgreSQL 기본 동작 다음). 예를 들어, 원본 데이터베이스가MyDatabase라는 이름일 경우,MyDatabase에서ingestion_definition으로 지정해야 합니다. - 하나의 파이프라인에서 여러 원본 데이터베이스 또는 스키마에서 수집할 수 있지만 동일한 이름의 두 테이블을 수집할 수는 없습니다. 예를 들어 동일한 파이프라인에서
schema1.orders와schema2.orders를 둘 다 처리할 수 없습니다. -
objects의 필드에ingestion_definition여러 테이블 또는 스키마 사양을 포함할 수 있습니다. 그러나 다른 원본 스키마의 원본 테이블 이름은 겹칠 수 없습니다. 이름이 겹치면 수집 파이프라인 오류가 발생합니다.
데이터 형식
- 사용자 정의 형식 및 타사 확장 형식은 문자열로 수집됩니다.
-
TIME및TIMETZ데이터 형식은 문자열로 수집됩니다. - 자동 데이터 변환 테이블에 나열되지 않은 PostgreSQL 기본 제공 데이터 형식은 문자열로 수집됩니다.
- 숫자 데이터 형식의 경우: NaN이 null로 변환됩니다.
- 날짜 및 타임스탬프의 경우: 9999AD 이후의 BC 날짜 또는 날짜는 지원되지 않습니다.
- 무한대는 날짜, 타임스탬프 또는 간격에 대해 지원되지 않습니다.
분할된 테이블
- PostgreSQL 분할 테이블이 지원됩니다.
- 각 파티션은 복제를 위해 별도의 테이블로 처리됩니다.
- 파티션을 추가하거나 제거하려면 테이블을 완전히 새로 고쳐야 합니다.
특정 PostgreSQL 변형에 대한 제한 사항
아마존 RDS 및 오로라
- 매개 변수를
rds.logical_replication에1로 설정해야 합니다.
PostgreSQL용 Azure 데이터베이스
- 서버 매개 변수에서 논리 복제를 사용하도록 설정해야 합니다.
- 단일 서버 배포의 경우 논리 복제는 범용 및 메모리 최적화 계층에서만 사용할 수 있습니다.
- 유연한 서버 배포의 경우 모든 계층에서 논리 복제가 지원됩니다.
- m
ax_wal_slot_keep_size parameter은 읽기 전용이며, -1(무한)에 고정되어 있으며 구성할 수 없습니다.
PostgreSQL용 Google Cloud SQL
- 플래그를
cloudsql.logical_decoding사용하도록 설정해야 합니다. - 클라우드 SQL은 max_wal_slot_keep_size 구성할 수 없습니다. 기본적으로 -1(무한)로 고정됩니다.