SQL 객체를 패키지에 번들로 포함하고 이를 하나의 단위로 사용해서 PostgreSQL을 확장할 수 있습니다. 이 페이지에는 Cloud SQL에서 지원하는 PostgreSQL 확장 프로그램 구성에 대한 정보가 포함되어 있습니다.
PostgreSQL 확장 프로그램 사용
Cloud SQL에서 지원하는 확장 프로그램만 설치할 수 있습니다. 자세한 내용은 Cloud SQL에서 지원하는 PostgreSQL 확장 프로그램을 참조하세요.
확장 프로그램 설치
확장 프로그램을 사용하려면 설치해야 합니다.
- psql 도구에서 CREATE EXTENSION 명령어를 실행합니다.
수퍼유저 권한 요구사항
Cloud SQL에서는 cloudsqlsuperuser
역할에 속하는 사용자만 확장 프로그램을 만들 수 있습니다. 새 PostgreSQL 인스턴스를 만들 때 기본 postgres
사용자가 자동으로 생성됩니다(단, 사용자의 비밀번호는 설정해야 함). 기본 postgres
사용자는 cloudsqlsuperuser
역할의 일부입니다. 자세한 내용은 PostgreSQL 사용자 정보를 참조하세요.
데이터베이스 간 연결
연결 대상 인스턴스는 연결 인스턴스와 동일한 VPC 네트워크에 있어야 합니다.
클러스터 인스턴스의 경우 Google Cloud 콘솔에서 신뢰할 수 있는 클라이언트 인증서 필요 옵션을 선택할 수 없습니다.
또한 동일한 인스턴스 내 데이터베이스에 연결하기 위해 호스트를 localhost 또는 127.0.0.1
로 설정할 수 없습니다. 대신 Google Cloud 콘솔에서 인스턴스에 표시된 IP 주소를 사용해야 합니다.
새 확장 프로그램 지원 요청
Cloud SQL에서는 자체 확장 프로그램을 만들 수 없습니다.
확장 프로그램에 대한 지원을 요청하려면 진행 중인 문제에서 +1을 클릭하거나 새 문제를 만듭니다. 미해결된 Cloud SQL 문제 목록 및 새 문제 만들기에 대한 정보는 제품별로 문제 및 기능 요청 검색 또는 만들기를 참조하세요.
Cloud SQL에서 지원하는 PostgreSQL 확장 프로그램
특정 확장 프로그램 사용에 대한 자세한 내용은 아래 표 중 하나의 문서 링크를 참조하세요.
PostgreSQL 확장 프로그램에 대한 Cloud SQL 지원은 다음 카테고리로 분류할 수 있습니다.
PostGIS
PostGIS 확장 프로그램은 모든 주 버전의 PostgreSQL용 Cloud SQL에서 지원됩니다.
다음 표에는 PostgreSQL용 Cloud SQL 버전별 PostGIS 확장 프로그램 버전이 나열되어 있습니다.
PostgreSQL용 Cloud SQL 버전 | PostGIS 확장 프로그램 |
PostgreSQL 9.6 | 3.2.5 |
PostgreSQL 10 | 3.2.5 |
PostgreSQL 11 | 3.2.5 |
PostgreSQL 12 | 3.2.5 |
PostgreSQL 13 | 3.4.0 |
PostgreSQL 14 | 3.4.0 |
PostgreSQL 15 | 3.4.0 |
PostgreSQL 16 | 3.4.0 |
특정 PostgreSQL 주 버전의 경우 CREATE EXTENSION 명령어에서 VERSION
절을 사용하여 PostGIS 확장 프로그램 버전을 지정할 수 있습니다.
PostGIS 확장 프로그램에는 다음이 포함됩니다.
postgis
postgis_raster
postgis_sfcgal
postgis_tiger_geocoder
postgis_topology
address_standardizer
address_standardizer_data_us
자세한 내용은 PostGIS 설치를 참조하세요.
또한 PostgreSQL용 Cloud SQL에는 PostGIS를 확장하는 pgRouting 확장 프로그램 버전 3.3.0이 포함됩니다. pgRouting 확장 프로그램은 네트워크 라우팅 및 분석을 통해 지리정보 처리를 향상합니다.
PostGIS 및 관련 확장 프로그램을 최신 버전으로 수동 업그레이드할 수 있습니다. PostGIS 확장 프로그램 업그레이드에 대한 자세한 내용은 PostGIS 업그레이드를 참조하세요.
데이터 유형 확장 프로그램
확장 프로그램 | 설명 |
btree_gin | B-tree와 동등한 동작을 구현하는 샘플 GIN 연산자 클래스를 제공합니다.
PostgreSQL 9.6용 Cloud SQL은 버전 1.0을 사용합니다. PostgreSQL 10은 버전 1.2를 사용합니다. 다른 모든 버전은 버전 1.3을 사용합니다. |
btree_gist | B-tree와 동등한 동작을 구현하는 GiST 색인 연산자 클래스를 제공합니다. PostgreSQL 9.6용 Cloud SQL은 버전 1.2를 사용합니다. PostgreSQL 10, 11, 12, 13은 버전 1.5를 사용합니다. PostgreSQL 14는 버전 1.6을 사용합니다. |
chkpass | 암호화된 비밀번호를 저장하기 위해 설계된 데이터 유형 chkpass 를 구현합니다. PostgreSQL 9.6 및 10용 Cloud SQL은 버전 1.0을 사용합니다. 다른 버전은 지원되지 않습니다. |
citext | 대소문자를 구분하지 않는 문자열 유형 citext 를 제공합니다.PostgreSQL 9.6용 Cloud SQL은 버전 1.3을 사용합니다. PostgreSQL 10은 버전 1.4를 사용합니다. PostgreSQL 11은 버전 1.5를 사용합니다. PostgreSQL 12, 13, 14는 버전 1.6을 사용합니다. |
cube | 다차원 큐브를 나타내는 데이터 유형 cube 를 구현합니다.
PostgreSQL 9.6 및 10용 Cloud SQL은 버전 1.2를 사용합니다. PostgreSQL 11은 버전 1.3을 사용합니다. PostgreSQL 12 및 13은 버전 1.4를 사용합니다. PostgreSQL 14는 버전 1.5를 사용합니다. |
hstore | 단일 PostgreSQL 값 내에서 키-값 쌍 조합을 저장하기 위한 hstore 데이터 유형을 구현합니다.PostgreSQL 9.6 및 10용 Cloud SQL은 버전 1.4를 사용합니다. PostgreSQL 11은 버전 1.5를 사용합니다. PostgreSQL 12는 버전 1.6을 사용합니다. PostgreSQL 13은 버전 1.7을 사용합니다. PostgreSQL 14는 버전 1.8을 사용합니다. |
isn | 일부 국제 제품 번호 지정 표준에 대한 데이터 유형을 제공합니다. PostgreSQL 9.6 및 10용 Cloud SQL은 버전 1.1을 사용합니다. 다른 모든 버전은 버전 1.2를 사용합니다. |
ip4r | IPv4/v6 주소의 데이터 유형, 주소 범위, 색인 지원을 제공합니다. PostgreSQL용 Cloud SQL은 버전 2.4.2를 사용합니다. |
ltree | 계층 트리 구조에 저장된 데이터 라벨을 나타내는 데이터 유형 ltree 를 구현합니다. PostgreSQL 9.6, 10, 11, 12용 Cloud SQL은 버전 1.1을 사용합니다. PostgreSQL 13 및 14는 버전 1.2를 사용합니다. |
lo | 대형 객체(LO 또는 BLOB) 관리를 지원합니다. PostgreSQL용 Cloud SQL은 버전 1.1을 사용합니다. |
postgresql-hll | 새로운 데이터 유형인 hll (HyperLogLog 데이터 구조)을 도입합니다. 이 문서의 postgresql-hll도 참조하세요.PostgreSQL용 Cloud SQL은 버전 2.16을 사용합니다. |
프리픽스 | 프리픽스 일치와 색인 지원을 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.2.0을 사용합니다. |
언어 확장 프로그램
확장 프로그램 | 설명 |
plpgsql | 함수, 절차, 트리거를 만들기 위한 로드 가능한 절차적 언어입니다. DO 블록에서 코드를 직접 실행하는 데 이 언어를 사용할 수도 있습니다. PostgreSQL용 Cloud SQL은 버전 1.0을 사용합니다. |
plv8 | JavaScript를 사용 설정하기 위한 절차적 언어를 제공합니다. PostgreSQL용 Cloud SQL은 버전 3.2.2를 사용하며, 이 버전은 V8 JavaScript 엔진 버전 11.5를 사용합니다. |
기타 확장 프로그램
확장 프로그램 | 설명 |
amcheck | pg_amcheck 애플리케이션이 손상을 확인할 수 있도록 관계 구조의 논리적 일관성을 확인하는 함수를 제공합니다. |
auto_explain | 문제 해결 등을 위해 속도가 느린 명령문의 실행 계획 자동 로깅을 사용 설정합니다. EXPLAIN 명령어 기능을 수행할 수 있는 자동 방법을 제공합니다. 이 문서의 auto_explain도 참조하세요. |
autoinc | 필드를 자동으로 증가시키는 함수를 제공합니다. 이 트리거는 시퀀스의 다음 값을 정수 필드에 저장합니다. PostgreSQL용 Cloud SQL은 버전 1.0을 사용합니다. |
bloom | bloom 필터를 기반으로 색인에 액세스하는 메서드를 제공합니다. bloom 필터는 요소가 집합의 구성원인지 여부를 테스트하는 데 사용할 수 있는 공간 효율적인 데이터 구조입니다. PostgreSQL용 Cloud SQL은 버전 1.0을 사용합니다. |
dblink | 데이터베이스 세션 내에서 PostgreSQL 데이터베이스에 연결하는 기능을 제공합니다. 이 문서의 dblink도 참조하세요. PostgreSQL용 Cloud SQL은 버전 1.2를 사용합니다. |
decoderbufs | 출력 데이터를 Debezium에 맞게 조정된 프로토콜 버퍼로 전송하는 PostgreSQL 논리적 디코더입니다. |
dict_int | 전체 텍스트 검색을 위한 부가기능 사전 템플릿으로 정수 색인 생성을 제어합니다. PostgreSQL용 Cloud SQL은 버전 1.0을 사용합니다. |
earthdistance | 지구 표면에서 대원 거리를 계산하는 두 가지 접근법을 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.1을 사용합니다. |
fuzzystrmatch | 문자열 간의 유사점과 거리를 확인하는 여러 기능을 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.1을 사용합니다. |
google_ml_integration | 벡터 임베딩을 생성하여 대규모 언어 모델(LLM)을 사용해 텍스트 프롬프트를 숫자 벡터로 변환합니다. PostgreSQL용 Cloud SQL은 버전 1.2를 사용합니다. |
insert_username | 현재 사용자의 이름을 텍스트 필드에 저장하는 함수를 제공합니다. 이를 사용하여 데이터베이스 테이블의 행을 마지막으로 수정한 사용자를 추적할 수 있습니다. PostgreSQL용 Cloud SQL은 버전 1.0을 사용합니다. |
intagg | 정수 애그리게이터와 열거자를 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.1을 사용합니다. |
intarray | null이 없는 정수 배열을 조작하고 이에 대한 색인이 생성된 검색을 수행하는 데 필요한 함수 및 연산자 세트를 제공합니다. PostgreSQL 9.6, 10, 11, 12용 Cloud SQL은 버전 1.2를 사용합니다. PostgreSQL 13은 버전 1.3을 사용합니다. PostgreSQL 14는 버전 1.5를 사용합니다. |
moddatetime | 현재 시간을 timestamp 필드에 저장하는 함수를 제공합니다. 이를 사용하여 데이터베이스 테이블의 행이 마지막으로 수정된 시간을 추적할 수 있습니다.PostgreSQL용 Cloud SQL은 버전 1.0을 사용합니다. |
oracle_fdw | Oracle 데이터베이스에 간편하고 효율적으로 액세스할 수 있도록 외부 데이터 래퍼(fdw)를 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.2를 사용합니다. |
orafce | Oracle 데이터베이스의 함수와 패키지의 하위 집합을 에뮬레이션하는 함수와 연산자를 제공합니다. 이러한 함수를 사용하여 Oracle 애플리케이션을 PostgreSQL로 포팅합니다. PostgreSQL용 Cloud SQL 9.6 및 10은 버전 4.6.1을 사용합니다. PostgreSQL 11 이상은 버전 4.7.0을 사용합니다. |
pageinspect | 하위 수준에서 데이터베이스 페이지의 콘텐츠를 검사합니다. 이 문서의 pageinspect도 참조하세요. PostgreSQL 9.6용 Cloud SQL은 버전 1.5를 사용합니다. PostgreSQL 10은 버전 1.6을 사용합니다. PostgreSQL 11 및 12는 버전 1.7을 사용합니다. PostgreSQL 13 및 14는 버전 1.8을 사용합니다. |
pgAudit | 감사 데이터를 수집합니다.
모든 pgAudit 버전의 감사 로그 파일에 설정할 수 있는 값은 Cloud SQL에서 이 확장 프로그램을 사용하는 방법에 대한 자세한 내용은 pgAudit를 사용한 PostgreSQL 감사를 참조하세요. |
pg_background | 백그라운드 작업자에서 임의의 명령어를 실행할 수 있습니다. PostgreSQL용 Cloud SQL은 버전 1.2를 사용합니다. |
pg_bigm | 전체 텍스트 검색을 사용 설정하고 빠른 전체 텍스트 검색을 위해 2그램(bigram) 색인을 허용합니다. 이 문서의 pg_bigm도 참조하세요. |
pg_buffercache | 공유 버퍼 캐시의 변경사항을 실시간으로 검사하는 수단을 제공합니다. PostgreSQL 9.6용 Cloud SQL은 버전 1.2를 사용합니다. PostgreSQL 10, 11, 12, 13, 14는 버전 1.3을 사용합니다. |
pg_cron | 크론 기반 작업 스케줄러를 제공합니다. 이 확장 프로그램은 데이터베이스에서 직접 PostgreSQL 명령어를 예약하도록 크론 구문을 사용 설정합니다. 확장 프로그램에 대한 자세한 내용은 이 문서의 pg_cron을 참조하세요. PostgreSQL용 Cloud SQL 버전 10 이상은 버전 1.6.0을 사용합니다. |
pgcrypto | PostgreSQL의 암호화 기능을 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.3을 사용합니다. |
pglogical | PostgreSQL의 논리 복제를 제공합니다. 논리 복제 및 디코딩 설정을 참조하세요. PostgreSQL용 Cloud SQL은 버전 2.4.3을 사용합니다. |
pgfincore | PostgreSQL에서 운영체제 디스크 캐시 메모리의 페이지를 관리하는 함수 집합입니다. 이 문서의 pgfincore도 참조하세요. PostgreSQL용 Cloud SQL은 버전 1.3.1을 사용합니다. |
pg_freespacemap | 여유 공간 맵(FSM)을 검사합니다.
이 문서의 pg_freespacemap도 참조하세요. PostgreSQL용 Cloud SQL은 버전 1.2를 사용합니다. |
pg_hint_plan | SQL 주석의 단순 설명인 힌트를 사용해서 PostgreSQL 실행 계획을 향상시킬 수 있습니다. 이 문서의 pg_hint_plan도 참조하세요. |
pgoutput | 이 플러그인은 변경 데이터 캡처를 위해 논리 복제에 사용됩니다.
pgoutput 은 기본 플러그인이므로 PostgreSQL용 Cloud SQL의 모든 버전에서 지원됩니다.
|
pg_ivm | 콘텐츠를 처음부터 다시 계산하는 대신 증분 변경사항만 계산되고 뷰에 적용되는 최신 상태의 구체화된 뷰를 만들 수 있습니다. PostgreSQL용 Cloud SQL 버전 13 이상은 버전 1.9를 지원합니다. |
pg_partman | 시간 기반 및 직렬 기반 테이블 파티션 모음을 만들고 관리할 수 있습니다. 이 문서의 pg_partman도 참조하세요. PostgreSQL용 Cloud SQL 버전 14 이상은 버전 5.0.1을 지원하고 14 이전의 PostgreSQL용 Cloud SQL 버전은 4.7.4 버전까지만 지원합니다. |
pg_prewarm | 관계 데이터를 운영체제 버퍼 캐시나 PostgreSQL 버퍼 캐시로 편리하게 로드하는 방법을 제공합니다. PostgreSQL 9.6 및 10용 Cloud SQL은 버전 1.1을 사용합니다. PostgreSQL 11, 12, 13, 14는 버전 1.2를 사용합니다. |
pg_proctab | PostgreSQL용 Cloud SQL과 함께 pg_top을 사용하고 운영체제 프로세스 테이블에서 보고서를 생성할 수 있습니다. 이 문서의 pg_proctab도 참조하세요. |
pg_repack | 테이블 및 색인에서 블로트를 제거할 수 있습니다.
원하는 경우 온라인 CLUSTER(클러스터 색인별로 테이블 정렬)를 수행할 수 있습니다. 이 문서의 pg_repack도 참조하세요. PostgreSQL용 Cloud SQL은 버전 1.5.0을 사용합니다. |
pgrowlocks | 지정된 테이블에 대한 행 잠금 정보를 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.2를 사용합니다. |
pgstattuple | 튜플 수준 통계를 얻기 위한 다양한 함수를 제공합니다. PostgreSQL 9.6용 Cloud SQL은 버전 1.4를 사용합니다. 다른 모든 버전은 버전 1.5를 사용합니다. |
pg_similarity | PostgreSQL에서 유사성 쿼리를 지원합니다. PostgreSQL용 Cloud SQL은 버전 1.0을 사용합니다. |
pg_squeeze | 테이블에서 사용되지 않은 공간을 삭제하고 원하는 경우 색인을 사용하여 테이블의 레코드 또는 행(튜플)을 정렬합니다. 이 확장 프로그램에 대한 자세한 내용은 이 문서의 pg_squeeze를 참조하세요. PostgreSQL용 Cloud SQL 버전 11 이상은 버전 1.5를 사용합니다. |
pg_stat_statements | 실행된 모든 SQL 문 실행 통계를 추적하는 수단을 제공합니다. PostgreSQL 9.6용 Cloud SQL은 버전 1.4를 사용합니다. PostgreSQL 10 및 11은 버전 1.6을 사용합니다. PostgreSQL 12는 1.7을 사용합니다. PostgreSQL 13은 1.8을 사용합니다. PostgreSQL 14는 1.9를 사용합니다. |
pgTAP | PL/pgSQL 및 PL/SQL로 작성된 PostgreSQL용 단위 테스트 프레임워크를 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.3.0을 사용합니다. |
pg_trgm | 빠른 유사 문자열 검색을 지원하는 인덱스 연산자 클래스뿐 아니라 트라이그램 매칭을 기반으로 하는 영숫자 텍스트의 유사성을 결정하는 데 필요한 함수와 연산자를 제공합니다. PostgreSQL 9.6 및 10용 Cloud SQL은 버전 1.3을 사용합니다. PostgreSQL 11 및 12는 버전 1.4를 사용합니다. PostgreSQL 13은 1.5를 사용합니다. PostgreSQL 14는 버전 1.6을 사용합니다. |
pgtt | PostgreSQL 데이터베이스에서 DB2 또는 Oracle 스타일의 전역 임시 테이블을 만들고 관리합니다. |
pgvector |
PostgreSQL 데이터베이스에서 벡터 임베딩을 저장하고 검색할 수 있는 오픈소스 확장 프로그램입니다. |
pg_visibility | 테이블의 가시성 지도(VM) 및 페이지 수준의 가시성 정보를 검사할 수 있는 방법을 제공합니다. 이 문서의 pg_visibility도 참조하세요. PostgreSQL용 Cloud SQL은 버전 1.2를 사용합니다. |
pg_wait_sampling | 대기 이벤트의 샘플링 통계를 수집하고 서버 프로세스에 대해 대기 이벤트 데이터를 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.1.5를 사용합니다. |
PL/Proxy | PostgreSQL 데이터베이스 간에 리모트 프로시져 콜을 허용하는 프로시져 언어 핸들러이며, 선택 사항인 샤딩이 있습니다.
이 문서의 PL/Proxy도 참조하세요. PostgreSQL용 Cloud SQL은 버전 2.11.0을 사용합니다. |
postgres_fdw | 인스턴스 내에서 또는 인스턴스 간에 외부 데이터 래퍼를 만들 수 있습니다. 이 문서의 postgres_fdw도 참조하세요. PostgreSQL 9.6, 10, 11, 12, 13용 Cloud SQL은 버전 1.0을 사용합니다. PostgreSQL 14는 버전 1.1을 사용합니다. |
postgresql_anonymizer | PostgreSQL 데이터베이스에서 개인 식별 정보(PII) 또는 민감한 정보를 마스킹하거나 바꿉니다. 자세한 내용은 postgresql_anonymizer 섹션을 참조하세요. PostgreSQL용 Cloud SQL은 버전 1.0.0을 사용합니다. |
postgresql_hll | 집합의 카디널리티를 추정하는 HyperLogLog( PostgreSQL용 Cloud SQL은 버전 2.18을 사용합니다. |
rdkit | 화학정보학 및 머신러닝 소프트웨어 컬렉션입니다. 이 확장 프로그램을 사용하면 분자 구조를 비교, 조작, 식별할 수 있습니다.
PostgreSQL용 Cloud SQL은 버전 4.2.0을 사용합니다. |
refint | 외래 키 제약조건, 참조하는 테이블, 참조되는 테이블을 확인하는 함수가 포함됩니다. 또한 이 확장 프로그램은 서버 프로그래밍 인터페이스(SPI)를 보여줍니다. PostgreSQL용 Cloud SQL은 버전 1.0을 사용합니다. |
sslinfo | 현재 클라이언트가 인스턴스에 연결할 때 제공한 SSL 인증서에 대한 정보를 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.2를 사용합니다. |
tablefunc | 테이블(여러 행)을 반환하는 다양한 함수를 포함합니다. PostgreSQL용 Cloud SQL은 버전 1.0을 사용합니다. |
tcn | 리스너에 데이터베이스 테이블의 콘텐츠 변경사항을 알리는 트리거 함수를 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.0을 사용합니다. |
temporal_tables | 임시 테이블을 지원합니다. 임시 테이블은 데이터베이스 관점에서 행이 유효한 기간을 기록합니다. PostgreSQL용 Cloud SQL은 버전 1.2.2를 사용합니다. |
tsm_system_rows | SELECT 명령어의 TABLESAMPLE 절에서 사용할 수 있는 테이블 샘플링 메서드인 SYSTEM_ROWS를 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.0을 사용합니다. |
tsm_system_time | SELECT 명령어의 TABLESAMPLE 절에서 사용할 수 있는 테이블 샘플링 메서드인 SYSTEM_TIME을 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.0을 사용합니다. |
unaccent | 어휘소에서 악센트(발음 구별 기호)를 제거하는 텍스트 검색 사전입니다. PostgreSQL용 Cloud SQL은 버전 1.1을 사용합니다. |
uuid-ossp | 여러 표준 알고리즘 중 하나를 사용하여 범용 고유 식별자(UUID)를 생성하는 기능을 제공합니다. PostgreSQL용 Cloud SQL은 버전 1.1을 사용합니다. |
일부 PostgreSQL 확장 프로그램에 대해 자세히 알아보기
이 섹션에서는 위의 표에서 지원되는 일부 PostgreSQL 확장 프로그램을 좀 더 자세히 설명합니다.
auto_explain
인스턴스에서 이 확장 프로그램 사용을 시작하려면 cloudsql.enable_auto_explain
플래그를 on
으로 설정합니다. 플래그 설정에 대한 정보와 이 확장 프로그램에서 지원되는 플래그를 검토하려면 데이터베이스 플래그 구성을 참조하세요.
이 확장 프로그램에서 사용 설정하는 실행 계획의 로그와 연결된 로깅 데이터 및 이벤트를 보려면 Cloud Logging 문서를 참조하세요.
또는 cloudsqlsuperuser
역할(전용)이 있는 사용자의 경우 load
명령어를 사용하여 이 세션의 확장 프로그램을 로드할 수 있습니다.
dblink
데이터베이스 세션 내에서 이 확장 프로그램을 사용하여 PostgreSQL 데이터베이스에 연결하고 쿼리를 실행할 수 있습니다.
현재 이 확장 프로그램은 동일한 VPC 네트워크 내의 두 Cloud SQL 비공개 IP 인스턴스 또는 동일한 인스턴스 내의 교차 데이터베이스에서 작동합니다.
자세한 내용은 PostgreSQL 문서의 dblink를 참조하세요.
dblink를 사용하여 비밀번호로 연결
데이터베이스에 연결하거나 다른 사용자와 동일한 인스턴스에 연결하려면 비밀번호를 지정해야 합니다. 다음은 프로덕션용이 아닌 예시 목적으로 사용되는 코드 스니펫입니다.
SELECT * FROM dblink (
'dbname=name port=1234 host=host user=user password=password',
'select id, name from table' \
) AS t(id int, name text);
또는 다음은 프로덕션용이 아닌 연결만 설정하기 위한 예시용 코드 스니펫입니다.
SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');
dblink를 사용하여 비밀번호 없이 연결
동일한 사용자와 동일한 인스턴스에 연결하려면 비밀번호 없이 연결하면 됩니다. 예를 들면 다음과 같습니다.
다음 데이터베이스 플래그를 설정하여 비밀번호 없이 로컬 연결을 사용 설정합니다.
cloudsql.allow_passwordless_local_connections
호스트를 지정하지 않고 연결합니다. 이는 동일한 인스턴스에 연결해야 함을 의미합니다. 예를 들면 다음과 같습니다.
SELECT * FROM dblink('dbname=finance user=alice', 'select income from revenue') AS revenue(income integer);
다음과 비슷한 결과가 표시됩니다.
income -------- 1000 (1 row)
동일한 인스턴스 내 데이터베이스에 연결하기 위해 호스트를 localhost 또는 127.0.0.1
로 설정할 수 없습니다. 대신 Google Cloud 콘솔에서 인스턴스에 표시된 IP 주소를 사용해야 합니다.
이 문서의 postgres_fdw 및 PL/Proxy도 참조하세요.
pageinspect
이 확장 프로그램은 하위 수준에서 데이터베이스 페이지의 콘텐츠를 검사합니다. 자세한 내용은 PostgreSQL 문서의 pageinspect를 참조하세요.
pg_bigm
이 확장 프로그램은 전체 텍스트 검색을 사용 설정하고 빠른 전체 텍스트 검색을 위해 2그램(bigram) 색인을 허용합니다.
인스턴스에서 이 확장 프로그램 사용을 시작하려면 cloudsql.enable_pg_bigm
플래그를 on
으로 설정합니다. 다음 플래그도 지원됩니다.
pg_bigm.enable_recheck
pg_bigm.gin_key_limit
pg_bigm.similarity_limit
플래그 설정에 대한 정보와 이 확장 프로그램에서 지원되는 플래그를 검토하려면 데이터베이스 플래그 구성을 참조하세요.
pg_cron
인스턴스에서 pg_cron 사용을 시작하려면 cloudsql.enable_pg_cron
플래그를 on
으로 설정합니다. 플래그 설정에 대한 정보와 이 확장 프로그램에서 지원되는 플래그를 검토하려면 데이터베이스 플래그 구성을 참조하세요.
작업은 백그라운드 작업자로 구성되므로 표준 PostgreSQL 기법(예: max_worker_processes
플래그)을 사용하여 백그라운드 작업자 수를 조정해야 할 수 있습니다.
이 확장 프로그램의 경우 Cloud SQL은 백그라운드 작업자 모드를 지원하지만 libpq 인터페이스는 지원하지 않습니다. 따라서 이 확장 프로그램을 직접 포함하는 트러스트 인증이 필요하지 않습니다.
pgfincore
이 확장 프로그램은 PostgreSQL에서 운영체제 디스크 캐시 메모리의 페이지를 관리하는 함수를 포함합니다. 자세한 내용은 pgfincore 문서를 참조하세요.
pg_freespacemap
이 확장 프로그램은 여유 공간 맵(FSM)을 검사합니다. 자세한 내용은 PostgreSQL 문서의 pg_freespacemap을 참조하세요.
pg_hint_plan
인스턴스에서 이 확장 프로그램 사용을 시작하려면 cloudsql.enable_pg_hint_plan
플래그를 on
으로 설정합니다. 플래그 설정에 대한 정보와 이 확장 프로그램에서 지원되는 플래그를 검토하려면 데이터베이스 플래그 구성을 참조하세요.
또한 cloudsqlsuperuser
역할이 있는 사용자의 경우에만 load
명령어를 사용해서 한 세션에 대해 이 확장 프로그램을 로드할 수 있습니다.
pg_partman
이 확장 프로그램을 사용하면 시간 기반 및 직렬 기반 테이블 파티션 모음을 만들고 관리할 수 있습니다.
Cloud SQL에서 이 확장 프로그램은 자동 파티션 유지보수를 위한 백그라운드 작업자를 포함하지 않습니다. 대신 Cloud Scheduler를 사용하여 일정한 간격으로 유지보수 함수를 호출하여 유지보수를 유도할 수 있습니다.
pg_proctab
다음은 pg_proctab 확장 프로그램을 사용해서 pg_top 유틸리티를 사용 설정하는 단계입니다.
- psql 도구에서 pg_proctab에 대해 CREATE EXTENSION 명령어를 실행합니다.
- pg_top을 다운로드하고 실행합니다.
- PostgreSQL용 Cloud SQL 인스턴스에 연결할 때는 측정항목을 가져오기 위해 원격 데이터베이스에 연결하기 위한
-r
옵션을 추가합니다.
출력에 포함된 인스턴스 전체 측정항목에는 인스턴스의 다른 지원 에이전트 및 서비스 사용량이 포함됩니다.
- 로드 평균
- CPU 상태(사용자 비율, 양호, 시스템, 유휴 상태, IO 대기)
- 메모리(사용, 무료, 캐시)
pg_repack
이 확장 프로그램을 사용하면 테이블 및 색인에서 블로트를 제거할 수 있습니다. 필요한 경우 이 확장 프로그램을 사용하여 온라인 CLUSTER(클러스터 색인별로 테이블 정렬)를 수행할 수 있습니다. 자세한 내용은 pg_repack 문서를 참조하세요. 또한 Cloud SQL에서 이 확장 프로그램을 사용하려면 사용자에게 권한을 추가하기 위한 특별한 프로시져가 필요합니다.
cloudsqlsuperuser
역할 이외의 사용자가 확장 프로그램을 사용하려는 경우 사용자에게 cloudsqlsuperuser
권한을 부여해야 합니다. 자세한 내용은 이 문서의 수퍼유저 권한 요구사항을 참조하세요.
다음 예시에서는 GRANT
명령어를 사용하여 필요한 권한을 추가합니다.
권한 추가 예시
아래 예시는 csuper1
은 cloudsqlsuperuser
이고 testdb
는 testuser
가 소유한 데이터베이스입니다. testdb
에서 pg_repack 확장 프로그램을 만들려면 먼저 다음 명령어를 실행합니다.
testdb
에cloudsqlsuperuser
로 연결합니다.psql -U csuper1 -d testdb;
csuper1
에testuser,
인 데이터베이스 소유자 권한을 부여합니다.GRANT testuser TO csuper1;
확장 프로그램을 만듭니다.
CREATE EXTENSION pg_repack;
testdb
의t1
과 같은 테이블에서csuper1
로pg_repack
명령어를 실행합니다.pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
pg_repack 작업이 완료되면 2단계에서 수행한 권한 부여를 취소합니다.
REVOKE testuser FROM csuper1;
pg_repack
명령어가 다음 오류와 함께 실패할 수 있습니다.
"ERROR: query failed: SSL SYSCALL error: EOF detected"
이 오류가 발생하면 TCP 연결유지를 더 작은 값으로 설정한 다음 pg_repack
명령어를 실행합니다. 자세한 내용은 연결 시간 초과(Compute Engine에서)을 참조하세요.
pg_squeeze
이 확장 프로그램은 테이블에서 사용되지 않은 공간을 삭제하고 원하는 경우 색인을 사용하여 테이블의 튜플을 정렬합니다. 인스턴스에서 확장 프로그램 사용을 시작하려면 cloudsql.enable_pg_squeeze
플래그를 on
으로 설정합니다.
이 확장 프로그램에서는 추가 정보를 미리 쓰기 로그(WAL)에 기록하여 논리 디코딩도 지원합니다. 확장 프로그램에 이 기능을 사용 설정하려면 cloudsql.logical_decoding
플래그를 on
으로 설정하여 wal_level
구성 매개변수를 logical
이상으로 설정합니다.
확장 프로그램을 사용하려면 max_replication_slots
플래그 값을 설정해야 합니다. 이 플래그 값을 지정하지 않았으면 값을 1
로 설정합니다. 그렇지 않으면 플래그에 설정된 값에 1을 추가합니다.
플래그 설정에 대한 정보와 이 확장 프로그램에서 지원되는 플래그를 검토하려면 데이터베이스 플래그 구성을 참조하세요.
pgtt
인스턴스에서 이 확장 프로그램 사용을 시작하려면 pgtt.enabled
플래그를 on
으로 설정합니다. 플래그 설정에 대한 정보와 이 확장 프로그램에서 지원되는 플래그를 검토하려면 데이터베이스 플래그 구성을 참조하세요.
pg_visibility
이 확장 프로그램은 테이블의 가시성 지도(VM) 및 페이지 수준의 가시성 정보를 검사하는 방법을 제공합니다. 자세한 내용은 PostgreSQL 문서의 pg_visibility를 참조하세요.
PL/Proxy
이 확장 프로그램은 PostgreSQL 데이터베이스 간에 리모트 프로시져 콜을 허용하는 프로시져 언어 핸들러이며, 선택사항인 샤딩이 있습니다.
자세한 내용은 PL/Proxy 문서를 참조하세요.
연결 대상 인스턴스는 연결 인스턴스와 동일한 VPC 네트워크에 있어야 합니다. 또한 Google Cloud 콘솔에서 클러스터 인스턴스에 대해 SSL 연결만 허용 버튼을 선택할 수 없습니다.
동일한 인스턴스 내 데이터베이스에 연결하기 위해 호스트를 localhost 또는 127.0.0.1
로 설정할 수 없습니다. 대신 Google Cloud 콘솔에서 인스턴스에 표시된 IP 주소를 사용해야 합니다.
이 문서의 postgres_fdw 및 dblink도 참조하세요.
postgresql_anonymizer
인스턴스에서 이 확장 프로그램 사용을 시작하려면 cloudsql.enable_anon
플래그를 on
으로 설정합니다. 플래그 설정에 대한 정보와 이 확장 프로그램에서 지원되는 플래그를 검토하려면 데이터베이스 플래그 구성을 참조하세요.
postgres_fdw
이 확장 프로그램을 사용하면 다른('외부') PostgreSQL 데이터베이스의 테이블을 현재 데이터베이스의 '외부' 테이블로 노출할 수 있습니다. 이러한 테이블은 로컬 테이블과 거의 유사하게 사용할 수 있습니다. 자세한 내용은 PostgreSQL 문서의 postgres_fdw를 참조하세요.
이 확장 프로그램은 동일한 VPC 네트워크 내의 두 Cloud SQL 비공개 IP 인스턴스 또는 동일한 인스턴스 내의 교차 데이터베이스에서 작동합니다.
동일한 인스턴스 내 데이터베이스에 연결하기 위해 호스트를 localhost 또는 127.0.0.1
로 설정할 수 없습니다. 대신 Google Cloud 콘솔에서 인스턴스에 표시된 IP 주소를 사용해야 합니다.
또한 외부 데이터가 저장된 인스턴스의 경우 Google Cloud 콘솔에서 SSL 연결만 허용 옵션을 선택할 수 있습니다.
신뢰할 수 있는 클라이언트 인증서 필요 옵션을 선택할 수 없습니다.
cloudsqlsuperuser
만 postgres_fdw
외부 데이터 래퍼 소유자가 될 수 있습니다.
이 문서의 PL/Proxy 및 dblink도 참조하세요.
postgresql-hll
이 확장 프로그램은 HyperLogLog 데이터 구조인 새로운 데이터 유형 hll
을 도입합니다. 자세한 내용은 postgresql-hll 문서를 참조하세요.