KR20210000041A - 로그 데이터의 실시간 분석 방법 및 그 장치 - Google Patents

로그 데이터의 실시간 분석 방법 및 그 장치 Download PDF

Info

Publication number
KR20210000041A
KR20210000041A KR1020190074798A KR20190074798A KR20210000041A KR 20210000041 A KR20210000041 A KR 20210000041A KR 1020190074798 A KR1020190074798 A KR 1020190074798A KR 20190074798 A KR20190074798 A KR 20190074798A KR 20210000041 A KR20210000041 A KR 20210000041A
Authority
KR
South Korea
Prior art keywords
log data
data
time unit
statistical
log
Prior art date
Application number
KR1020190074798A
Other languages
English (en)
Inventor
허제민
Original Assignee
허제민
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 허제민 filed Critical 허제민
Priority to KR1020190074798A priority Critical patent/KR20210000041A/ko
Publication of KR20210000041A publication Critical patent/KR20210000041A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

로그 데이터를 분석하는 방법 및 그 장치에 대한 기술이 제공 된다. 본 발명의 일 실시예에 따른 로그 데이터 분석 방법은 정형 로그 데이터를 제1 시간 단위를 기초로 그룹화 하여 제1 로그 데이터 그룹을 구성하고, 상기 제1 로그 데이터 그룹의 통계치를 포함하는 제1 통계 데이터를 생성하는 단계, 상기 제1 통계 데이터를 시계열 데이터베이스에 저장하는 단계, 상기 시계열 데이터베이스에 집계 쿼리(aggregation query)를 입력하여 상기 제1 시간 단위 보다 긴 제2 시간 단위의 통계치를 얻는 단계, 및 상기 제1 시간 단위의 통계치 및 상기 제2 시간 단위의 통계치 중 적어도 하나를 이용하여 로그 분석 결과를 생성하는 단계를 포함한다.

Description

로그 데이터의 실시간 분석 방법 및 그 장치{METHOD AND APPARATUS FOR ANALYZING LOG DATA IN REAL TIME}
본 발명은 로그 데이터를 분석하는 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 로그 데이터에서 획득하고자 하는 통계치를 실시간으로 추출하고 분석하는 방법 및 그 장치에 관한 것이다.
컴퓨팅 장치가 작업을 수행함으로써 발생되는 로그 데이터는 상기 컴퓨팅 장치가 수행하는 작업에 대한 다양한 정보를 포함한다. 상기 로그 데이터를 원래의 형태 그대로 저장한다면, 그 저장용량의 부담이 크게 된다. 또한, 상기 로그 데이터를 분석하여 고급 정보를 구성하기 위한 연산 부하 및 상기 로그 데이터를 읽기 위한 네트워크 부하도 부담스러운 수준이 된다. 따라서, 복수의 컴퓨팅 장치에서 출력되는 로그 데이터를 실시간 분석하고자 한다면 빠른 시간에 많은 양의 로그 데이터를 효율적으로 처리할 수 있는 기술의 제공이 필수적이다.
한국공개특허 2010-0132576 (2010.12.20)
본 발명이 해결하고자 하는 기술적 과제는, 로그 데이터가 지속적으로 발생됨에 따라 상기 로그 데이터가 축적되어 가더라도, 상기 로그 데이터의 분석에 따른 시스템 자원 요구량의 증가가 최대한 억제되는 로그 데이터 분석 방법 및 그 방법이 적용된 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 로그 데이터 분석 방법은 정형 로그 데이터를 제1 시간 단위를 기초로 그룹화 하여 제1 로그 데이터 그룹을 구성하고, 상기 제1 로그 데이터 그룹의 통계치를 포함하는 제1 통계 데이터를 생성하는 단계와, 상기 제1 통계 데이터를 시계열 데이터베이스에 저장하는 단계와, 상기 시계열 데이터베이스에 집계 쿼리(aggregation query)를 입력하여 상기 제1 시간 단위 보다 긴 제2 시간 단위의 통계치를 얻는 단계와, 상기 제1 시간 단위의 통계치 및 상기 제2 시간 단위의 통계치 중 적어도 하나를 이용하여 로그 분석 결과를 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 로그 데이터 분석 방법은, 분석 대상 컴퓨팅 장치로부터 수신된 로그 데이터를 기 지정된 포맷을 가진 상기 정형 로그 데이터로 변환하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 정형 로그 데이터로 변환하는 단계는, 상기 타겟 로그 데이터를 파싱하고 파싱된 데이터 각각을 구분자 또는 심볼 중 어느 하나로 분류하여, 상기 타겟 로그 데이터를 상기 정형 로그 데이터로 변환하는 단계를 포함할 수 있다.
일 실시예에서, 상기 정형 로그 데이터는, 상기 심볼의 필드 이름이 키(key) 이고, 상기 심볼의 데이터가 값(value)으로 매핑된 형태의 포맷이고, 상기 통계 데이터를 생성하는 단계는, 상기 심볼의 필드 이름을 기초로, 상기 심볼의 데이터와 관련된 통계 데이터를 획득하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제1 통계 데이터를 생성하는 단계는, 상기 정형 로그 데이터를 제3 시간 단위를 기초로 그룹화 하여 제2 로그 데이터 그룹을 구성하고, 상기 제2 로그 데이터 그룹의 통계치를 포함하는 제2 통계 데이터를 더 생성하는 단계를 포함하고, 상기 제1 통계 데이터를 시계열 데이터베이스에 저장하는 단계는, 상기 제2 통계 데이터를 상기 시계열 데이터베이스에 더 저장하는 단계를 포함하며, 상기 제3 시간 단위는 상기 제1 시간 단위보다 더 긴 시간일 수 있다. 이 때, 상기 제3 시간 단위는, 상기 제2 시간 단위에 기반하여 자동으로 조정되는 것일 수 있다. 또한, 상기 제3 시간 단위는, 상기 제2 시간 단위의 평균치가 길어질 수록 자동으로 길어지도록 조정되는 것일 수 있다.
일 실시예에서, 상기 제1 통계 데이터를 생성하는 단계는, 상기 제1 통계 데이터를 제3 시간 단위 동안 합산함으로써 제2 통계 데이터를 더 생성하는 단계를 포함하고, 상기 제1 통계 데이터를 시계열 데이터베이스에 저장하는 단계는, 상기 제2 통계 데이터를 상기 시계열 데이터베이스에 더 저장하는 단계를 포함하며, 상기 제3 시간 단위는 상기 제1 시간 단위보다 더 긴 시간일 수 있다.
일 실시예에서, 상기 제1 시간 단위는, 상기 정형 로그 데이터를 얻기 위한 데이터가 분석 대상 컴퓨팅 장치로부터 수신되는 주기에 기반하여 자동으로 결정되는 시간일 수 있다.
일 실시예에서, 상기 제1 통계 데이터를 생성하는 단계는, 제1 컴퓨팅 장치에서 수행되는 제1 태스크(task)와, 제2 컴퓨팅 장치에서 수행되는 제2 태스크가 상기 제1 로그 데이터 그룹을 구성하는 것 및 상기 제1 통계 데이터를 생성하는 것을 나누어 수행하는 단계를 포함할 수 있다. 이 때, 상기 나누어 수행하는 단계는, 상기 제1 태스크의 종료 전, 상기 제1 태스크에 의하여 생성된 통계치가 상기 제2 태스크에 전달되는 단계를 포함하고, 상기 제1 통계 데이터를 시계열 데이터베이스에 저장하는 단계는, 상기 제2 태스크가, 상기 제1 태스크에 의하여 생성된 통계치와 상기 제2 태스크에 의하여 생성된 통계치가 종합된 상기 제1 통계 데이터를 저장하는 단계를 포함할 수 있다.
본 발명의 다른 실시예에 따른 로그 데이터 분석 장치는, 네트워크 인터페이스, 상기 네트워크 인터페이스를 통하여 수신된 데이터를 분석하는 소프트웨어를 로드 하는 메모리, 상기 소프트웨어를 실행하는 프로세서를 포함할 수 있다. 이 때, 상기 소프트웨어는, 상기 네트워크 인터페이스를 통하여 수신된 데이터를 이용하여 얻어진 정형 로그 데이터를 제1 시간 단위를 기초로 그룹화 하여 제1 로그 데이터 그룹을 구성하는 인스트럭션과, 상기 제1 로그 데이터 그룹의 통계치를 포함하는 제1 통계 데이터를 생성하는 인스트럭션과, 상기 제1 통계 데이터를 시계열 데이터베이스에 저장하는 인스트럭션과, 상기 시계열 데이터베이스에 집계 쿼리(aggregation query)를 입력하여 상기 제1 시간 단위 보다 긴 제2 시간 단위의 통계치를 얻는 인스트럭션과, 상기 제1 시간 단위의 통계치 및 상기 제2 시간 단위의 통계치 중 적어도 하나를 이용하여 로그 분석 결과를 생성하는 인스트럭션을 포함할 수 있다.
도 1은 본 발명의 일 실시예에 따른 로그 데이터 분석 시스템을 설명하기 위한 개념도이다.
도 2는 본 발명의 다른 실시예에 따른 로그 데이터 분석 방법의 순서도이다.
도 3은 도 2의 일부 동작을 상세하게 설명하기 위한 순서도이다.
도 4는 본 발명의 또 다른 실시예에 따른 로그 데이터 분석 방법에서 로그 데이터를 정형 로그 데이터로 변환하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 또 다른 실시예에 따른 로그 데이터 분석 방법에서 단일 포맷의 로그 데이터가 변환된 정형 로그 데이터를 그룹화 하는 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 또 다른 실시예에 따른 로그 데이터 분석 방법에서 다양한 포맷의 로그 데이터가 변환된 정형 로그 데이터를 그룹화 하는 방법을 설명하기 위한 도면이다.
도 7은 도 2의 일부 동작을 상세하게 설명하기 위한 순서도이다.
도 8 내지 도 9는 본 발명의 또 다른 실시예에 따른 로그 데이터 분석 방법에서 통계 데이터를 생성하는 방법을 설명하기 위한 도면이다.
도 10은 본 발명의 또 다른 실시예에 따른 로그 데이터 분석 장치의 동작을 설명하기 위한 블록도이다.
도 11은 본 발명의 또 다른 실시예에 따른 로그 데이터 분석 장치의 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
이하, 도면들을 참조하여 본 발명의 몇몇 실시예들을 설명한다.
도 1을 참조하여 본 발명의 일 실시예에 따른 로그 데이터 분석 시스템을 설명한다. 로그 데이터(10)는 컴퓨팅 장치의 동작 기록을 포함하는 데이터이다. 예를 들어 로그 데이터(10)는 웹 로그 데이터로서, 웹 사이트 방문객이 웹 사이트에 방문하게 되면 액세스 로그, 에러 로그, 리퍼럴 로그, 에이전트 로그 등의 자료가 파일 형태로 웹서버에 기록되는 데이터를 의미할 수 있을 것이다.
상기 컴퓨팅 장치에 설치되어 실행되는 다양한 소프트웨어가 이러한 로그 데이터를 생성하여 출력할 수 있다. 상기 컴퓨팅 장치는, 예를 들어 물리 서버, 가상 서버 또는 연산 수단 및 네트워크 인터페이스가 구비된 생산 설비일 수 있다.
로그 데이터(10)는 한 대의 컴퓨팅 장치에 의하여 출력되는 것이거나, 하나의 온라인 서비스를 제공하기 위해 가동되는 복수의 컴퓨팅 장치에 의하여 출력되는 것이거나, 하나의 데이터센터 내부에 위치한 복수의 컴퓨팅 장치에 의하여 출력되는 것이거나, 하나의 생산 기지에 위치한 복수의 컴퓨팅 장치에 의하여 출력되는 것이거나, 하나의 하나의 생산 공정을 담당하는 복수의 컴퓨팅 장치에 의하여 출력되는 것일 수 있다.
즉, 로그 데이터(10)는 한 대의 컴퓨팅 장치에 의하여 출력되는 것을 기본으로 하나, 로그 관리 및 분석의 필요에 따라 로그의 일괄 관리 및 분석이 수행될 수도 있는 것이다. 로그 데이터(10)가 복수의 컴퓨팅 장치에 의하여 출력되는 것인 경우, 상기 복수의 컴퓨팅 장치의 로그 데이터를 제공받고, 기 지정된 순서(예를 들어, 로그 발생 시간)에 따라 상기 제공받은 로그 데이터를 연결하는 집계기(미도시)가 로그 데이터(10)를 구성할 수도 있을 것이다. 이 경우, 로그 데이터 분석 장치(100)는 상기 집계기로부터 로그 데이터(10)를 제공받는다.
몇몇 실시예에서, 로그 데이터(10)를 출력하는 컴퓨팅 장치가 클라우드 환경에서 동작하는 가상 서버인 경우, 상기 가상 서버와 로그 데이터 분석 장치(100)는 동일한 데이터 센터 또는 동일한 리전(region)에 배치됨으로써, 로그 데이터(10)의 송신에 따른 네트워크 비용 발생이 최대한 억제될 수 있다. 이 경우, 로그 데이터 분석 장치(100)는 로그 데이터(10)를 출력하는 데이터 센터 또는 리전(region)에 배치(deploy)되거나, 적어도 로그 데이터 분석 장치(100)의 로그 데이터 수집을 담당하는 에이전트가 로그 데이터(10)를 출력하는 데이터 센터 또는 리전(region)에 배치되는 것으로 이해될 수 있을 것이다.
로그 데이터 분석 장치(100)는 로그 데이터(10)를 수신한 후, 수신된 로그 데이터를 지정된 정형 로그 데이터로 변환하고, 변환된 정형 로그 데이터를 이용하여 통계 데이터를 얻으며, 상기 통계 데이터를 저장한다. 예를 들어, 로그 데이터 분석 장치(100)는 상기 통계 데이터를 시계열 데이터베이스(TSDB; Time Series DataBase; 이하, 'TSDB'라 한다)에 저장할 수 있다.
로그 데이터(10)를 제공하는 컴퓨팅 장치의 사용자가 구독하는 로그 분석 서비스가 제1 타입인 경우, 로그 데이터 분석 장치(100)는 로그 데이터(10)와 상기 변환된 정형 로그 데이터 모두 저장하지 않고, 상기 통계 데이터 만을 저장할 수 있다. 이에 따라, 로그 데이터 분석 장치(100)는 저장 용량 측면에서 가장 효율적인 방식으로 로그 데이터의 분석을 위한 정보를 저장할 수 있는 것이다. 상기 제1 타입은 최소한의 서비스만 제공되는 기본 타입일 수 있다.
로그 데이터(10)를 제공하는 컴퓨팅 장치의 사용자가 구독하는 로그 분석 서비스가 제2 타입인 경우, 로그 데이터 분석 장치(100)는 로그 데이터(10)와 상기 변환된 정형 로그 데이터 중 적어도 하나를 저장하고, 상기 통계 데이터를 더 저장할 수 있다. 상기 제2 타입은 로그 뷰어 등 추가 기능이 제공되는 고급 타입일 수 있다.
물론 몇몇 실시예에서, 로그 데이터 분석 장치(100)는 정형화 된 형태의 로그 데이터를 수신할 수도 있을 것이다. 이 경우, 로그 데이터 분석 장치(100)가 로그 데이터의 정형화를 수행할 필요가 없음은 물론이다.
상기 통계 데이터는 TSDB의 집계 쿼리(Aggregation Query)를 통하여 조회되고, 조회 결과 얻어진 데이터의 분석 결과를 이용하여 로그 분석 화면이 구성된다. 이러한 신규의 로그 데이터 처리 방식에 따라 로그 데이터 분석 장치(100)는 연산 부하 및 데이터 저장 자원을 최대한 낮은 수준으로 요구하면서 로그 데이터가 유연한 방식으로 분석될 수 있도록 지원할 수 있는 것이다.
예를 들어 로그 데이터에 기록된 정보를 통하여 웹 사이트의 방문객이 남긴 자료를 근거로 웹의 운영 및 방문 형태에 대한 정보를 분석할 수 있고, 로그 데이터 분석에 의해 얻은 방문자 수, 방문 유형, 각 웹 페이지 별 방문 횟수, 시간, 요일, 월, 계절별 접속 통계 등의 자료는 웹의 운영 및 마케팅 자료로 유용하게 이용할 수 있다.
이하 도 2를 참조하여 본 발명의 다른 실시예에 따른 로그 데이터 분석 방법에 대하여 상세히 설명한다. 본 실시예에 따른 로그 데이터 분석 방법은 컴퓨팅 장치에 의하여 수행될 수 있다. 예를 들어, 상기 컴퓨팅 장치는 도 1을 참조하여 설명한 로그 데이터 분석 장치일 수 있다. 이하, 본 실시예의 로그 데이터 분석 방법에 포함되는 각각의 동작의 주체가 명기되지 않는 경우, 그 주체는 로그 데이터 분석 장치(100)인 것으로 이해될 수 있을 것이다.
단계 S101에서, 로그 데이터가 실시간 수신된다. 즉, 로그 데이터를 발생시키는 컴퓨팅 장치(이하, '로그 데이터 발생 장치'라 함)가 로그 데이터를 발생 즉시 송신할 수 있다. 다만, 일 실시예에서는 로그 데이터 발생 장치가 주기적으로 그동안 발생된 로그 데이터를 취합하고, 취합된 로그 데이터가 수신될 수도 있을 것이다. 로그 데이터를 별도의 외부 데이터베이스나 서버에 저장하지 않음으로써 공간 복잡도(Space Complexity)를 줄일 수 있으며, 분석을 위한 타겟 로그 데이터를 획득하기 위해 별도의 외부 데이터베이스나 서버에 접근하지 않음으로써 시간 복잡도(Time Complexity)가 감소될 수 있다.
단계 S103에서 로그 데이터가 정형 로그 데이터 포맷으로 변환될 수 있다. 예를 들어 정형 로그 데이터의 포맷은 키와 값으로 구성된 맵 형태의 포맷일 수 있다. 또는, 상기 정형 로그 데이터의 포맷은 속성과 값의 쌍으로 구성된 JSON 형태의 포맷일 수도 있다. 여기서, JSON 형태는 속성-값 쌍(본 발명에서는 데이터 타입-키 쌍)으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷을 의미한다. 비동기 브라우저/서버 통신을 위해 넓게는 XML(Extensible Markup Language)을 대체하는 주요 데이터 포맷이다.
본 발명의 몇몇 실시예에 따른 정형 로그 데이터의 포맷은 이에 한정되지 않고 사용자가 지정한 포맷 또는 외부 서버에서 수신한 형태의 포맷일 수 있음에 유의한다.
로그 데이터를 정형 로그 데이터로 변환하는 방법을 도 3을 참조하여 상세히 설명한다.
단계 S111에서 로그 데이터가 파싱(parsing)될 수 있다. 일 실시예에 따라 타겟 로그 데이터에 대하여, 데이터를 구분하는 키와 데이터의 타입으로 구성된 로그의 포맷임을 인지한 경우 상기 타겟 로그 데이터가 파싱 될 수 있다.
데이터를 구분하는 키는 로그 데이터에 포함된 로그 정보로 예를 들어, 상술한 방문객의 ID, IP 주소 등의 식별 정보, 접속 날짜 및 시간 정보, URL 주소 정보, 접속 브라우저 정보 등을 포함한 액세스 로그에 대한 정보일 수 있다.
또한 데이터 타입은 각 키에 대응되는 정보의 입력 타입에 대한 정보로 예를 들어, 단어, 숫자, 날짜 및 텍스트 중 어느 하나 이상을 포함할 수 있다.
단계 S113에서 파싱 된 로그 데이터 각각이 구분자(delimiter) 또는 심볼 중 어느 하나로 분류될 수 있다. 구분자는 유의미한 데이터인 심볼을 구분하는 데이터 타입이다. 구분자는 예를 들어 공백일 수 있으나, 이에 한정되지 않고 다양한 종류의 특수문자(예를 들면, '%','/','*','&'등) 또는 지정된 단어일 수도 있음에 유의한다.
단계 S115에서 파싱 된 로그 데이터를 이용하여 심볼의 필드(field) 이름이 키(key)고, 심볼에 상응하는 로그 데이터가 값(value)으로 매핑(mapping) 된 형태의 정형 로그 데이터가 생성될 수 있다.
정형 로그 데이터의 포맷은 예를 들어, 심볼의 필드 이름이 키(key)고, 심볼의 데이터가 값(value)인 맵(map)형태의 데이터일 수 있고, 상기 정형 로그 데이터는 JSON형식으로 생성될 수도 있다. 다만 본 발명의 정형 로그 데이터의 포맷은 이에 한하지 않으며, 사용자가 저장 및 관리하고자 하는 포맷으로 다양하게 지정할 수 있는 것임에 유의한다.
이하 도 4를 참조하여, 본 발명의 몇몇 실시예에서 로그 데이터가 정형 로그 데이터로 변환되는 방법을 예시와 함께 보다 상세히 설명한다.
로그 데이터(200)가 수신되는 경우, 먼저 로그 데이터의 포맷을 인지하여 로그 데이터가 파싱 될 수 있다.
예를 들어 "...193.72.151.180 - - [28/Dec/2018:12:18:00 +0900] "GET /apps/cart.jsp?appID=5610 HTTP/1.0" 2004937 "http://www.robinson.com/search/main/categories/register.htm" "Mozilla/5.0 (Macintosh; U; IntelMac OS X 10_5_0) AppleWebKit/5352 (KHTML, like Gecko) Chrome/13.0.817.0 Safari/5352" 141 ..."의 데이터를 포함하는 로그 데이터가 수신된 경우, 상기 로그 데이터의 포맷에 기반하여, 수신된 로그 데이터(200)가 아파치(Apache) 서버의 접속 로그인 점이 식별될 수 있다.
아파치 서버의 접속 로그의 포맷은 예를 들어 ""%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" %D""와 같은 형태일 수 있다.
아파치 서버의 접속 로그는 심볼(symbol)과 구분자(delimiter)로 파싱 될 수 있다. 예를 들어 수신된 로그의 형태가 아파치 서버의 접속 로그의 포맷의 경우 구분자는 "\"를 포함하고, 심볼은 "%h, %l, %u, %t, %r, %>s, %b "등을 포함할 수 있다. 이 경우 예를 들어 "%r"심볼은 요청(request)의 최초 로그 데이터임을 의미하며, "%r"심볼의 데이터는 요청 함수(requestMethod), URL, 프로토콜(Protocol) 등으로 구성된 데이터로"GET /apps/cart.jsp?appID=5610 HTTP/1.0 "이와 같은 형태의 데이터 일 수 있다. 또는 수신 된 로그 데이터가 엔진 X(NginX) 서버의 접속 로그인 경우, "&request"심볼이 요청의 최초 로그 데이터임을 의미한다.
파싱된 로그 데이터는 지정된 포맷을 가지는 정형 로그 데이터(300)로 변환될 수 있다. 정형 로그 데이터의 포맷의 예시로 이해 JSON형태를 이용하나, 본 발명의 몇몇 실시예에 따른 정형 로그 데이터 포맷은 JSON형태에 한정되지 않음에 유의한다.
정형 로그 데이터(300)의 포맷이 JSON형태인 경우 파싱 된 로그 데이터는 키와 값(또는, 속성)이 매핑 된 형태의 데이터 집합으로 표현될 수 있다. 이 경우 키는 심볼의 이름 (예를 들어, "requestMethod", "URL"및 "Protocol")일 수 있고, 값은 심볼에 입력된 데이터(예를 들어, "GET", "/apps/cart.jsp?appID=5610"및 "HTTP/1.0")일 수 있다.
따라서 이 경우 키"requestMethod"에 대응되는 값은 "GET"이고, 키 "URL"에 대응되는 값은 "/apps/cart.jsp?appID=5610"이며, 마지막으로 키 "Protocol"에 대응되는 값은 "HTTP/1.0"일 수 있다.
지금까지 도 3 내지 도 4를 참조하여 로그 데이터를 정형 로그 데이터로 변환하는 방법을 설명하였으나, 단계 S101에서 수신되는 로그 데이터가 이미 정형화 된 형태로 수신될 수도 있으며, 이 때에는 단계 S103이 수행될 필요가 없음은 물론이다.
다시 도 2로 돌아와서 설명한다. 단계 S105에서, 정형 로그 데이터가 지정된 시간 단위를 기초로 그룹화 된다. 예를 들어, 상기 지정된 시간 단위가 1시간 단위인 경우, 상기 그룹화에 따라 상기 정형 로그 데이터가 1시간 단위로 구분되는 것으로 이해될 수 있을 것이다. 즉, 상기 그룹화의 결과로 상기 정형 로그 데이터와 별개의 '정형 로그 데이터 그룹'이 생성되는 것은 아니고, 상기 그룹화의 결과로 상기 정형 로그 데이터에 대해 그룹의 경계가 식별되는 것에 불과한 것이다.
몇몇 실시예에서, 상기 그룹화는 서로 다른 시간 단위를 기초로 복수 회 수행될 수 있다. 예를 들어, 최소 그룹화 단위로 정형 로그 데이터가 제1 그룹화 되고, 상기 최소 그룹화 단위 보다 더 큰 단위인 분석을 위한 그룹화 단위로 상기 정형 로그 데이터가 제2 그룹화 될 수 있다.
일 실시예에서, 상기 최소 그룹화 단위는 수신되는 모든 로그 데이터에 대하여 공통적으로 적용되는 시간 단위로서 고정된 시간 단위일 수 있다. 예를 들어, 상기 최소 그룹화 단위로 1분이 고려될 수 있을 것이다.
다른 실시예에서, 상기 최소 그룹화 단위는 로그 데이터를 송신하는 컴퓨팅 장치(호스트) 마다 다르게 설정될 수도 있을 것이다. 예를 들어, 로그 분석 서비스 사용자가 환경 설정을 할 수 있는 화면에서, 각 호스트 마다 상기 최소 그룹화 단위가 입력될 수 있을 것이다.
또 다른 실시예에서, 상기 최소 그룹화 단위는 로그 데이터를 송신하는 컴퓨팅 장치 마다 다르게 세팅되되, 각각의 컴퓨팅 장치가 로그 데이터를 송신하는 주기를 기준으로 자동으로 결정되고, 상기 로그 데이터의 송신 주기가 바뀜에 따라 자동으로 변경될 수도 있을 것이다. 예를 들어, 제1 컴퓨팅 장치가 로그 데이터를 송신하는 주기의 평균이 30초 인 경우, 상기 제1 컴퓨팅 장치의 로그 데이터에 적용되는 상기 최소 그룹화 단위는 30초로 자동 결정될 수 있을 것이다. 몇몇 실시예에서 상기 최소 그룹화 단위는 로그 데이터 송신 주기의 복수배(예를 들어 10배)로 자동 결정될 수 있음은 물론이다.
상기 최소 그룹화 단위가 로그 데이터 송신 주기에 기반하여 자동 결정됨으로써, 상기 최소 그룹화 단위에 따른 통계 데이터의 저장 용량이 절약될 수 있는 효과가 얻어진다. 예를 들어, 로그 데이터 송신 주기가 2분인 컴퓨팅 장치에 대하여, 상기 최소 그룹화 단위를 30초로 운영하는 것은 비효율적이다. 로그 데이터 송신 주기가 2분인 컴퓨팅 장치에 대하여는 상기 최소 그룹화 단위를 2분 또는 2분의 배수로 운영하는 것이 바람직한 것이다.
또한, 몇몇 실시예에서, 상기 분석을 위한 그룹화 단위는 상기 최소 그룹화 단위의 복수배로 자동 결정될 수도 있을 것이다. 예를 들어, 상기 분석을 위한 그룹화 단위가 상기 최소 그룹화 단위의 10배로 자동 결정될 수 있을 것이다.
몇몇 실시예에서, 상기 최소 그룹화 단위의 통계 데이터는, 실시간 분석이 지원되는 제1 기간 동안 저장이 유지되고, 상기 분석을 위한 그룹화 단위의 통계 데이터는 상기 제1 기간 보다 더 긴 기간인 제2 기간 동안 저장이 유지될 수 있다. 상기 분석을 위한 그룹화 단위는 분석을 위한 제1 그룹화 단위 및 분석을 위한 제2 그룹화 단위를 포함할 수 있다. 상기 제1 그룹화 단위 보다 상기 제2 그룹화 단위가 더 길다면, 상기 제1 그룹화 단위의 통계 데이터의 사이즈가 상기 제2 그룹화 단위의 통계 데이터의 사이즈보다 더 크므로, 상기 제1 그룹화 단위의 통계 데이터 보다 상기 제2 그룹화 단위의 통계 데이터가 더 오래 저장될 것이다.
또한, 다른 몇몇 실시예에서, 상기 그룹화는 지정된 시간 단위를 기준으로 하는 것이 아니라, 정형 로그 데이터를 이용하여 얻어지는 통계치의 변동폭이 한계치를 초과하는 시점을 기준으로 하는 것일 수도 있다. 예를 들어, 세션의 수가 지속적으로 10개 였으나, 특정 시점에 13개로 증가하는 경우 한계치(2개)를 초과하여 증가한 것이므로, 상기 특정 시점을 기준으로 그룹화가 수행될 수도 있을 것이다. 이 경우, 각각의 그룹에 상응하는 통계 데이터에는 해당 그룹의 시간 구간에 대한 정보가 더 포함될 것이다. 본 실시예에 따르면 통계 데이터의 변동이 발생되는 경우에 한하여 통계 데이터가 저장되므로, 저장 용량 절약의 효과를 얻을 수 있다.
그룹화와 관련된 상세한 설명은 이하 도 7 내지 도 9에서 좀 더 상세히 후술한다.
단계 S107에서, 그룹화 된 정형 로그 데이터를 이용하여 각각의 그룹에 상응하는 통계 데이터가 획득될 수 있다. 상기 통계 데이터가 데이터베이스에 저장될 수 있는 것이다. 상기 통계 데이터의 포맷은 속성과 값의 쌍으로 구성된 JSON 형태의 포맷일 수 있다.
로그 데이터가 시계열 데이터인 경우, 상기 통계 데이터는 TSDB에 저장될 수 있다. TSDB에 저장된 상기 통계 데이터는 집계 함수(Aggregation Function) 또는 집계 쿼리(Aggregation Query)를 통하여 조회될 수 있다.
일 실시예에서, 상기 TSDB는 엘라스틱서치(ElasticSearch)일 수 있다. 엘라스틱서치는 구조적 데이터 및 비구조적 데이터를 저장, 검색 및 분석할 수 있는 오픈소스 분산 검색 엔진으로, InfluxDB 및 OpenTSDB 보다 시계열 데이터에서 좋은 성능을 낼 수 있다. 따라서 본 발명의 몇몇 실시예에 따라 수신되는 로그 데이터, 변환 된 정형 로그 데이터 및 통계 데이터 중 어느 하나가 시계열 데이터인 경우, 바람직하게 엘라스틱서치를 이용하여 데이터 분석이 수행됨으로써 사용자가 원하는 데이터가 용이하게 추출될 수 있다.
다만 본 실시예에 따른 그룹화 된 정형 로그 데이터는 시계열 데이터에 한정되지 않으며, 상기 그룹화 된 정형 로그 데이터가 저장되는 데이터베이스는 TSDB에 한정되지 않음에 유의한다.
단계 S109에서, 상기 통계 데이터를 이용하여 수신된 로그 데이터를 분석한 데이터가 추출될 수 있다. 이 때, 집계 함수 또는 집계 쿼리를 이용하여 로그 데이터에서 획득하고자 하는 정보가 상기 통계 데이터로부터 획득될 수 있다.
본 발명의 몇몇 실시예에서, 도 2를 참조하여 설명된 로그 데이터 분석 방법의 적어도 일부 동작은 복수의 태스크에서 나뉘어 수행될 수 있다. 예를 들어, 정형 로그 데이터를 그룹화 하고, 각 그룹의 통계 데이터를 획득하는 동작(S105, S107)은 복수의 태스크에서 나뉘어 수행될 수 있다. 이에 따라, 서비스의 전면적인 중단 없이도 서비스 업데이트가 가능한 효과를 얻는다.
예를 들어, 제1 기준에 부합하는 로그의 그룹화 및 통계 데이터 획득을 처리하는 제1 태스크를 수행하는 제1 컴퓨팅 장치와 제2 기준에 부합하는 로그의 그룹화 및 통계 데이터 획득을 처리하는 제2 태스크를 수행하는 제2 컴퓨팅 장치로 서비스 서버를 구성하는 경우, 상기 제1 컴퓨팅 장치에 대하여 셧다운을 수반하는 서비스 업데이트를 하더라도, 상기 셧다운 시점에 아직 미처 TSDB에 저장하지 못한 통계 데이터를 상기 제2 태스크에 전달하여 TSDB에 저장하면 되므로, 서비스 업데이트에 따른 통계 데이터 loss를 방지할 수 있을 것이다. 다만, 이 경우 상기 제1 태스크가 상기 제2 태스크에 전달한 통계 데이터는 그대로 TSDB에 저장되지 않고, 제1 태스크의 통계치와 제2 태스크의 통계치와의 합산 과정을 거쳐서 TSDB에 저장함으로써 통계 데이터의 무결성이 보장된다.
예를 들어, 제1 호스트의 제1 로그 파일을 이용하여 1분 단위 통계 데이터로서 얻어진 202 코드 response time 평균과, 제2 호스트의 제2 로그 파일을 이용하여 1분 단위 통계 데이터로서 얻어진 202 코드 response time 평균이 합쳐진 response time 평균을 구할 때, 상기 제1 로그 파일의 202 코드의 count 통계와, 상기 제2 로그 파일의 202 코드의 count 통계를 사용하여 합산 대상인 2개의 통계 데이터의 count가 서로 다른 상황이 정확하게 반영되도록 할 수 있다.
이하 도 5를 참조하여 단일 포맷의 로그 데이터가 변환된 정형 로그 데이터를 복수개의 태스크에서 그룹화 하는 방법을 보다 자세히 설명한다.
단일 포맷의 로그 데이터(210)가 수신된 경우, 변환 된 정형 로그 데이터(310, 320)는 지정된 기준에 따라 복수개의 태스크에서 그룹화 될 수 있다.
변환 된 정형 로그 데이터가 복수개의 태스크에서 그룹화 됨으로써 이후 로그 데이터 분석을 위해 통계 데이터를 생성하기 용이해지는 효과가 있다. 이 경우 생성되는 통계 데이터는 각각 상이한 태스크에서 생성된 그룹과 관련된 정보가 추출된 것일 수 있다.
일 실시예에서, 각 태스크에 할당되는 처리량의 부하(load)가 관리될 수 있다. 이를 위해, 각 태스크에 가해지는 부하를 관리하고, 상기 부하에 기반하여 각 태스크에 최대한 균등한 부하가 가해지도록 그룹화 및 통계 데이터 생성 업무를 할당하는 부하 밸런싱(load balancing) 모듈이 제공될 수 있을 것이다.
또한 본 발명의 다른 실시예에 따라 정형 로그 데이터의 그룹화가 수행되는 태스크는 로그 데이터의 종류에 따라 지정될 수 있다. 수신된 로그 데이터의 포맷이 제1 포맷인 경우, 상기 수신된 로그 데이터는 제1 태스크에서 그룹화 될 수 있고, 수신된 로그 데이터의 포맷이 제2 포맷인 경우, 상기 수신된 로그 데이터는 제2 태스크에서 그룹화 될 수 있다.
정형 로그 데이터의 그룹화가 수행되는 태스크를 분류하는 기준은 예를 들어 요청 함수의 종류, 호스트의 URL, 호스트의 IP주소, 요청 프로토콜 및 상태 코드(Status Code)중 어느 하나일 수 있으나, 본 발명의 몇몇 실시예에 따른 정형 로그 데이터의 그룹화 기준은 이에 한하지 않고 로그 데이터에 포함된 다양한 종류의 심볼 정보가 될 수 있음에 유의한다.
도 5에는 로그 데이터(210)가 정형화 된 후, "GET"방식의 요청(311)에 따라 생성된 로그 데이터가 변환 된 제1 정형 로그 데이터 그룹(310)과, "POST"방식의 요청(321)에 따라 생성된 로그 데이터가 변환 된 제2 정형 로그 데이터 그룹(320)으로 분리 된 것이 도시되어 있다. 제1 정형 로그 데이터 그룹(310)을 처리하는 태스크와, 제2 정형 로그 데이터 그룹(320)을 처리하는 태스크는 서로 상이할 수 있는 것이다.
본 발명의 몇몇 실시예에 따르면 수신된 로그 데이터에 대하여 정형화를 수행하므로, 서로 다른 소프트웨어에서 출력되는 서로 다른 포맷의 로그에 대하여도 상기 정형화를 거쳐 동일한 방식으로 로그 분석이 수행될 수 있다. 관련하여, 도 6을 참조하여 설명한다.
아파치 서버에서 생성된 로그(220)와 엔진 X 서버에서 생성된 로그(221)가 모두 수신된 경우, 각각의 로그의 포맷은 상이하나 변환 된 정형 로그 데이터(330, 340)의 포맷은 JSON 형식으로 동일할 수 있다.
이 경우에도 정형 로그 데이터가 그룹화되는 태스크를 분류하는 기준은 예를 들어 요청 함수의 종류, 호스트의 URL, 호스트의 IP주소, 요청 프로토콜 및 상태 코드(Status Code)중 어느 하나일 수 있으나, 본 발명의 몇몇 실시예에 따른 정형 로그 데이터가 그룹화되는 태스크를 분류하는 기준은 이에 한하지 않고 로그 데이터에 포함된 다양한 종류의 심볼 정보가 될 수 있음에 유의한다.
도 6에는 로그 데이터(220, 221)가 정형화 된 후, "GET"방식의 요청(331)에 따라 생성된 로그 데이터가 변환 된 제3 정형 로그 데이터 그룹(330)과, "POST"방식의 요청(341)에 따라 생성된 로그 데이터가 변환 된 제4 정형 로그 데이터 그룹(340)으로 분리 된 것이 도시되어 있다. 제3 정형 로그 데이터 그룹(330)을 처리하는 태스크와, 제4 정형 로그 데이터 그룹(340)을 처리하는 태스크는 서로 상이할 수 있는 것이다.
이하 도 7을 참조하여 지정된 시간 단위를 기초로 정형 로그 데이터가 그룹화 되는 방법에 대하여 상세히 설명한다.
단계 S121에서, 변환 된 정형 로그 데이터가 제1 시간 단위를 기초로 그룹화 될 수 있다. 상기 시간 단위는 최소 그룹화 단위일 수 있다. 단계 S123에서, 변환 된 정형 로그 데이터가 제2 시간 단위를 기초로 그룹화 될 수 있다. 또는, 상기 제1 시간 단위를 기초로 그룹화 된 정형 로그 데이터가 다시 제2 시간 단위를 기초로 그룹화 될 수도 있다.
본 발명의 몇몇 실시예에 따라 정형 로그 데이터의 그룹화가 복수 회 수행될 수 있다. 일 실시예에 따르면 최소 그룹화 단위인 제1 시간 단위를 기초로 정형 로그 데이터가 그룹화 된 후, 분석을 위한 그룹화 단위인 제2 시간 단위를 기초로 정형 로그 데이터가 한번 더 그룹화 될 수 있다.
또는 다른 실시예에 따라 상기 제1 시간 단위를 기초로 하는 정형 로그 데이터의 그룹화 및 상기 제2 시간 단위를 기초로 하는 정형 로그 데이터의 그룹화가 병렬적으로 수행될 수도 있다.
단계 S125에서, 각각의 그룹에 상응하는 통계 데이터가 생성된다. 생성된 상기 통계 데이터는 TSDB에 저장될 수 있다. 상기 통계 데이터는 로그 데이터 분석의 기초 데이터가 된다.
로그 데이터는 시간에 따라 생성되는 시계열 데이터인 바, 상기 그룹화된 정형 로그 데이터의 통계 데이터가 저장되는 통계 데이터도 시계열 데이터 일 수 있다. 통계 데이터가 TSDB에 저장됨으로써, 통계 데이터를 분석하기 위한 집계 함수 또는 집계 쿼리의 사용이 용이해질 수 있다. 상기 통계 데이터를 이용하여 로그 데이터에서 획득하고자 하는 정보가 추출될 수 있다. 예를 들어 집계 함수를 이용하여 통계 데이터에서 원하는 정보만 획득하고 가공된 정보만 추출할 수 있고, 상기 획득한 정보는 외부에 출력할 수도 있다.
상기 집계 함수는 예를 들어 max (최대값), min (최소값), sum (합계), avg (평균값) 및 count (타겟 데이터의 개수)중 어느 하나일 수 있다. 다만 상기 집계 함수의 종류는 이에 한하지 않고 통상의 기술자가 용이하게 설계, 변경할 수 있는 범위내 다양한 집계 함수를 모두 포함한다.
이하 도 8 내지 도 9를 참조하여, 정형 로그 데이터 그룹에 대한 통계 데이터를 생성하는 방법을 상세히 설명한다.
정형 로그 데이터(350)를 이용하여, 제1 시간 단위(401)의 제1 통계 데이터(400) 및 제2 시간 단위(411)의 제2 통계 데이터(410)가 생성될 수 있다.
제1 시간 단위(401)가 1 분이라면, 제1 통계 데이터(400)는 1분 동안 수신된 로그 데이터에 대한 정보를 포함한다. 제1 통계 데이터(400)는 상기 1분 동안 수신 된 로그 데이터에 포함된 상태 코드(Status Code)의 종류, 요청 시간(request time)의 합계, 최소값, 최대값, 평균값 및 로그 데이터의 개수에 대한 정보(402)를 포함할 수 있다.
제1 통계 데이터(400)를 해설한다. 요청 시간(request time)과 응답 크기(response size)에 대한 통계치 중 데이터의 개수(count)가 2인 것으로부터, 1분 동안 수신된 로그 데이터의 개수는 2개임을 알 수 있다. 또한 1분 동안 수신된 로그 데이터의 정보에 대하여, 1개의 로그 데이터는 GET 방식을 다른 1개의 로그 데이터는 POST 방식을 이용함으로써 생성된 로그임을 알 수 있다. 마찬가지로 각각의 로그 데이터의 상태 코드(status code)에 대하여 1개의 로그 데이터는 '200', 다른 1개의 로그 데이터는 '404'이고, 상기 수신된 2개의 로그 데이터가 포함하는 요청 시간(request time)과 응답 크기(response size) 정보의 합, 최소값, 최대값 및 평균에 대한 정보(402)도 알 수 있다.
제2 시간 단위(411)가 1 시간이라면, 제2 통계 데이터(410)는 1시간 동안 수신 된 로그 데이터에 포함된 상태 코드(Status Code)의 종류, 요청 시간(request time)의 합계, 최소값, 최대값, 평균값 및 로그 데이터의 개수에 대한 정보(412)를 포함할 수 있다.
제2 통계 데이터(410)를 해설한다. 요청 시간(request time)과 응답 크기(response size)에 대한 통계치 중 데이터의 개수(count)가 200인 것으로부터, 1시간 동안 수신된 로그 데이터의 개수는 200개임을 알 수 있다.
또한, 1시간 동안 수신된 로그 데이터 중, 5개의 로그 데이터는 상태 코드가 ‘200’이고, 다른 11개의 로그 데이터는 상태 코드가‘404’임을 알 수 있다.
사용자가 상태 코드 '200'인 로그 데이터 및 상태 코드 '404'인 로그 데이터 정보만 획득하고 하는 경우, 상태 코드가 '200' 또는 '404'가 아닌 로그 데이터에 대한 정보는 표시하지 않을 수 있다. 마찬가지로 200 개의 로그 데이터 중 GET 방식을 이용함으로써 생성된 로그 데이터와 POST 방식을 이용함으로써 생성된 로그 데이터의 개수만 알고자 하는 경우, 상기 GET 방식과 POST 방식 외의 동작을 수행함으로써 생성된 로그 데이터에 대한 정보는 표시하지 않을 수 있다. 이와 같이 본 발명의 몇몇 실시예에 따라 지정된 정보에 대한 통계치만 연산함으로써 컴퓨팅 자원을 절약 할 수 있다.
또한, 제2 통계 데이터(410)는, 상기 수신된 200개의 로그 데이터가 포함하는 요청 시간(request time)과 응답 크기(response size) 정보의 합, 최소값, 최대값 및 평균에 대한 정보(412)도 포함한다.
지금까지 설명된 몇몇 실시예에서, 제1 시간 단위의 제1 통계 데이터를 TSDB에 축적하면, 집계 쿼리를 이용하여 상기 제1 시간 단위보다 더 긴 단위의 통계를 쉽게 얻을 수 있다. 예를 들어, 1분 단위 통계 데이터를 TSDB에 축적하면 집계 쿼리를 이용하여 5분 단위의 통계를 얻을 수 있다. 물론, 집계 쿼리를 이용하여 하루 단위의 통계를 얻을 수도 있을 것이다. 그런데, 이런 경우 하루 단위의 통계를 얻기 위하여 60 X 24 = 1440개의 1분 단위 통계 데이터가 합산 되어야 한다. 이는 연산 자원을 과도하게 소모한다. 따라서, 상기 제1 시간 단위 보다 더 긴 제2 통계 데이터를 더 TSDB에 저장함으로써, 긴 시간 단위의 통계를 얻는 시간을 절약할 수 있다.
상기 제1 시간 단위가 최소 단위인 경우, 상기 제1 시간 단위의 통계 데이터는 실시간 조회 지원 기간에 해당하는 기간 동안만 저장하고, 그 이후에는 삭제될 수 있다. 이러한 경우에 대비하는 측면에서도, 상기 제1 시간 단위 보다 더 긴 제2 시간 단위의 통계 데이터가 TSDB에 저장되는 것이다.
몇몇 실시예에서, 상기 제2 시간 단위는 로그 데이터 분석을 위하여 조회되는 통계 데이터의 시간 구간에 따라 자동으로 조정될 수도 있을 것이다. 예를 들어, 로그 데이터 분석을 위하여 조회되는 통계 데이터의 시간 구간이 길수록 상기 제2 시간 단위가 길어지거나, 상기 제2 시간 단위보다 더 긴 제3 시간 단위의 통계 데이터가 추가로 저장됨으로써, 로그 데이터 분석을 위하여 조회되는 통계 데이터의 TSDB 응답 시간이 최적화되도록 할 수 있다.
몇몇 실시예에서, 1 시간 동안의 정형 로그 데이터 그룹에서 통계치를 추출하여 제2 통계 데이터(410)를 얻는 것이 아니라, 1 분 단위의 제1 통계 데이터(400)를 합산해 가면서 제2 통계 데이터(410)를 완성할 수도 있다. 도 9를 참조하여 상세히 설명한다.
도 9에 도시된 바에 따르면, 정형 로그 데이터(360)가 최소 시간 단위인 분 단위(421)에 따라 그룹화 되고, 각 그룹에 상응하는 통계 데이터(420)가 생성될 수 있다. 통계 데이터(420)는 상기 1분 간격으로 수신 된 로그 데이터에 포함된 상태 코드(Status Code)의 종류, 요청 시간(request time)의 합계, 최소값, 최대값, 평균값 및 로그 데이터의 개수에 대한 정보(421)를 포함할 수 있다.
이후 1분 간격의 정형 로그 데이터 그룹에 상응하는 복수개의 통계 데이터(420)를 종합하여 1시간(431) 동안의 통계 데이터(430)가 생성될 수 있다. 즉, 1분 간격으로 수신된 로그 데이터에 대한 통계 데이터를 60개씩 종합함으로써, 별도로 1시간 간격으로 수신된 로그 데이터에 대한 통계 데이터를 생성하지 않고서도 상기 1시간 간격으로 수신된 로그 데이터에 대한 통계치를 알 수 있다.
예를 들어 도 9 에 도시된 정형 로그 데이터(360)를 최소 시간 단위인 1분 단위로 그룹화하여 생성된 통계 데이터(420)는 각각 1분 간격으로 수신된 로그 데이터에 대한 통계치를 포함할 수 있다. 따라서 1분 간격으로 수신된 로그 데이터에 대한 통계치를 포함하는 통계 데이터(420)를 60개씩 계속 더하는 방식으로 그룹화 하는 경우, 1시간(431) 동안 수신된 로그 데이터에 대한 통계치를 포함하는 통계 데이터(430)가 생성될 수 있다.
이와 같이 최소 시간 단위를 기초로 생성된 복수개의 통계 데이터(420)를 이용하여 생성된 분석 시간 단위(431) 기반의 통계 데이터(430)가 포함하는 정보는 최소 시간 단위를 기초로 생성된 복수개의 통계 데이터(420)의 통계치일 수 있다. 예를 들어 도 9에 도시된 1시간 동안의 로그 데이터에 대한 정보를 포함하는 통계 데이터(430)가 포함하는 요청 시간(request time)의 평균(avg)값은, 1분 간격의 로그 데이터에 대한 정보를 포함하는 통계 데이터(420)가 포함하는 각각의 요청 시간의 합계(sum)를 1분 간격의 로그 데이터에 대한 정보를 포함하는 통계 데이터(420)가 포함하는 로그 데이터의 개수(count)로 나눈 수치일 수 있다.
이하, 도 10을 참조하여, 본 발명의 또 다른 실시예에 따른 로그 데이터 분석 장치의 구성 및 동작을 설명한다. 본 실시예에 따른 로그 데이터 분석 장치(100)의 동작과 관련하여, 도 1 내지 도 9를 참조하여 설명된 실시예들의 적용이 가능함을 유의한다.
본 실시예에 따른 로그 데이터 분석 장치(100)는 로그 데이터 파싱부(102), 정형 로그 데이터 변환부(103), 태스크 수행부(107) 및 통계 데이터 생성부(108)를 포함하고, 다른 몇몇 실시예에 따라 태스크 관리부(106), 통계 데이터 분석부(109), 인터페이스(110), 로그 데이터 DB(101), 정형 로그 데이터DB(104) 및 통계 데이터 DB(105)를 더 포함할 수 있다.
일 실시예에 따른 인터페이스(110)는 외부 서버 및 사용자로부터 로그 데이터를 수신할 수 있고, 정형 로그 데이터의 포맷과 관련된 정보를 더 수신할 수 있다.
상기 수신한 로그 데이터는 로그 데이터 DB(101)에 저장되며, 정형 로그 데이터의 포맷과 관련된 정보는 정형 로그 데이터 DB(104)에 저장될 수 있다.
일 실시예에 따른 로그 데이터 DB(101)는 실시간으로 생성되는 로그 데이터가 저장될 수 있다.
이 경우, 로그 데이터 DB(101)에 생성되는 모든 로그 데이터가 축적되어 저장되는 것은 아니고, 실시간으로 로그 데이터 파싱부(102)에 상기 로그 데이터를 전달해 주는 것임에 유의한다.
일 실시예에 따른 로그 데이터 파싱부(102)는 로그 데이터 DB(101)로부터 로그 데이터를 수신하여, 각각의 로그 데이터를 파싱(parsing)할 수 있다. 파싱 된 로그 데이터 요소 각각은 구분자 및 심볼 중 어느 하나로 분류될 수 있다.
다만, 본 발명의 몇몇 실시예에 따라 분류되는 카테고리의 종류는 구분자 및 심볼 중 어느 하나로 한정되지 않으며, 로그 데이터의 포맷에 따라 파싱 된 로그 데이터 요소 각각이 다른 카테고리로 구분될 수 있음에 유의한다.
일 실시예에 따른 정형 로그 데이터 변환부(103)는 로그 데이터 파싱부(102)로부터 파싱 된 로그 데이터를 수신하고, 지정된 정형 로그 데이터의 포맷을 기초로 파싱 된 로그 데이터를 정형 로그 데이터로 변환할 수 있다.
상기 지정 된 정형 로그 데이터의 포맷은 정형 로그 데이터 DB(104)로부터 수신할 수 있다.
일 실시예에 따른 정형 로그 데이터 DB(104)는 외부 서버 또는 사용자로부터 정형 로그 데이터의 포맷에 대한 정보를 수신할 수 있다.
정형 로그 데이터의 포맷은 예를 들어, 심볼의 필드 이름이 키(key)고, 심볼의 데이터가 값(value)인 맵(map)형태의 데이터일 수 있고, 상기 정형 로그 데이터는 JSON형식으로 생성될 수도 있다. 다만 본 발명의 정형 로그 데이터의 포맷은 이에 한하지 않으며, 사용자가 저장 및 관리 하고자 하는 포맷으로 다양하게 지정할 수 있는 것임에 유의한다.
일 실시예에 따른 태스크 관리부(106)는 정형 로그 데이터를 그룹화 하는 태스크의 로드(load)를 관리할 수 있다. 예를 들어, 태스크 관리부(106)는 각 태스크에 가해지는 부하를 관리하고, 상기 부하에 기반하여 각 태스크에 최대한 균등한 부하가 가해지도록 그룹화 및 통계 데이터 생성 업무를 할당할 수 있다.
태스크 관리부(106)는, 태스크 종료 전에 태스크에 의하여 생성된 측정치가 통계 데이터의 형태로 완전하게 패키징 되어 TSDB에 저장되기 전 유실되지 않도록 관리하는 동작도 수행할 수 있다. 예를 들어, 제1 태스크를 수행하는 제1 컴퓨팅 장치와 제2 태스크를 수행하는 제2 컴퓨팅 장치로 서비스 서버를 구성하는 경우, 상기 제1 컴퓨팅 장치에 대하여 셧다운을 수반하는 서비스 업데이트를 하더라도, 상기 셧다운 시점에 아직 미처 TSDB에 저장하지 못한 통계 데이터는, 태스크 관리부(106)의 제어에 의하여 상기 제2 태스크에 전달되고, 상기 제2 태스크에 의하여 TSDB에 저장될 수 있다. 이 경우 상기 제1 태스크가 상기 제2 태스크에 전달한 통계 데이터는 그대로 TSDB에 저장되지 않고, 제1 태스크의 통계치와 제2 태스크의 통계치와의 합산 과정을 거쳐서 TSDB에 저장함으로써 통계 데이터의 무결성이 보장된다.
일 실시예에 따른 태스크 수행부(107)는 정형 로그 데이터의 그룹화를 수행할 수 있다.
수신된 로그 데이터의 포맷이 제1 포맷인 경우 태스크 수행부(107)는 상기 수신된 로그 데이터를 제1 태스크에서 그룹화 할 수 있고, 수신된 로그 데이터의 포맷이 제2 포맷인 경우 태스크 수행부(107)는 상기 수신된 로그 데이터를 제2 태스크에서 그룹화 할 수 있다.
또한 상기 제1 포맷인 상기 타겟 로그 데이터는, 제1 기능을 수행함으로써 생성되는 로그 데이터이고, 상기 제2 포맷인 상기 타겟 로그 데이터는, 제2 기능을 수행함으로써 생성되는 로그 데이터일 수 있음에 유의한다.
일 실시예에 따른 통계 데이터 생성부(108)는 집계 함수를 이용하여 그룹화 된 정형 로그 데이터에서 추출하고자 하는 통계 데이터를 생성할 수 있다.
생성된 상기 통계 데이터는 통계 데이터 DB(105)에 저장될 수 있다. 로그 데이터는 시간에 따라 생성되는 시계열 데이터인 바, 상기 그룹화된 정형 로그 데이터의 통계 데이터가 저장되는 통계 데이터 DB(105)가 TSDB일 수 있음에 유의한다. 통계 데이터 DB(105)가 TSDB임으로써, 이후 통계 데이터를 분석하기 위한 집계 함수 사용이 용이해질 수 있다.
특히, 실시간으로 수신되는 로그 데이터는 시계열 데이터일 수 있으므로, 이 경우 엘라스틱서치(ElasticSearch)를 이용하여 데이터를 용이하게 저장, 검색 및 분석할 수 있다. 엘라스틱서치는 구조적 데이터 및 비구조적 데이터를 저장, 검색 및 분석할 수 있는 오픈소스 분산 검색 엔진이나, InfluxDB 및 OpenTSDB 보다 시계열 데이터에서 좋은 성능을 낼 수 있다. 따라서 본 발명의 몇몇 실시예에 따라 수신되는 로그 데이터, 변환 된 정형 로그 데이터 및 통계 데이터 중 어느 하나가 시계열 데이터인 경우, 바람직하게 엘라스틱서치를 이용하여 데이터 분석이 수행됨으로써 사용자가 원하는 데이터가 용이하게 추출될 수 있다.
일 실시예에 따른 통계 데이터 분석부(109)는 통계 데이터 DB(105)에서 통계 데이터를 수신하고 추출하고자 하는 정보를 추출할 수 있다.
예를 들어 집계 함수를 이용하여 통계 데이터에서 원하는 정보만 획득할 수 있고, 상기 획득한 정보를 인터페이스(110)에 전달하여 외부에 출력할 수도 있다.
도 11은 본 발명의 또 다른 실시예에 따른 로그 데이터 분석 장치의 하드웨어 구성도이다.
도 11에 도시된 바와 같이, 본 발명의 또 다른 실시예에 따른 로그 데이터 분석 방법을 수행하는 컴퓨팅 장치(100)는 프로세서(120), 메모리(130), 스토리지(160), 네트워크 인터페이스(140), 디스플레이(150)를 포함하고 몇몇 실시예에서 시스템 버스를 더 포함할 수 있다.
메모리(130)에 로드 되어 저장되는 하나 이상의 인스트럭션(131, 132, 133)은 프로세서(120)를 통하여 실행된다. 본 실시예에 따른 로그 데이터 분석 방법을 수행하는 컴퓨팅 장치(100)는 별도의 설명이 없더라도 도 1 내지 도 9를 참조하여 설명한 로그 데이터 분석 방법을 수행할 수 있는 점을 유의한다.
네트워크 인터페이스(140)는 로그 데이터(134)를 수신할 수 있다. 상기 수신된 정보는 스토리지(160)에 저장되도록 할 수 있다.
상기 하나 이상의 인스트럭션은 로그 데이터 변환 인스트럭션(131), 정형 로그 데이터 그룹화 인스트럭션(132) 및 통계 데이터 분석 인스트럭션(133)을 포함할 수 있다.
일 실시예에서, 로그 데이터 변환 인스트럭션(131)이 실행됨으로써, 로그 데이터(134)가 구분자 또는 심볼 중 어느 하나로 파싱되고, 로그 데이터(134)가 지정된 포맷의 정형 로그 데이터로 변환될 수 있고, 상기 정형 로그 데이터 포맷은 상기 심볼의 필드가 키 이고, 상기 심볼의 데이터가 값으로 매핑된 형태일 수 있다.
일 실시예에서 정형 로그 데이터 그룹화 인스트럭션(132)이 실행됨으로써, 정형 로그 데이터가 지정된 시간 단위를 기초로 그룹화 될 수 있고, 상기 시간 단위는 시간 간격일 수 있다.
또한, 다른 실시예에서 정형 로그 데이터 그룹화 인스트럭션(132)이 실행됨으로써, 컴퓨팅 장치가 제1 기능을 수행함으로써 생성되는 로그 데이터의 포맷이 제1 포맷인 경우 정형 로그 데이터가 제1 태스크에서 그룹화 되고, 컴퓨팅 장치가 제2 기능을 수행함으로써 생성되는 로그 데이터의 포맷이 제2 포맷인 경우 정형 로그 데이터가 제2 태스크에서 그룹화 될 수 있으며, 다른 실시예에서 상기 제1 태스크와 상기 제2 태스크가 병렬적으로 수행될 수 있다.
일 실시예에서 통계 데이터 분석 인스트럭션(133)이 실행됨으로써, 그룹화 된 통계 데이터에 집계 함수를 이용하여 상기 로그 데이터의 분석 데이터가 추출될 수 있다.
지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.
상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (10)

  1. 컴퓨팅장치에 의해 수행되는 방법에 있어서,
    정형 로그 데이터를 제1 시간 단위를 기초로 그룹화 하여 제1 로그 데이터 그룹을 구성하고, 상기 제1 로그 데이터 그룹의 통계치를 포함하는 제1 통계 데이터를 생성하는 단계;
    상기 제1 통계 데이터를 시계열 데이터베이스에 저장하는 단계;
    상기 시계열 데이터베이스에 집계 쿼리(aggregation query)를 입력하여 상기 제1 시간 단위 보다 긴 제2 시간 단위의 통계치를 얻는 단계; 및
    상기 제1 시간 단위의 통계치 및 상기 제2 시간 단위의 통계치 중 적어도 하나를 이용하여 로그 분석 결과를 생성하는 단계를 포함하는,
    로그 데이터 분석 방법.
  2. 제1 항에 있어서,
    분석 대상 컴퓨팅 장치로부터 수신된 로그 데이터를 기 지정된 포맷을 가진 상기 정형 로그 데이터로 변환하는 단계를 더 포함하고,
    상기 정형 로그 데이터로 변환하는 단계는, 상기 타겟 로그 데이터를 파싱하고 파싱된 데이터 각각을 구분자 또는 심볼 중 어느 하나로 분류하여, 상기 타겟 로그 데이터를 상기 정형 로그 데이터로 변환하는 단계를 포함하며,
    상기 정형 로그 데이터는, 상기 심볼의 필드 이름이 키(key) 이고, 상기 심볼의 데이터가 값(value)으로 매핑된 형태의 포맷이고,
    상기 통계 데이터를 생성하는 단계는, 상기 심볼의 필드 이름을 기초로, 상기 심볼의 데이터와 관련된 통계 데이터를 획득하는 단계를 포함하는,
    로그 데이터 분석 방법.
  3. 제1 항에 있어서,
    상기 제1 통계 데이터를 생성하는 단계는,
    상기 정형 로그 데이터를 제3 시간 단위를 기초로 그룹화 하여 제2 로그 데이터 그룹을 구성하고, 상기 제2 로그 데이터 그룹의 통계치를 포함하는 제2 통계 데이터를 더 생성하는 단계를 포함하고,
    상기 제1 통계 데이터를 시계열 데이터베이스에 저장하는 단계는,
    상기 제2 통계 데이터를 상기 시계열 데이터베이스에 더 저장하는 단계를 포함하며,
    상기 제3 시간 단위는 상기 제1 시간 단위보다 더 긴 시간인,
    로그 데이터 분석 방법.
  4. 제3 항에 있어서,
    상기 제3 시간 단위는, 상기 제2 시간 단위에 기반하여 자동으로 조정되는 것인,
    로그 데이터 분석 방법.
  5. 제4 항에 있어서,
    상기 제3 시간 단위는, 상기 제2 시간 단위의 평균치가 길어질 수록 자동으로 길어지도록 조정되는 것인,
    로그 데이터 분석 방법.
  6. 제1 항에 있어서,
    상기 제1 통계 데이터를 생성하는 단계는,
    상기 제1 통계 데이터를 제3 시간 단위 동안 합산함으로써 제2 통계 데이터를 더 생성하는 단계를 포함하고,
    상기 제1 통계 데이터를 시계열 데이터베이스에 저장하는 단계는,
    상기 제2 통계 데이터를 상기 시계열 데이터베이스에 더 저장하는 단계를 포함하며,
    상기 제3 시간 단위는 상기 제1 시간 단위보다 더 긴 시간인,
    로그 데이터 분석 방법.
  7. 제1 항에 있어서,
    상기 제1 시간 단위는,
    상기 정형 로그 데이터를 얻기 위한 데이터가 분석 대상 컴퓨팅 장치로부터 수신되는 주기에 기반하여 자동으로 결정되는 시간인,
    로그 데이터 분석 방법.
  8. 제1 항에 있어서,
    상기 제1 통계 데이터를 생성하는 단계는,
    제1 컴퓨팅 장치에서 수행되는 제1 태스크(task)와, 제2 컴퓨팅 장치에서 수행되는 제2 태스크가 상기 제1 로그 데이터 그룹을 구성하는 것 및 상기 제1 통계 데이터를 생성하는 것을 나누어 수행하는 단계를 포함하는,
    로그 데이터 분석 방법.
  9. 제8 항에 있어서,
    상기 나누어 수행하는 단계는,
    상기 제1 태스크의 종료 전, 상기 제1 태스크에 의하여 생성된 통계치가 상기 제2 태스크에 전달되는 단계를 포함하고,
    상기 제1 통계 데이터를 시계열 데이터베이스에 저장하는 단계는,
    상기 제2 태스크가, 상기 제1 태스크에 의하여 생성된 통계치와 상기 제2 태스크에 의하여 생성된 통계치가 종합된 상기 제1 통계 데이터를 저장하는 단계를 포함하는,
    로그 데이터 분석 방법.
  10. 네트워크 인터페이스;
    상기 네트워크 인터페이스를 통하여 수신된 데이터를 분석하는 소프트웨어를 로드 하는 메모리; 및
    상기 소프트웨어를 실행하는 프로세서를 포함하되,
    상기 소프트웨어는,
    상기 네트워크 인터페이스를 통하여 수신된 데이터를 이용하여 얻어진 정형 로그 데이터를 제1 시간 단위를 기초로 그룹화 하여 제1 로그 데이터 그룹을 구성하는 인스트럭션;
    상기 제1 로그 데이터 그룹의 통계치를 포함하는 제1 통계 데이터를 생성하는 인스트럭션;
    상기 제1 통계 데이터를 시계열 데이터베이스에 저장하는 인스트럭션;
    상기 시계열 데이터베이스에 집계 쿼리(aggregation query)를 입력하여 상기 제1 시간 단위 보다 긴 제2 시간 단위의 통계치를 얻는 인스트럭션; 및
    상기 제1 시간 단위의 통계치 및 상기 제2 시간 단위의 통계치 중 적어도 하나를 이용하여 로그 분석 결과를 생성하는 인스트럭션을 포함하는,
    로그 데이터 분석 장치.
KR1020190074798A 2019-06-24 2019-06-24 로그 데이터의 실시간 분석 방법 및 그 장치 KR20210000041A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190074798A KR20210000041A (ko) 2019-06-24 2019-06-24 로그 데이터의 실시간 분석 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190074798A KR20210000041A (ko) 2019-06-24 2019-06-24 로그 데이터의 실시간 분석 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20210000041A true KR20210000041A (ko) 2021-01-04

Family

ID=74127266

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190074798A KR20210000041A (ko) 2019-06-24 2019-06-24 로그 데이터의 실시간 분석 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR20210000041A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722194A (zh) * 2021-08-02 2021-11-30 中移(杭州)信息技术有限公司 日志统计方法、装置、设备及存储介质
KR102519006B1 (ko) * 2022-11-21 2023-04-07 주식회사 에스티씨랩 디지털 기반 로그 데이터의 조회 속도 향상을 위한 로그 데이터 관리 방법 및 서버

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100132576A1 (en) 2006-04-20 2010-06-03 Detnet South Africa (Pty) Limited Detonator System

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100132576A1 (en) 2006-04-20 2010-06-03 Detnet South Africa (Pty) Limited Detonator System

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722194A (zh) * 2021-08-02 2021-11-30 中移(杭州)信息技术有限公司 日志统计方法、装置、设备及存储介质
CN113722194B (zh) * 2021-08-02 2024-05-24 中移(杭州)信息技术有限公司 日志统计方法、装置、设备及存储介质
KR102519006B1 (ko) * 2022-11-21 2023-04-07 주식회사 에스티씨랩 디지털 기반 로그 데이터의 조회 속도 향상을 위한 로그 데이터 관리 방법 및 서버

Similar Documents

Publication Publication Date Title
US10135936B1 (en) Systems and methods for web analytics testing and web development
US20200402058A1 (en) Systems and methods for real-time processing of data streams
US11736412B1 (en) Systems and methods for multi-tier resource and subsystem orchestration and adaptation
CN109344170B (zh) 流数据处理方法、***、电子设备及可读存储介质
US20210385251A1 (en) System and methods for integrating datasets and automating transformation workflows using a distributed computational graph
CN108334641B (zh) 采集用户行为数据的方法、***、电子设备、存储介质
US11188443B2 (en) Method, apparatus and system for processing log data
US9910858B2 (en) System and method for providing contextual analytics data
KR102478464B1 (ko) 웹 트래픽 데이터를 처리 및 관리하는 시스템, 장치 및 방법
CN112347165B (zh) 日志处理方法、装置及服务器和计算机可读存储介质
CN111200523A (zh) 中台***配置方法、装置、设备及存储介质
CN109753424B (zh) Ab测试的方法和装置
CN113760677A (zh) 异常链路分析方法、装置、设备及存储介质
KR20210000041A (ko) 로그 데이터의 실시간 분석 방법 및 그 장치
CN112732663A (zh) 一种日志信息处理方法及装置
KR20220074574A (ko) 지식 그래프 기반 라이브스트림 실시간 채팅 내용 분석 방법 및 그 장치
CN112597531A (zh) 一种数据产品管理方法及装置
CN112948733A (zh) 接口维护方法、装置、计算设备以及介质
JP5665685B2 (ja) 重要度判定装置、重要度判定方法およびプログラム
CN112347066A (zh) 日志处理方法、装置及服务器和计算机可读存储介质
CN115314553B (zh) 数据处理的方法、装置、设备、***及可读存储介质
JP6491778B1 (ja) 分析装置、分析方法及びプログラム
CN110968768B (zh) 信息生成方法和装置
CN117933995A (zh) 交易数据处理方法、装置、电子设备及存储介质
WO2016014223A1 (en) Seniority standardization model

Legal Events

Date Code Title Description
E601 Decision to refuse application