Azure Cosmos DB for PostgreSQL의 PostgreSQL 확장
적용 대상: Azure Cosmos DB for PostgreSQL(PostgreSQL에 대한 Citus 데이터베이스 확장 기반)
PostgreSQL은 확장을 사용하여 데이터베이스의 기능을 확장합니다. 확장을 통해 관련된 여러 SQL 개체를 단일 패키지에 번들로 묶을 수 있으며 단일 명령을 사용해서 데이터베이스에서 로드하거나 제거할 수 있습니다. 데이터베이스에 로드된 확장은 기본 제공 기능처럼 작동할 수 있습니다. PostgreSQL 확장에 대한 자세한 내용은 관련 개체를 확장으로 패키지를 참조하세요.
PostgreSQL 확장 사용
PostgreSQL 확장을 사용하려면 먼저 데이터베이스에 설치해야 합니다. 특정 확장을 설치하려면 psql 도구에서 CREATE EXTENSION 명령을 실행하여 패키지 개체를 데이터베이스에 로드합니다.
참고 항목
CREATE EXTENSION
이 권한 거부 오류와 함께 실패하면 대신 create_extension()
함수를 시도합니다. 예를 들면 다음과 같습니다.
SELECT create_extension('postgis');
이 방식으로 설치된 확장을 제거하려면 drop_extension()
을 사용합니다.
Azure Cosmos DB for PostgreSQL은 현재 여기에 나열된 대로 주요 확장의 하위 집합을 지원합니다. 나열된 항목 이외의 확장은 지원되지 않습니다. Azure Cosmos DB for PostgreSQL로 사용자 고유의 확장을 만들 수 없습니다.
Azure Cosmos DB for PostgreSQL에서 지원되는 확장
다음 표에는 Azure Cosmos DB for PostgreSQL에서 지원하는 표준 PostgreSQL 확장이 나와 있습니다. 이 정보를 SELECT * FROM pg_available_extensions;
를 실행하여 얻을 수도 있습니다.
클러스터에 설치된 각 확장의 버전은 PostgreSQL의 버전(11, 12, 13, 14, 15 또는 16)에 따라 다를 수 있습니다. 표에 데이터베이스 버전별로 확장 버전이 나열되어 있습니다.
Citus 확장
내선 번호 | 설명 | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
citus | Citus 분산 데이터베이스입니다. | 9.5 | 10.2 | 11.3 | 12.1 | 12.1 | 12.1 |
데이터 형식 확장
내선 번호 | 설명 | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
citext | 대/소문자 구분 문자 문자열 형식을 제공합니다. | 1.5 | 1.6 | 1.6 | 1.6 | 1.6 | 1.6 |
cube | 다차원 큐브의 데이터 형식을 제공합니다. | 1.4 | 1.4 | 1.4 | 1.5 | 1.5 | 1.5 |
hll | HyperLogLog 데이터 구조를 제공합니다. | 2.18 | 2.18 | 2.18 | 2.18 | 2.18 | 2.18 |
hstore | 키/값 쌍 집합을 저장하기 위한 데이터 형식을 제공합니다. | 1.5 | 1.6 | 1.7 | 1.8 | 1.8 | 1.8 |
isn | 국제 제품 번호 매기기 표준에 대한 데이터 형식을 제공합니다. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
lo | LOB(Large Object) 유지 관리입니다. | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
ltree | 계층적 트리 구조에 대한 데이터 형식을 제공합니다. | 1.1 | 1.1 | 1.2 | 1.2 | 1.2 | 1.2 |
seg | 직선 세그먼트 또는 부동 소수점 간격을 나타내는 데이터 형식입니다. | 1.3 | 1.3 | 1.3 | 1.4 | 1.4 | 1.4 |
tdigest | 분위수 및 절사평균과 같은 순위 기반 통계의 온라인 누적을 위한 데이터 형식입니다. | 1.4.1 | 1.4.1 | 1.4.1 | 1.4.1 | 1.4.1 | 1.4.1 |
topn | top-n JSONB에 대한 형식입니다. | 2.6.0 | 2.6.0 | 2.6.0 | 2.6.0 | 2.6.0 | 2.6.0 |
전체 텍스트 검색 확장
내선 번호 | 설명 | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
dict_int | 정수에 대한 텍스트 검색 사전 템플릿을 제공합니다. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
dict_xsyn | 확장된 동의어 처리를 위한 텍스트 검색 사전 템플릿입니다. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
unaccent | Lexemes에서 악센트(분음 기호)를 제거하는 텍스트 검색 사전입니다. | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
함수 확장
내선 번호 | 설명 | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 15 |
---|---|---|---|---|---|---|---|
autoinc | 자동 증가 필드를 위한 함수입니다. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
earthdistance | 지구 표면의 대원 거리를 계산하는 방법을 제공합니다. | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
fuzzystrmatch | 문자열 간 유사성 및 거리를 확인하기 위한 몇 가지 함수를 제공합니다. | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.2 |
insert_username | 테이블을 변경한 사람을 추적하는 함수입니다. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
intagg | 정수 집계 및 열거자입니다(사용되지 않음). | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
intarray | null 없는 정수 배열을 조작하기 위한 함수 및 연산자를 제공합니다. | 1.2 | 1.2 | 1.3 | 1.5 | 1.5 | 1.5 |
moddatetime | 마지막 수정 시간을 추적하는 함수입니다. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
orafce | Oracle RDBMS의 함수 및 패키지 하위 집합을 에뮬레이트하는 함수 및 연산자입니다. | 4.9 | 4.9 | 4.9 | |||
pg_partman | 시간 또는 ID로 분할된 테이블을 관리합니다. | 4.7.4 | 4.7.4 | 4.7.4 | 5.1.0 | 5.1.0 | 5.1.0 |
pg_surgery | 손상된 관계에 대한 수술을 수행하는 함수. | 1.0 | 1.0 | 1.0 | |||
pg_trgm | trigram 일치를 기준으로 영숫자 텍스트의 유사성을 확인하기 위한 함수 및 연산자를 제공합니다. | 1.4 | 1.4 | 1.5 | 1.6 | 1.6 | 1.6 |
pgcrypto | 암호화 함수를 제공합니다. | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 |
refint | 참조 무결성을 구현하는 함수입니다(사용되지 않음). | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
tablefunc | 크로스탭을 비롯하여 전체 테이블을 조작하는 함수를 제공합니다. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
tcn | 트리거된 변경 알림입니다. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
timetravel | 시간 이동 구현을 위한 함수입니다. | 1.0 | |||||
uuid-ossp | UUID(범용 고유 식별자)를 생성합니다. | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
인덱스 형식 확장
내선 번호 | 설명 | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
bloom | 블룸 액세스 메서드 - 서명 파일 기반 인덱스입니다. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
btree_gin | 특정 데이터 형식에 대해 B-트리 유사 동작을 구현하는 샘플 GIN 연산자 클래스를 제공합니다. | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 |
btree_gist | B-트리를 구현하는 GiST 인덱스 연산자 클래스를 제공합니다. | 1.5 | 1.5 | 1.5 | 1.6 | 1.7 | 1.7 |
언어 확장
내선 번호 | 설명 | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
plpgsql | PL/pgSQL 로드 가능 절차 언어. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
기타 확장
내선 번호 | 설명 | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
amcheck | 관계 무결성을 확인하는 함수입니다. | 1.1 | 1.2 | 1.2 | 1.3 | 1.3 | 1.3 |
dblink | 데이터베이스 세션 내에서 다른 PostgreSQL 데이터베이스로의 연결을 지원하는 모듈입니다. 이 확장에 대한 정보는 "dblink 및 postgres_fdw" 섹션을 참조하세요. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
old_snapshot | old_snapshot_threshold를 구현하는 데 사용되는 서버 상태를 검사할 수 있습니다. | 1.0 | 1.0 | 1.0 | |||
pageinspect | 낮은 수준에서 데이터베이스 페이지의 콘텐츠를 검사합니다. | 1.7 | 1.7 | 1.8 | 1.9 | 1.11 | 1.12 |
pg_azure_storage | PostgreSQL에 대한 Azure 통합. | 1.3 | 1.3 | 1.3 | 1.3 | ||
pg_buffercache | 공유 버퍼 캐시에서 일어나는 작업을 실시간으로 검사하기 위한 수단을 제공합니다. | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 | 1.4 |
pg_cron | PostgreSQL용 작업 스케줄러입니다. | 1.5 | 1.6 | 1.6 | 1.6 | 1.6 | 1.6 |
pg_freespacemap | FSM(사용 가능한 공간 맵)을 검사합니다. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
pg_prewarm | 관계 데이터를 버퍼 캐시에 로드하는 방법을 제공합니다. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
pg_stat_statements | 서버에서 실행되는 모든 SQL 문의 실행 통계를 추적하는 수단을 제공합니다. 이 확장에 대한 정보는 "pg_stat_statements" 섹션을 참조하세요. | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 | 1.10 |
pg_visibility | VM(표시 유형 맵) 및 페이지 수준 표시 유형 정보를 검사합니다. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
pgrowlocks | 행 수준 잠금 정보를 표시하는 방법을 제공합니다. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
pgstattuple | 튜플 수준 통계를 표시하는 방법을 제공합니다. | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 |
postgres_fdw | 외부 PostgreSQL 서버에 저장된 데이터에 액세스하는 데 사용되는 외부 데이터 래퍼입니다. 이 확장에 대한 정보는 "dblink 및 postgres_fdw" 섹션을 참조하세요. | 1.0 | 1.0 | 1.0 | 1.1 | 1.1 | 1.1 |
sslinfo | TLS/SSL 인증서에 대한 정보입니다. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
tsm_system_rows | 행 수를 제한값으로 사용하는 TABLESAMPLE 메서드입니다. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
tsm_system_time | 밀리초 단위의 시간을 제한값으로 사용하는 TABLESAMPLE 메서드입니다. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
xml2 | XPath 쿼리 및 XSLT입니다. | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
Pgvector 확장
내선 번호 | 설명 | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
pgvector | Postgres에 대한 오픈 소스 벡터 유사성 검색 | 0.5.1 | 0.7.0 | 0.7.0 | 0.7.0 | 0.7.0 | 0.7.0 |
PostGIS 확장
내선 번호 | 설명 | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
PostGIS | PostgreSQL에 대한 공간 및 지리적 개체입니다. | 3.3.4 | 3.4.1 | 3.4.1 | 3.4.1 | 3.4.1 | 3.4.1 |
address_standardizer | 주소를 구성 요소로 구문 분석하는 데 사용됩니다. 지오코딩 주소 정규화 단계를 지원하는 데 사용됩니다. | 3.3.4 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 |
postgis_sfcgal | PostGIS SFCGAL 함수입니다. | 3.3.4 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 |
postgis_topology | PostGIS는 토폴로지 공간 유형 및 함수입니다. | 3.3.4 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 |
pg_stat_statements
pg_stat_statements 확장은 모든 Azure Cosmos DB for PostgreSQL 클러스터에 미리 로드되어 SQL 문의 실행 통계를 추적하는 수단을 제공합니다.
pg_stat_statements.track
설정은 확장에서 계산되는 문을 제어합니다. 기본적으로 top
으로 설정되는데 이는 클라이언트에서 직접 실행한 모든 문이 추적되는 것을 의미합니다. 다른 두 가지 추적 수준은 none
과 all
입니다.
pg_stat_statements를 통해 제공되는 쿼리 실행 정보와 각 SQL 문을 기록할 때 서버 성능에 미치는 영향 사이에는 상충 관계가 있습니다. pg_stat_statements 확장을 적극적으로 사용하지 않는 경우에는 pg_stat_statements.track
을 none
으로 설정하는 것이 좋습니다. 일부 타사 모니터링 서비스가 pg_stat_statements에 기반하여 쿼리 성능 인사이트를 제공할 수 있으므로 여기에 해당하는 경우인지 여부를 확인합니다.
dblink 및 postgres_fdw
dblink 및 postgres_fdw를 사용하여 한 PostgreSQL 서버에서 다른 PostgreSQL 서버로 또는 동일한 서버의 다른 데이터베이스로 연결할 수 있습니다. 받는 서버는 해당 방화벽을 통한 보내는 서버의 연결을 허용해야 합니다. 이 확장을 사용하여 공용 액세스가 있는 Azure Cosmos DB for PostgreSQL 클러스터 간에 연결하려면 Azure 서비스 및 리소스가 이 클러스터(또는 서버)에 액세스하도록 허용을 켜기로 설정합니다. 또한 확장을 사용하여 동일한 서버로 루프백하려는 경우 이 설정을 켜야 합니다. Azure 서비스 및 리소스가 이 클러스터에 액세스하도록 허용 설정은 클러스터에 대한 Azure Portal 페이지의 네트워킹 아래에서 찾을 수 있습니다. 현재 Azure Cosmos DB for PostgreSQL의 아웃바운드 연결은 지원되지 않습니다.
orafce 확장
utl_file 함수는 orafce 확장에서 사용하지 않도록 설정됩니다.
다음 단계
- 지원되는 PostgreSQL 버전에 대해 알아봅니다.