다음을 통해 공유


Azure Database for PostgreSQL 유연한 서버의 탄력적 클러스터에 대한 테이블 형식(미리 보기)

적용 대상: Azure Database for PostgreSQL - 유연한 서버

클러스터에는 각각 노드에 다르게 저장되고 다른 용도로 사용되는 세 가지 유형의 테이블이 있습니다.

분산 테이블

가장 일반적인 첫 번째 유형은 분산 테이블입니다. 이러한 테이블은 SQL 문에 대한 일반 테이블처럼 보이지만 작업자 노드 간에 수평 분할됩니다. 즉, 테이블의 행은 분할된 데이터베이스라는 조각 테이블에 서로 다른 노드에 저장됩니다.

탄력적 클러스터는 SQL뿐만 아니라 클러스터 전체에서 DDL(데이터 정의 언어) 문을 실행합니다. 분산 테이블의 스키마를 변경하면 작업자 간에 테이블의 모든 분할된 데이터베이스를 연속으로 업데이트합니다. 이러한 작업은 포트 5432를 통한 연결을 통해 수행해야 합니다.

분산 열

탄력적 클러스터는 알고리즘 분할을 사용하여 분할된 데이터베이스에 행을 할당합니다. 할당은 배포 열이라는 테이블 열의 값에 따라 명확하게 결정됩니다. 클러스터 관리자는 테이블을 배포할 때 이 열을 지정해야 합니다. 성능 및 기능을 위해 적절한 선택이 중요합니다.

참조 테이블

참조 테이블은 전체 내용이 단일 분할된 데이터베이스로 집중되는 분산 테이블 유형입니다. 분할된 데이터베이스가 모든 작업자에 복제됩니다. 모든 작업자에 대한 쿼리는 다른 노드에서 행을 요청하는 네트워크 오버헤드 없이 참조 정보에 로컬로 액세스할 수 있습니다. 참조 테이블에는 행마다 개별 분할된 데이터베이스를 구분할 필요가 없으므로 배포 열이 없습니다.

참조 테이블은 일반적으로 작지만 모든 작업자 노드에서 실행되는 쿼리와 관련된 데이터를 저장하는 데 사용됩니다. 주문 상태 또는 제품 범주와 같은 열거형 값을 예로 들 수 있습니다.

로컬 테이블

탄력적 클러스터를 사용하는 경우 각 노드는 일반 PostgreSQL 데이터베이스입니다. 일반 테이블을 만들고 분할하지 않도록 선택할 수 있습니다.

로컬 테이블에 적합한 후보는 조인 쿼리에 참여하지 않는 작은 관리 테이블입니다. 예를 들어, 애플리케이션 로그인 및 인증을 위한 users 테이블이 있습니다. 이 유형의 테이블은 포트 7432 또는 8432를 사용하여 탄력적 클러스터 간에 연결 부하를 분산할 계획이 없는 경우에만 유용합니다.

로컬 관리 테이블

탄력적 클러스터는 로컬 테이블과 참조 테이블 사이에 외래 키 참조가 있는 경우 메타데이터에 로컬 테이블을 자동으로 추가할 수 있습니다. 또한 일반 로컬 테이블에서 citus_add_local_table_to_metadata 함수를 실행하여 로컬로 관리되는 테이블을 수동으로 만들 수 있습니다. 메타데이터에 있는 테이블은 관리되는 테이블로 간주되며 모든 노드에서 쿼리할 수 있습니다. Citus는 로컬 관리 테이블에서 데이터를 가져오기 위해 노드로 라우팅하는 것을 알고 있습니다. 이러한 테이블은 보기에서 citus_tables 로컬로 표시됩니다.

스키마 테이블

스키마 기반 분할을 사용하면 분산 스키마가 개별 공동 배치 그룹과 자동으로 연결됩니다. 해당 스키마에서 만들어진 테이블은 분할 키 없이 공동 배치된 분산 테이블로 자동으로 변환됩니다. 이러한 테이블은 스키마 테이블로 간주되며 보기에 citus_tables 스키마로 표시됩니다.