Skip to main content

PostgreSQL 반복 쿼리 자동화

요약: PostgreSQL 데이터베이스에 연결된 에이전트로 정기 지표 쿼리를 실행하고, 결과를 정해진 포맷으로 자동 리포트. 단순 일일 KPI부터 이상 탐지·트렌드 분석·고객 코호트·재고 알림까지 광범위하게 활용 가능합니다.

먼저 읽어주세요 — 읽기 전용 보고서 용도로만 권장

AI 가 실수 또는 외부 프롬프트의 영향으로 DELETE / UPDATE / DROP 같은 파괴적 쿼리를 임의로 실행할 가능성이 있습니다. 본 레시피는 정기 보고서 출력·지표 조회 같은 읽기 전용 용도로만 연동 하시길 권장합니다. 데이터를 추가하거나 수정하는 작업은 자동화하지 마세요.
최소 안전장치
  1. 읽기 전용 DB 계정 으로만 연결 — GRANT SELECT 만 부여, INSERT/UPDATE/DELETE/DROP/TRUNCATE 는 DB 레벨에서 차단
  2. 가능하면 운영 DB 가 아닌 Read Replica·분석용 DB 에 연결
  3. 민감 컬럼(개인정보·결제 정보) 은 뷰로 마스킹하거나 컬럼 권한 제거
  4. System Prompt 에 SELECT 외 쿼리 금지 명시
-- 읽기 전용 계정 예시 (이 범위를 넘지 마세요)
CREATE USER agent_ro WITH PASSWORD '...';
GRANT CONNECT ON DATABASE mydb TO agent_ro;
GRANT USAGE ON SCHEMA public TO agent_ro;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO agent_ro;
데이터 변경이 필요한 파이프라인이 있다면 에이전트가 아닌 검증된 ETL 도구 를 사용하고, 에이전트는 조회·요약·리포트 생성 까지만 담당하도록 역할을 분리하세요.

활용 시나리오

시나리오빈도출력
일일 매출 / 주문 KPI매일 09:00전일 대비 변화율 + Slack 채널
주간 신규 가입자 코호트매주 월 09:00가입 주차별 retention 표 + 이메일
이상 탐지 (매출·트래픽 outlier)매시간임계 초과 시에만 PagerDuty / Slack alert
재고 부족 알림매일 08:00안전재고 하회 SKU 목록 + 발주 담당자 멘션
장애 대시보드 자동 답변사용자 질의 시error_log + slow_query 조인 → 원인 추정
고객 문의 통계주간카테고리별 건수 · SLA 미준수 비율
A/B 테스트 결과 자동 집계일간그룹별 전환율 + 통계적 유의성
계약 만료 임박 알림매주30/60/90 일 내 만료 고객 · 갱신 담당자
데이터 품질 점검매일 새벽NULL률·중복·정합성 위반 로그
임원 위클리 요약매주 금 17:00핵심 KPI 5 개 + 자연어 인사이트 1 단락

요구 사항

항목설정 위치
PostgreSQL MCP 도구Console → Tool Management → PostgreSQL 템플릿
DB 접속 환경변수Internal → System Management → Environment (운영자만 설정 가능)
읽기 전용 DB 계정운영 DB 에서 직접 생성 (보안 필수)
에이전트 생성 & 도구 연결Agent 생성 → Tools 탭
Scheduler (반복 실행)사용자 메뉴 → Scheduler
(선택) Slack 전송Slack MCP 템플릿 + 채널 bot token
PostgreSQL 접속 설정은 사용자 화면이 아닌 운영자 Console 에서 선행 되어야 합니다.PostgreSQL 템플릿의 환경변수(PG_HOST · PG_PORT · PG_USER · PG_PASSWORD · PG_DBNAME · PG_SSLMODE · TOOL_DESC)는 전부 System Default 타입 입니다. 사용자가 도구 생성 화면에서 직접 입력하지 못하며, 운영자가 Internal → System Management → Environment 에서 세팅 해야 런타임에 자동 주입됩니다.진행 순서
  1. 운영자에게 DB 접속 정보(호스트·계정·DB 명) 전달 + 연결 요청
  2. 운영자가 Environment 에 7 개 환경변수 등록
  3. 그 다음에 사용자 화면(Tool Management)에서 PostgreSQL 템플릿 생성 → Save
  4. 도구 상세Test 로 연결 확인
Environment 세팅이 누락된 상태로 템플릿을 만들면 도구는 등록되지만 호출 시 조용히 실패 합니다. 상세 동작·타입 구분: PostgreSQL 템플릿 → Environment Variables

단계

1

에이전트 + PostgreSQL 도구 등록

Console → Tool Management → 도구 생성PostgreSQL 템플릿 선택. 환경변수 POSTGRES_CONNECTION_STRING 에 읽기 전용 연결 문자열 입력. 자세한 설정: PostgreSQL 템플릿
2

MCP Tools 패널에서 활성화

채팅 툴바 [1] MCP Tools 패널에서 postgresql 서버 체크 → Apply.
3

스키마 탐색

첫 실행 시 에이전트에게 스키마를 알려줍니다:
프롬프트 예시: “postgresql 에 연결된 DB에서 public 스키마의 테이블 목록과 각 테이블의 컬럼을 알려줘.”
에이전트가 list_tables, get_table_schema 도구를 Tool Call 카드로 호출하며 구조 파악.
4

쿼리 자연어로 실행

프롬프트 예시: “어제 하루 주문 건수를 region 별로 집계하고, 상위 5개 지역을 표로 보여줘.”
에이전트가 execute_query 로 SQL 실행. 결과는 Tool Call 카드 + 자연어 요약으로 표시.
5

Flow Studio 에 저장 (재사용)

반복 실행할 쿼리 플로우를 Flow Studio 로 저장:
  • 노드 1: execute_query(sql="...")
  • 노드 2: LLM 응답 포맷 (예: Markdown 표)
  • 노드 3: (선택) Slack 메시지 전송
6

Scheduler 로 반복 예약

사용자 메뉴 → Scheduler+ New Schedule:
  • Flow: 저장한 Flow 이름
  • Cron: 0 9 * * MON (매주 월요일 9시) 또는 0 9 * * * (매일 9시)
  • Timezone: Asia/Seoul
실행 결과는 Scheduler 이력에서 확인 + Slack 전송 시 채널에 자동 게시.

프롬프트 템플릿

일일 지표 리포트

어제 {yesterday} 하루 동안의 다음 지표를 구해줘:
1. 신규 사용자 수 (users.created_at 기준)
2. 주문 건수 및 총 매출
3. 지역별 상위 5개 매출

결과를 Markdown 표로 정리하고, 전일 대비 변화율도 포함해줘.

이상 탐지 (Outlier)

최근 7일 간 주문 금액 패턴을 분석하고,
표준편차 2배 이상 벗어난 outlier 를 찾아줘.
쿼리와 결과를 함께 보여줘.

코호트 분석 (Retention)

최근 8주간 주별 가입 코호트의 retention 을 계산해줘.
주차별로 W1~W4 까지 재방문율을 표로 만들어주고,
가장 retention 이 높은 주의 가입 채널을 분석해줘.

A/B 테스트 결과

experiments 테이블에서 'checkout-v2' 실험의
A/B 그룹별 전환율을 비교하고,
chi-square test 의 p-value 를 계산해서
통계적으로 유의한 차이가 있는지 알려줘.

재고 부족 알림

products 테이블에서 stock <= safety_stock 인 SKU를 모두 찾아서,
공급자별로 그룹핑한 뒤 가장 시급한 상위 10개를
sku, name, stock, safety_stock, supplier 컬럼으로 보여줘.

데이터 품질 점검

다음 테이블별로 데이터 품질을 점검해줘:
- users: email NULL 비율, 중복 email 수
- orders: order_date 미래 날짜 건수, amount 음수 건수
- products: price 0원 또는 NULL 건수

문제가 있으면 SQL 과 함께 결과를 보여줘.

자연어 임원 요약

지난주 (월~일) KPI 를 다음 형식으로 요약해줘:

📊 **위클리 요약 ({날짜})**
- 매출: ₩X (전주 대비 ±%)
- 주문: N건 (±%)
- 신규: N명 (±%)
- 이탈률: %

🔍 **인사이트** (1단락 자연어):
가장 두드러진 변화와 원인 추정.

주의사항

  • 읽기 전용 계정 필수 — 에이전트가 UPDATE/DELETE 하지 않도록 DB 권한에서 차단
  • 쿼리 복잡도 — 비용이 큰 풀스캔 쿼리는 인덱스 추가 또는 LIMIT 강제
  • 실행 시간 제한 — 툴 호출 타임아웃 고려 (기본 30–60초)
  • 민감 정보 — PII 컬럼은 SELECT 대상에서 제외하거나 마스킹 뷰 사용
Tool 호출 실패 시 Blocked API Keys 나 DB 접속 로그를 먼저 확인하세요.

변형·응용

  • 다중 DB 조합 — PostgreSQL + GitHub MCP → 배포 일자와 매출 변화 상관 분석
  • RAG + SQL 하이브리드 — 사내 위키(Storage 문서) + DB 지표 → “이번 분기 매출 하락 원인” 같은 질의에 정량+정성 답변
  • 사용자 권한별 마스킹 뷰 — 영업·재무·임원 등 역할별 다른 뷰를 에이전트에 노출
  • 자연어 → SQL → 시각화 — 결과를 Plotly Tool 로 차트 생성
  • 장애 자동 분석 — 모니터링 알람 발생 시 Slack → 에이전트 호출 → 관련 SQL 자동 실행 → 1차 분석 보고

관련 레시피