2.쿼리 유형

Edit

로그프레소는 실행 방식에 따라 크게 4가지 유형으로 분류됩니다.

2.1애드혹 쿼리

애드혹 쿼리는 사용자가 임의의 시점에 임의의 질의문을 만들어서 실행하는 쿼리를 의미합니다. 로그프레소의 웹 콘솔의 로그 쿼리 메뉴, 텔넷이나 SSH를 통해 접속한 로그프레소 터미널, 혹은 로그프레소 클라이언트 SDK를 통해 프로그래밍 방식으로 사용자가 임의의 시점에 쿼리를 실행할 수 있습니다.

장시간 실행되는 쿼리를 백그라운드로 전환하면 현재 세션을 로그아웃하거나 접속이 끊어지더라도 계속 실행됩니다. 이후에 해당 쿼리를 포어그라운드로 다시 전환하여 쿼리 결과를 확인할 수 있습니다.

2.2실시간 쿼리

실시간 쿼리는 실행 시점부터 지정한 시간 범위만큼 대기하면서 실시간으로 수신되는 데이터를 대상으로 처리하는 쿼리를 의미합니다. 로그 수집기에서 로그를 수집할 때, 스트림 쿼리의 결과가 출력될 때, 테이블에 데이터가 입력될 때, 실시간으로 해당 데이터를 입력으로 수신하면서 쿼리할 수 있습니다. 이는 디스크에 전체 데이터를 저장하지 않으면서도 즉각 데이터를 샘플링하여 분석할 때 유용합니다.

실시간 쿼리 명령어로 logger, stream, table이 있습니다.

2.3스트림 쿼리

스트림 쿼리는 시스템이 종료할 때까지 실시간 데이터 원본에 대하여 백그라운드에서 무한히 실행되는 쿼리를 의미합니다. 스트림 쿼리는 연속적으로 입력 순서를 보장하면서 쿼리를 수행하는 특징을 가지고 있습니다.

로그프레소 엔터프라이즈, 스탠다드는 쿼리 > 스트림에서 스트림 쿼리를 확인할 수 있습니다. 스트림 쿼리는 입력으로 3가지의 스트림 유형을 지원합니다:

로그 수집기

로거(logger)를 통해 수집한 모든 로그가 스트림 쿼리에 입력됩니다. 로그프레소 엔터프라이즈, 스탠다드는 수집 설정에서, 로그프레소 소나는 수집 > 수집 설정에서 로거를 구성할 수 있습니다.

테이블

테이블에 새로운 행(row)이 쓰여질 때마다 스트림 쿼리에 입력됩니다. 관계형 데이터베이스(RDBMS)에서 사용하던 트리거의 진화된 사용 예로 생각할 수 있습니다. 로그프레소 엔터프라이즈, 스탠다드는 테이블 관리에서, 로그프레소 소나는 시스템 > 테이블 관리에서 테이블을 구성할 수 있습니다.

스트림 쿼리

다른 스트림 쿼리의 출력을 입력으로 사용할 수 있습니다. 비정형 로그에 대하여 파싱을 수행하는 스트림 쿼리를 앞단에 두고, 해당 스트림 쿼리를 입력으로 사용하는 다수의 분석용 스트림 쿼리를 배치하는 시나리오를 예로 들 수 있습니다. 스트림 쿼리는 스트리밍 모드와 리프레시 모드로 구분됩니다.

스트리밍 모드

데이터 입력 완료에 의존하지 않는 명령어들 - 스트리밍 가능한 명령어 - 로만 구성된 경우 스트리밍 모드로 스트림 쿼리를 설정할 수 있습니다.

리프레시 모드

가령 통계나 정렬의 경우 입력이 완료되어야만 전체 데이터를 대상으로 작업을 수행할 수 있기 때문에, 일정한 주기로 입력 완료 신호를 전달하게 됩니다.

스트림 쿼리를 사용하여 특정 시간 단위의 통계를 산출하여 중간 통계 테이블에 저장하고, 이 테이블을 쿼리하여 최종적인 통계 결과를 쿼리하도록 설계하면, 디스크를 거의 사용하지 않으면서 대용량 데이터 스트림에 대하여 실시간으로 통계 결과를 계산할 수 있습니다. 특히, 그루비 스크립팅을 이용하면 고도로 복잡한 실시간 분석 및 가공이 가능합니다.

2.4예약된 쿼리

예약된 쿼리는 사용자가 지정한 일정에 따라 실행됩니다. 선택적으로 쿼리 결과를 저장할 수 있으며, 경보 조건과 일치하는 결과를 메일로 전송할 수 있습니다.

로그프레소 엔터프라이즈와 스탠다드는 쿼리 > 불러오기에서 저장된 쿼리 결과 목록을 통해 조회할 수 있습니다.

Count of comments [0]