Snowflake Postgres로 CLI Cortex Code 사용하기

Cortex Code CLI Postgres 기술을 통해 Postgres 데이터베이스에 대한 자연어 질문을 하고 Cortex Code가 SQL을 생성 및 실행하도록 할 수 있습니다. 모든 쿼리를 직접 작성할 필요 없이 디버깅, 스키마 탐색, 경량 분석을 수행할 수 있도록 설계되었습니다.

설치, 연결 설정 및 일반 Cortex Code CLI 사용법은 Cortex Code CLI 섹션을 참조하세요.

이 Postgres 고유의 스킬은:

  • Snowflake Postgres 인스턴스를 생성하고 관리하는 데 도움이 됩니다.

  • 자연어 질문을 Postgres SQL로 변환합니다.

  • 생성된 SQL을 구성된 Postgres 인스턴스에 실행합니다.

  • 짧고 읽기 쉬운 요약과 선택적 원시 결과를 반환합니다.

  • Postgres와 Snowflake 간의 오브젝트 저장 및 데이터 이동을 위해 Snowflake 스테이지 또는 S3 버킷을 통해 pg_lake 를 설정할 수 있습니다.

연결 관리하기

이 스킬은 PostgreSQL의 네이티브 ~/.pg_service.conf~/.pgpass 파일을 사용하여 연결을 저장하므로 모든 표준 PostgreSQL 클라이언트(psql, pgAdmin, DBeaver 등)와 호환됩니다. Cortex Code에 인스턴스 생성 또는 자격 증명 재설정을 요청하면 pg_connect.py 를 통해 연결이 자동으로 저장됩니다.

경고

채팅 또는 로그에 .pgpass 내용을 표시하지 마세요. 모든 자격 증명 작업에 pg_connect.py 를 사용합니다.

쿼리 실행하기

연결이 저장되면 Cortex Code는 채팅에서 직접 인스턴스에 대해 psql 명령을 실행할 수 있습니다. 비밀번호는 ~/.pgpass 에서 자동으로 확인됩니다. 자연어 프롬프트를 사용할 수 있습니다.

  • “my_instance의 모든 테이블 표시”

  • “주문 테이블에 SELECT를 실행하여 마지막 10개 행 가져오기”

  • “사용자 테이블에 존재하는 인덱스”

Cortex Code는 이러한 질문을 psql 명령으로 변환하고, 인스턴스가 준비되었는지 확인하고(일시 중단된 경우 자동 재개), 쿼리를 실행하고, 결과를 표시합니다.

You:          How many orders were placed this month?
Cortex Code:  Running: psql "service=my_instance" -c \
         "SELECT count(*) FROM orders
          WHERE created >= date_trunc('month', current_date);"

         count
        -------
           142

Cortex Code는 명시적으로 요청하지 않는 한, 쓰기 작업(INSERT, UPDATE, DELETE, DROP, TRUNCATE)을 실행하지 않습니다. 쓰기 작업을 진행하려면 확인이 필요합니다.

Postgres 상태 확인

pg_doctor 는 30초의 문 시간 제한으로 Postgres 인스턴스에 대해 상태 확인을 실행하는 읽기 전용 진단 도구입니다.

확인

설명

임계값

cache_hit

인덱스 및 테이블 캐시 적중률

통과: >= 99%/경고: 95~99%/실패: < 95%

bloat

테이블 및 인덱스 비대화 추정

통과: < 30% / Warn: 30-50% / Fail: > 50%

vacuum_stats

활성화되지 않은 행 및 자동 배큠 상태

테이블에 배큠이 필요한 경우 경고

connections

역할당 연결 수

정보용

locks

독점 잠금 보유

잠금이 있는 경우 경고

blocking

차단된 쿼리

쿼리가 차단된 경우 실패

long_running

5분 이상 실행되는 쿼리

발견 시 경고

outliers

느린 상위 쿼리(pg_stat_statements 필요)

정보용

unused_indexes

인덱스가 스캔되지 않음

발견 시 경고

table_sizes

테이블 크기 분석(합계, 인덱스, 경량 알림)

정보용

결과를 제시한 후 Cortex Code는 플래그가 지정된 검사에 대해 설명하고 추가 조사를 제안합니다. 모든 수정 작업(VACUUM, REINDEX 등)은 실행 전에 명시적인 확인이 필요합니다.

pg_lake 설정하기

pg_lake 는 Snowflake Postgres 인스턴스에서 오브젝트 저장소 및 S3 데이터 이동을 지원하는 PostgreSQL 확장 프로그램입니다. 확장 프로그램 자체에 대한 자세한 내용은 pg_lake용 S3 저장소 구성하기 섹션을 참조하세요.

Cortex Code 스킬은 Snowflake 스테이지 및 Snowflake 외부에서 관리되는 S3 버킷 모두에 대한 다중 시스템 설정(Snowflake SQL, AWS IAM, Postgres SQL)을 지원합니다. Cortex Code에 대화형으로 설정 과정을 안내하도록 요청할 수 있습니다.

  • “s3://my-bucket/data/로 pg_lake 설정”

  • “my_instance에서 Snowflake 관리 스테이지로 pg_lake 구성”

승인 게이트

Cortex Code는 청구 가능하거나, 지장을 주거나, 보안에 민감한 작업을 실행하기 전에 확인이 필요합니다.

작업

이유

인스턴스 생성/일시 중단

청구 가능한 리소스 또는 활성 연결 삭제

네트워크 정책 변경 사항

액세스 제어 수정

저장소 통합 생성/수정

클라우드 리소스(ACCOUNTADMIN 필요)

AWS 신뢰 정책 업데이트

IAM 권한 수정

삭제/지장을 주는 작업

영구적인 데이터 손실

진단에서 쓰기 작업

VACUUM, REINDEX, pg_terminate_backend 등.

읽기 전용 작업(SHOW, DESCRIBE, 상태 확인, SELECT 쿼리)은 승인이 필요하지 않습니다.