데이터베이스

데이터베이스 로거는 데이터베이스 서버로부터 데이터를 수집합니다.

수집 설정 추가

JDBC 로거

JDBC 로거는 SQL 쿼리를 사용하여 관계형 데이터베이스의 테이블이나 뷰에서 데이터를 수집합니다.

데이터베이스 로거 - JDBC 로거 설정

JDBC 프로파일
원격 호스트 연결에 사용할 JDBC 접속 프로파일
SQL
데이터 수집에 사용할 SQL 문. $where 매크로와 날짜 매크로($yyyy(연), $MM(월), $dd(일), $HH(시))를 사용할 수 있습니다. 날짜 매크로는 일자에 따라 수집대상 데이터베이스 이름이나 테이블 이름이 달라지는 경우 사용합니다.
조건절
$where 매크로에 삽입할 조건절. 물음표(?)를 위치 지정자 (placeholder)로 사용할 수 있습니다. 위치 지정자는 마지막 기준 컬럼 값으로 대치됩니다. 입력할 조건절은 where 문자열을 포함해야 합니다.
첫번째 기준 열
매 조회 시 마지막으로 수집했던 행 이후부터 가져올 수 있도록 검색 기준이 되는 첫 번째 컬럼 이름. 가령 시퀀스, IDENTITY, auto_increment로 지정된 컬럼, 혹은 증가하는 타임스탬프 컬럼의 이름을 입력합니다.
두번째 기준 열
매 조회 시 마지막으로 수집했던 행 이후부터 가져올 수 있도록 검색 기준이 되는 두번째 컬럼 이름
첫번째 기준 열 초기 값
첫번째 쿼리 시 조건절에 들어갈 초기 값을 입력합니다. 값을 입력하지 않을 경우 첫번째 쿼리 시 조건절을 무시하고 쿼리가 수행됩니다.
첫번째 기준 열 초기 값 타입
기준 열 초기 값의 데이터 타입(string, integer, long, date 중 하나)
두번째 기준 열 초기 값
첫 번째 쿼리 시 조건절에 들어갈 초기 값. 값을 입력하지 않으면 첫번째 쿼리 시 조건절을 무시하고 쿼리가 수행됩니다.
두번째 기준 열 초기 값 타입
기준 열 초기 값의 데이터 타입(string, integer, long, date 중 하나)
날짜 컬럼
데이터가 수집된 날짜를 가지고 있는 컬럼의 이름. 지정되지 않을 경우 로거가 수집한 날짜를 저장합니다.
날짜 포맷
날짜 컬럼이 SQL 시간 형식이 아닌 문자열에 적용할 날짜의 형태(예: yyyyMMdd HH:mm:ss)
데이터베이스 이름
날짜 매크로($yyyy(연), $MM(월), $dd(일), $HH(시))를 포함한 데이터베이스 이름. 날짜 매크로는 일자에 따라 수집대상 데이터베이스 이름이나 테이블 이름이 달라지는 경우 사용합니다.
날짜 매크로 시작 날짜
날짜 매크로를 사용하는 경우 시작 날짜를 지정
수집 반복 횟수 제한
수집 주기마다 실행할 수 있는 최대 SQL 쿼리 수
트랜스포머 설정
수집된 로그에 적용할 트랜스포머를 목록에서 선택. 미지정 시 트랜스포머를 적용하지 않고 원본 그대로 수집합니다.
Note
기준 열 초기 값을 지정하지 않으면 로거가 처음 수행할 때는 조건절을 무시하고 SQL 문을 실행합니다. 이는 기존 데이터를 모두 가져올 수 있게 하기 위한 것입니다. 모든 로그를 가져오지 않고 특정 범위의 로그만 가져오고 싶을 경우 기준 열 초기 값을 설정해야 합니다.
SQL 성능 고려사항
  • 기준 컬럼으로 검색할 때 인덱스를 사용하는지 확인합니다. 인덱스를 사용하지 않는다면 수천만건 이상 들어있는 테이블에서 지속적으로 테이블 전체를 검색하므로 많은 부하를 줄 수 있습니다.
  • 한 번에 가져오는 갯수를 제한합니다. 가령, 오라클의 경우 rownum을 사용하여 가져올 행 갯수를 제한할 수 있습니다. 이를 고려하지 않으면 초기 적재 시에 너무 많은 데이터를 한 번에 가져오려고 시도하면서 문제가 발생할 수 있습니다. JDBC 로거는 지정된 주기별로 쿼리를 수행하지만, 한 번 수집할 때 더 이상 새로운 값이 없을 때까지 쿼리를 반복 수행하므로 가져오는 행 갯수를 제한하는 것이 좋습니다.
  • 필요한 컬럼만 SELECT 절에 명시적으로 지정합니다. JDBC 로거는 조회되는 모든 컬럼 값을 키/값 형태로 수집합니다. 불필요한 컬럼을 제외하면 더 나은 성능을 기대할 수 있습니다.
날짜 매크로 사용 방법
  • 날짜 매크로는 일자에 따라 수집대상 데이터베이스 이름이나 테이블 이름이 달라지는 경우 사용합니다.
  • 날짜 매크로는 연($yyyy), 월($MM), 일($dd), 시($HH) 매크로를 지원합니다.
  • 날짜 매크로 사용 시 수집 범위는 "날짜 매크로 시작 날짜" 입력값부터 현재 시간 까지입니다. 다음 날 테이블을 미리 생성해두더라도 미리 수집되거나 오늘 일자 데이터 수집을 건너뛰지 않습니다.
  • 날짜 매크로 수집은 최소 매크로 단위가 1씩 증가하면서 수집됩니다. 최소 매크로 단위가 $dd이면 1일씩, $HH면 한 시간씩 수집됩니다.
  • 예를 들어, 데이터베이스 이름 항목에 db_log_$yyyy_$MM 을 입력하고 SQL문 from 절에 db_user_$dd 를 입력하고 "날짜 매크로 시작 날짜" 항목에 2017-01-01 00:00:00 을 입력하면 JDBC 로거는 db_log_2017_01.db_user_01, db_log_2017_01.db_user_02 순으로 테이블들을 조회해서 현재 일자 테이블까지 데이터를 수집합니다.
웹키퍼

웹키퍼 로거는 소만사 웹키퍼의 데이터베이스에서 데이터를 수집합니다.

웹키퍼 수집 설정

데이터베이스 IP
접속하고자 하는 마이크로소프트 SQL 서버의 IP 주소를 입력합니다.
데이터베이스 접속 포트
데이터베이스 접속 포트(기본값: 1433)
데이터베이스 계정
접속 가능한 데이터베이스 계정
데이터베이스 암호
데이터베이스 계정의 암호
에이전트 UID
네트워크 에이전트의 UID
파일 목록 추가
첨부파일 목록 수집 여부를 나타내는 불리언 값(기본값: false)
수집 기준 일자
수집 기준 일자. 미지정시 로거 시작 시점부터 데이터를 수집합니다. (예) yyyy-MM-dd HH:00:00)
수집 반복 횟수 제한
수집 주기마다 실행할 수 있는 최대 SQL 쿼리 개수(기본값: 0, 제한 없음)
트랜스포머 설정
수집된 로그에 적용할 트랜스포머를 목록에서 선택. 미지정 시 트랜스포머를 적용하지 않고 원본 그대로 수집합니다.