PostgreSQL 테이블의 로그를 수집하기
목표: Control의 Database query (PostgreSQL) Connector로 테스트 테이블을 읽어 HTTP Destination에 전달합니다. 사용자가 관리하는 테스트 DB가 필요합니다.화면 버전: 표시된 이미지는 과거 Control UI 테스트 캡처입니다. 현재 제품의 기본 5단계 순서(Connect → Sample & Record Selection → Destinations → Route Processing → Deploy)를 우선하세요. 번호별 화면 가이드에서 차이를 설명합니다.
실행 순서와 완료 기준
- 필수 정보 준비: Vendor 공식 API/연동 가이드에서 Endpoint, 인증 방식, 최소 권한, Pagination/Checkpoint, 응답 샘플을 확인합니다. 테스트용 비식별 이벤트와 실제 Destination 접속 정보를 준비합니다.
- 모르는 항목은 ChatGPT로 정리: 공개 API 문서와 비식별 샘플을 제공하고 Connector 필수 필드, 요청 예시, Event Root, Timestamp/ID, Cursor, 미확인 사항을 표로 요청합니다. Token·비밀번호는 입력하지 않습니다. ChatGPT 답변은 Vendor 문서와 Run Test로 검증합니다.
- Connector 생성: Connectors → Create Connector에서 이 페이지의 해당 Source Type을 선택하고 실제 접속·인증 정보를 입력합니다. 저장하고 연결 테스트를 확인합니다.
- Destination 생성: Destinations → Create에서 실제 수신기 유형(SYSLOG_UDP/TCP/TLS 또는 WEBHOOK_POST)을 선택하고 Host/Port/URL, TLS/인증을 입력합니다.
- Stream 생성: Streams → Create → Connect에서 Connector를 선택하고 Source 요청/수집 조건을 지정합니다.
- 샘플과 스키마: Sample & Record Selection → Run Test에서 실제 레코드가 추출되는지 확인합니다. Record Root, Union Schema, Pagination 및 Checkpoint를 확정합니다.
- 데이터 처리: Destinations에서 Route를 연결하고 Route Processing에서 Mapping, Timestamp, Enrichment, Masking/Drop/Quarantine을 설정합니다. Tokenization은 실제 제품에서 지원되는 경우에만 사용합니다. Route Effective Status와 최종 출력값을 확인합니다.
- 배포와 검증: Deploy의 경고를 해결하고 Stream을 실행합니다. Run ID, Route Logs와 실제 Destination 수신 기록을 비교합니다. 이 세 가지가 일치해야 완료입니다.
- 장애 대응: 연결/인증 오류는 API 권한·TLS·Network·429를, 레코드 0건은 Record Root·Pagination을, 전송 실패는 Delivery Incident를, 필드 변경은 Schema Drift를 확인합니다.
ChatGPT 질문 예시
DataRelay Control에서 이 제품의 로그를 수집하려고 합니다. 아래 공개 API 가이드와 비식별 JSON 샘플을 기준으로 Connector 연결·인증 필수값, API Request/Pagination, Event Root, Timestamp/ID/Checkpoint, Mapping·민감 필드 보호, 장애 시 확인 항목을 표로 작성해 주세요. 문서에 없는 정보는 임의로 생성하지 말고 ‘확인 필요’로 표시하세요.
1. 테스트 테이블 준비
승인된 테스트 PostgreSQL DB에서 다음 SQL을 실행합니다.SELECT 권한만 부여합니다. Control 서버에서 DB 포트에 접근 가능해야 합니다.
2. Connector 설정
- **Connectors → Create Connector → Database query (PostgreSQL)**을 선택합니다.
- Connector Name =
Lab PostgreSQL, DB type =PostgreSQL을 지정합니다. - 실제 Host, Port(보통 5432), Database name, Username, Password를 입력합니다.
- 서버 인증서 정책에 맞는 SSL mode를 설정합니다. 운영 인증서가 존재한다면
VERIFY_FULL같은 검증 옵션을 사용합니다. - 저장하고 지원되는 DB Connectivity Test를 실행해 권한/TLS/네트워크를 확인합니다.
3. SQL Query와 Sample 확인
/streams/new에서 저장한 Connector를 선택합니다.- Connect/Run Test의 DB Discovery 또는 Query Builder에서 읽기 전용 Query를 구성합니다.
- Run Test에서 샘플 1건 이상을 확인하고 Record Selection에서 반환 레코드를 선택합니다.
- Union Schema와 필드 타입을 확인합니다.
- 증분 수집을 사용한다면 안정적인 Cursor/정렬과 ID Tie-breaker를 갖추고 Checkpoint를 명시적으로 검증합니다. 시간 필드가 있다고 자동으로 올바른 Cursor가 되는 것은 아닙니다.


4. 전송 확인
- 테스트 HTTP 수신기를
WEBHOOK_POSTDestination으로 선택합니다. - Route Processing에서 Mapping/Preview를 검토하고 Deploy를 수행합니다.
- Stream을 실행한 후 Logs와
received-9011.ndjson에서 해당 DB 이벤트를 찾습니다. - 추가 가상 Row를 삽입한 뒤 재수집하여 중복이나 누락이 없는지도 검증합니다.

실패 시
- 연결 실패: DB Host/Port, SSL, 계정 및 권한 확인
- Query 0건: DB/Schema/Table과 WHERE 조건 확인
- 중복/누락: 정렬, Checkpoint와 Tie-breaker 확인
- PostgreSQL이 아닌 DB: 현재 확인된 Query Runtime은 PostgreSQL 중심이므로 추가 엔진 지원을 가정하지 않습니다.