OpenDataPlatform/CKAN 분석

Postgresql Query Log 분석

안녕하세요 씨앤텍시스템즈 입니다.

이번 포스트는 Postgresql Query Log에 대해서 정리해 보았습니다.

 

DB 리버스를 통해 테이블의 목록 및 관계를 조금이나마 파악하였지만 더 정확히 파악하기 위해서

Query Log를 통해 Data가 어느 테이블에 저장되는지 알아보겠습니다.

 

1. Query Log 작성

Postgresql은 select,update,insert 등등

DB에 호출된 Query를 기록해주는 기능을 제공합니다.

이 기능을 사용하기 위해선 간단한 사전 준비가 필요합니다.

 

우선, Postgresql이 설치된 경로에 postgresql.conf 파일을 수정해야 합니다.

postgresql.conf 파일 경로


○ log_directory의 주석을 제거

    log_directory = 'pg_log'

 

 log_finename의 주석을 제거

    log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

 

 log_statement의 주석을 제거하고 'none'으로 되어있는 설정값을 'all'로 변경

    log_statement = 'all'

 

 logging_collector의 주석을 제거하고 'off'로 되어있는 설정값을 'on'으로 변경

    logging_collector = on

 

 log_destination의 주석을 제거

    log_destination = 'stderr'


 

위에 내용대로 파일을 수정 했다면 저장을 하고, postgresql를 재시작 합니다.

postgresql 재시작

재시작을 하였다면 아래 이미지의 경로에서

로그 파일을 확인할 수 있습니다. 

query log 파일

 

여기까지 Query 분석을 위한 준비는 끝났습니다.

CKAN에 데이터 셋을 등록을 하였을 때 사용되는 Query와 table을

Query Log를 통해 확인해 보도록 하겠습니다.

CKAN접속 후 dataset 등록 화면

 

등록을 마친 뒤 Query Log 파일을 확인 하면

Query Log 내용

이렇게 사용된 Query를 확인 할 수 있습니다.

 

매우 많은 Query가 사용되었지만 이 파일을 분석하면

table간 관계를 정확히 파악할 있을 것이라 판단 됩니다.

 

 

728x90