테이블 관리

사용자는 테이블에서 로그프레소 서버에서 사용 중인 테이블의 생성, 삭제, 인덱스 구성과 같은 관리 작업을 수행할 수 있습니다.

Note
사용자가 테이블 관리 기능을 이용하려면 admin 권한이 필요합니다.

테이블 생성

테이블을 생성하는 방법은 다음과 같습니다.

테이블 - 새 테이블 만들기

  1. 테이블 화면에 있는 도구 모음에서 + 새 테이블 만들기를 누릅니다.

  2. 새 테이블 만들기 창에 새 테이블의 속성을 입력하고 생성을 누릅니다.

    • 이름: 테이블에 사용할 이름(영문 대소문자, 숫자, 밑줄(_)만 사용 가능)
    • 타입: 로그프레소 스토리지 엔진 타입(기본값: v3p). v3p는 고속 압축과 암호화를 지원합니다.
    • 압축 방식: 데이터를 저장할 때 사용할 압축 알고리즘(기본값: deflate)
      • deflate: LZ77 및 호프만 코딩을 조합하는 압축 알고리즘
      • snappy: LZ77 기반 초고속 압축 알고리즘
      • lz4, lz4hc: 하위호환성을 위해 유지하는 옵션으로, 권장하지 않음
    • 암호화 프로파일: 테이블을 암호화 할 때 사용할 암호화 프로파일을 목록에서 선택(기본값: 없음). 암호화 프로파일을 지정하면 테이블 데이터의 무결성 검사를 수행할 수 있습니다.
    • 데이터 배열: 테이블의 데이터 배열 구조(기본값: 없음)
      • row: 비정형 원본 데이터 또는 풀텍스트 검색을 대상 데이터를 저장하는 경우 권장
      • columnar: 필드가 구분된 정형 데이터 또는 통계 분석 대상 데이터를 저장하는 경우 권장
    • 복제 모드: 페데레이션 구성된 로그프레소 서버를 위한 테이블 이중화 설정(기본값: 없음, 미지정 시 사용 안 함)
      • active: 테이블에 입력되는 값을 standby 테이블에 복제
      • standby: active 테이블에 입력된 데이터를 받아서 입력
    • 복제 대상 테이블: 복제 모드active일 때 standby 테이블을, 복제 모드standby일 때 active 테이블을 지정(미지정 시 사용 안 함). 페데레이션 노드마다 각각 네임스페이스를 갖기 때문에 이름과 테이블 이름을 노드이름:테이블이름과 같이 콜론(:)으로 구분해서 입력해야 합니다.
    • 테이블 저장 디렉터리: 로그프레소 환경 변수 araqne.data.dir로 지정된 경로가 아닌 다른 경로에 테이블을 저장하고자 할 때 경로를 직접 지정. 기본 저장 경로가 속한 드라이브와 다른 드라이브를 선택할 경우, 해당 드라이브도 디스크 고갈 경보에서 관리하는 드라이브 목록에 포함됩니다.
Note
로그프레소 플랫폼에 앱을 설치하면 앱이 사용할 테이블도 자동으로 생성되므로 앱에서 사용할 테이블을 다시 생성할 필요가 없습니다.
Note
생성한 테이블은 수정할 수 없습니다. 테이블의 압축 방식, 암호화 프로파일, 데이터 배열과 같은 속성을 변경하려면 삭제 후 다시 생성하십시오.

테이블 삭제

테이블이 더 이상 필요없을 경우 삭제할 수 있습니다. 테이블을 삭제하면 테이블에 저장된 데이터와 더불어 인덱스도 삭제됩니다.

  1. 테이블 화면에서 삭제할 테이블을 선택하고 도구 모음에서 삭제를 누릅니다.

    테이블 삭제 - 삭제할 테이블 선택

  2. 테이블 삭제 창에서 삭제할 테이블을 확인하고 삭제를 누릅니다.

    테이블 삭제 - 삭제할 테이블 확인 후 삭제 실행

테이블 속성

테이블 트리에서 테이블 항목을 선택하면 테이블에 대한 상세한 정보를 제공합니다. 테이블 속성 화면은 기본 정보, 인덱스, 데이터, 무결성 검사 네 개의 탭 패널로 구성되어 있습니다.

기본 정보

기본 정보 탭 패널은 테이블 스키마, 메타데이터, 접근권한 및 디스크 사용량, 로그 발생 추이와 같은 테이블 설정 정보를 보여줍니다.

테이블 기본 정보 탭 패널

스키마

테이블 스키마는 테이블의 타입, 압축방식, 데이터 배열 형식, 테이블 저장 디렉터리, (클러스터 구성 환경인 경우) 이중화 설정, 잠금 설정 등을 보여줍니다.

테이블 기본 정보 - 스키마

메타데이터

테이블 메타데이터는 파서를 비롯한 테이블의 메타데이터를 키-값 형식으로 보여줍니다. 해당 항목들은 fulltext 쿼리 검색에서 meta(KEY_VALUE_EXPR) 형식으로 사용됩니다.

테이블 기본 정보 - 메타데이터

메타데이터에서 확인할 수 있는 주요 키는 다음과 같습니다.

  • app_id: 앱이 설치될 때 함께 생성된 테이블에 생성되는 키-값. 앱 식별자가 값으로 할당됩니다.
  • app_public: 앱 내보내기를 실행할 때 테이블 포함 여부를 표시하는 키-값으로, true/false가 할당됩니다.
  • ingestion_profile_type: 앱이 설치될 때 함께 생성된 테이블에 생성되는 키-값으로, 유입 프로파일의 타입이 값으로 할당됩니다.
  • logparser: 파서 설정을 눌러서 파서를 생성하면 추가되는 키-값으로, 파서 팩토리 식별자가 할당됩니다.
  • parser: "시스템 > 파서"에 등록된 파서의 식별자를 값으로 갖는 키-값

이 외에도 파서 설정을 누른 후 테이블에 적용할 파서의 종류에 따라 각각 다른 메타데이터 키-값 쌍이 생성될 수 있습니다.

테이블에 저장되는 데이터는 원본 형태로 저장됩니다. 테이블에 적용되는 파서는 테이블에 저장된 데이터를 로그프레소 쿼리로 읽어들일 때 사용되므로 테이블에 저장된 원본을 훼손하지 않습니다.

"+" 버튼을 누르면 임의의 키-값 쌍을 등록할 수 있습니다.

테이블 접근 권한

테이블 접근 권한은 테이블에 저장된 데이터를 읽을 수 있는 계정이나 보안 그룹을 관리하는 기능입니다. admin 권한을 갖는 계정은 모든 테이블에 접근 권한을 갖지만 member 권한을 갖는 계정들은 명시적으로 테이블 접근 권한을 지정해야 테이블에 접근할 수 있습니다.

테이블 기본 정보 - 접근 권한

편집을 누른 후 테이블 접근 권한 창에서 테이블 접근 권한을 부여하거나 해제할 수 있습니다. 권한은 계정 단위 또는 보안 그룹 단위로 지정할 수 있습니다.

테이블 접근 권한 관리 화면

디스크 사용량

디스크 사용량은 테이블에 저장된 데이터와 인덱스의 용량을 보여줍니다.

테이블 기본 정보 - 디스크 사용량

편집을 누른 후 누르면 테이블 보관주기를 설정할 수 있습니다. 로그프레소 서버는 테이블에 저장된 데이터를 레코드 단위로 보관주기가 지난 데이터를 삭제합니다. 미사용을 누르거나, '0'을 입력하고 저장하면 테이블 보관주기를 사용하지 않습니다(기본값: 미사용).

테이블 기본 정보 - 테이블 보관주기 설정

로그 발생 추이

수집 추이는 최근 3시간 동안 수집된 데이터의 건수를 1분 단위(눈금은 15분 단위)로 보여줍니다. 그래프 위에 커서를 올려놓으면 해당 시점에 수집된 데이터의 건수를 확인할 수 있습니다.

테이블 기본 정보 - 로그 발생 추이

인덱스

인덱스 탭 패널은 테이블의 인덱스 속성 조회와 관리 기능을 제공합니다. 테이블 트리에서 인덱스가 있는 테이블은 이름 왼편에 있는 "+"을 누르면 인덱스 목록을 볼 수 있고, "-"를 누르면 인덱스 목록을 닫습니다.

테이블 인덱스 탭 패널

인덱스에 대한 자세한 내용은 인덱스 관리를 참고하십시오.

데이터

데이터 탭 패널은 테이블에 저장된 최근 레코드 20건을 보여줍니다. 이 화면에서 일정 기간 동안 기록된 데이터를 삭제하거나, 테이블에 데이터를 업로드할 수 있습니다.

테이블 데이터 탭 패널

테이블에 업로드

도구 모음에서 업로드를 누른 후 테이블에 데이터를 업로드할 수 있습니다. 업로드할 수 있는 파일은 텍스트 기반 파일들입니다. 업로드하는 데이터는 line 필드에, 업로드한 시각이 _time 필드에 기록됩니다.

Tip
데이터를 업로드하는 과정에서 "날짜 정규표현식"과 "날짜 포맷"을 이용해 _time 필드 값을 로그에 기록된 시각으로 대체할 수 있습니다.

테이블에 데이터를 업로드하는 방법은 다음과 같습니다.

  1. 테이블 트리에서 데이터를 업로드할 테이블을 선택합니다.

  2. 데이터 탭 패널에 있는 도구 모음에서 업로드를 누릅니다.

  3. 데이터 업로드 창에서 파일 선택을 누르고 업로드할 파일을 선택한 후, 다음을 누릅니다.

    테이블 데이터 - 업로드할 데이터 선택

  4. 테이블에 데이터를 기록할 떄 필요한 조건을 지정하고 업로드를 누릅니다.

    테이블 데이터 - 기록에 필요한 조건들 지정

    • 인코딩: 텍스트 파일에 적용할 문자 인코딩 방식을 목록에서 선택(기본값: UTF-8)
    • 로그 시작 정규식: 로그의 시작 부분을 인식하는 정규표현식. 하나의 로그 항목이 여러 줄에 걸쳐 있을 때 사용합니다(미지정 시 개행 문자를 로그 구분자로 인식).
    • 로그 끝 정규식: 로그의 끝 부분을 인식하는 정규표현식. 하나의 로그 항목이 여러 줄에 걸쳐 있을 때 사용합니다(미지정 시 개행 문자를 로그 구분자로 인식).
    • 날짜 로케일: 날짜 문자열의 로케일(기본값: en). 가령 날짜 파싱 포맷 지시자 중에서 MMM은 로케일에 따라 Jan(로케일이 en일 때) 혹은 1월(로케일이 ko일 때)로 해석됩니다.
    • 날짜 정규표현식: 로그에서 날짜 및 시간 정보 문자열 추출에 사용할 정규표현식(예: \[(\d{2}/\S+/\d{4}:\d{2}:\d{2}:\d{2} \+0900)\]). 날짜 정규표현식에서 괄호쌍(( ))으로 감싼 문자열 그룹들을 이어붙여서 하나의 날짜 문자열을 만들어냅니다. 이렇게 생성된 날짜 문자열로부터 날짜 포맷, 날짜 로케일에 따라 시간 정보 추출에 사용합니다.
    • 날짜 포맷: 날짜 문자열을 파싱하는데 사용할 날짜 포맷(예: dd/MMM/yyyy:HH:mm:ss Z). 날짜 로케일에 따라 파싱된 문자열은 다를 수 있습니다.
  5. 데이터가 업로드되면 완료를 눌러 데이터 업로드 창을 닫습니다.

    테이블 데이터 - 업로드 완료

데이터 새로 고침

도구 모음에서 새로 고침을 누르면 데이터 탭 패널이 보여주는 정보를 갱신해서 보여줍니다. 다음 그림은 widget_example 테이블에 데이터를 업로드한 후 화면입니다.

테이블 데이터 - 새로 고침 버튼을 누르기 전

다음 그림은 새로 고침 버튼을 누른 후 데이터 탭 패널 화면입니다.

테이블 데이터 - 새로 고침 버튼을 누른 후

데이터 삭제

테이블에서 전체 또는 특정 기간에 기록된 데이터를 삭제하는 방법은 다음과 같습니다.

테이블 데이터 - 데이터 삭제 버튼 및 데이터 삭제 창

  1. 테이블 트리에서 데이터를 업로드할 테이블을 선택합니다.
  2. 데이터 탭 패널에서 도구 모음에 있는 휴지통을 누릅니다.
  3. 삭제할 기간의 시작 날짜와 날짜를 선택하고 삭제를 누릅니다. 날짜는 직접 입력하거나, 달력에서 선택할 수 있습니다.
  4. 테이블에서 시작 날짜부터 날짜로 지정한 기간의 데이터가 삭제된 것을 확인합니다.
Note
삭제할 데이터의 기간은 _time 필드의 값을 기준으로 합니다. 액티브/스탠바이 이중화 구성이 적용된 테이블은 활성화된 노드의 테이블 데이터만 삭제가 가능합니다. 예를 들어, 액티브 테이블이 살아있는 상태에서는 스탠바이 테이블의 데이터를 삭제할 수 없습니다.
무결성 검사

테이블 생성 시점에 암호화 프로파일이 적용된 경우, 테이블 속성 화면에 무결성 점검 탭 패널을 사용할 수 있습니다. 무결성 검사 탭 패널에서 테이블에 저장된 데이터에 대해 무결성 상태를 점검할 수 있습니다.

테이블 무결성 검사 탭 패널

데이터의 무결성을 검사하려면 무결성 검사를 진행할 기간과 옵션을 설정하고 점검 시작을 누르십시오. 기본 동작은 무결성이 훼손된 데이터 블럭의 정보만 보여줍니다. 모든 데이터 블럭에 대한 정보를 조회하려면 전체 결과 표시를 선택한 다음 무결성 검사를 실행하십시오.

무결성 검사 결과는 진단결과 열에 표시되며, 표시되는 값은 다음과 같습니다.

테이블 무결성 검사 결과 예시

  • 일치: 테이블 블럭의 해시값과 시그니처가 일치
  • 변조됨: 테이블 블럭의 해시값과 시그니처가 일치하지 않음
  • 손상됨: 테이블 블럭의 구조 또는 테이블 파일이 손상됨

변조됨으로 표시되는 테이블 블럭과 손상됨이 표시되는 테이블 파일은 무결성이 훼손된 것으로, 정상적인 운영 중 발생하지 않아야 합니다. 운영 중 데이터의 무결성이 훼손된 경우 로그프레소에 문의하십시오.