2.쿼리 유형

Edit

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

2.1애드혹 쿼리

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

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

2.2실시간 쿼리

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

2.3스트림 쿼리

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

스트림 쿼리는 입력으로 3가지의 스트림 유형을 지원합니다:

로그 수집기

로그 수집 설정을 통해 생성한 로거를 입력으로 사용합니다. 수집되는 모든 로그가 스트림 쿼리에 입력됩니다.

테이블

테이블에 새로운 행(row)이 쓰여질 때마다 스트림 쿼리에 입력됩니다. 관계형 데이터베이스(RDBMS)에서 사용하던 트리거의 진화된 사용 예로 생각할 수 있습니다.

스트림 쿼리

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

스트림 쿼리는 스트리밍 모드와 리프레시 모드로 구분됩니다. 데이터 입력 완료에 의존하지 않는 명령어들 - 스트리밍 가능한 명령어 - 로만 구성된 경우 스트리밍 모드로 스트림 쿼리를 설정할 수 있습니다. 가령 통계나 정렬의 경우 입력이 완료되어야만 전체 데이터를 대상으로 작업을 수행할 수 있기 때문에, 일정한 주기로 입력 완료 신호를 전달하게 됩니다.

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

2.4예약된 쿼리

예약된 쿼리는 사용자가 지정한 되풀이 주기에 맞춰서 실행됩니다. 선택적으로 쿼리 결과를 저장할 수 있으며, 쿼리 결과가 지정된 경보 조건과 일치하는 경우 메일을 통해 쿼리 결과를 전송할 수 있습니다. 저장된 쿼리 결과는 load 쿼리 명령어나,웹 콘솔의 로그 쿼리 메뉴에서 불러오기 기능을 통하여 조회할 수 있습니다.

Count of comments [0]