TSDB 개요 - 데이터 색인과 텍스트 분석

Hansu Kim·2022년 4월 20일
0

Database

목록 보기
4/6

TSDB에 대한 내용은 방대하다. 본 포스트에서는 TSDB에 대해 기초적인 이해를 위해 공부하며 작성됐다.

TSDB

TSDB는 시계열 데이터베이스(Time Series Database)라는 뜻으로, 시간(time)과 값(value)가 한 쌍을 이루는 데이터를 시간에 따라 순차적으로 저장하고 서비스하는 시스템을 말한다.

TSDB의 종류에는 InfluxDB, Prometheus, Graphite 등등이 존재한다.
본 포스트는 Elasticsearch

TSDB의 장점

  • 오래된 데이터를 삭제하기 편리하다
    RDBMS에선 오래된 데이터를 삭제하기 번거로우나, TSDB는 시간을 기준으로 데이터 삭제가 가능하다.

  • 빠른 처리 속도
    TSDB는 시계열 데이터를 빠르고 효율적으로 수집할 수 있다. RDB의 경우 데이터 양이 많아질 수록 속도가 저하되며 인덱싱이 걸려있다면 퍼포먼스는 더욱 급격히 저하된다.

TSDB가 빠른 이유 - 데이터 색인? 저장?

전통적인 RDB는 테이블 전체의 데이터를 like 검색하기 때문에, row가 많아질 수록 퍼포먼스가 저하된다. 하지만 TSDB에서는 inverted index를 기준으로 데이터를 저장하기에 데이터를 빠르게 조회할 수 있다.
즉, RDB는 데이터를 저장하지만 TSDB는 데이터를 색인 한다.

색인하다 : 색인(索引)은 책 속의 낱말이나 구절, 또 이에 관련한 지시자를 찾아보기 쉽도록 일정한 순서로 나열한 목록을 가리킨다. 인덱스(index)라고도 한다.

역 인덱스 - Inverted index

데이터를 term과 id로 저장하며, term을 기준으로 인덱싱 되는 것이다.

  • term: 문자열 데이터가 Analyzer를 거쳐 Text Analysis의 과정이 끝난 후 분류된 검색어 token
  • id: 데이터가 저장된 위치

Text Analysis

문자열 데이터를 검색어 토큰으로 저장하기 위한 일련의 과정이다.

Text Analysis는 Elasticsearch를 기준으로 작성됐으며, 다른 TSDB에서는 해당 과정을 어떻게 수행하는지 나도 모른다. 다만 Elasticsearch를 기준으로 TSDB의 concept를 이해할 수 있을 것으로 생각되어 정리했다.

Analyzer

문자열 데이터를 검색어 토큰으로 처리하는 기능. Text Analysis는 전체의 과정이며, Analyzer는 기능을 뜻한다. Text Analysis는 Analyzer 후 stemming을 거쳐 완료된다.
Analyzer는 아래 3가지로 이루어져있다. 문자열 데이터는 아래 작성된 순서의 과정을 거쳐 검색어 토큰으로 처리된다.
각 과정에서 정확히 어떤 것을 하는지 이해하기 위해, 예시를 하나씩 적었다.

  • Character Filter: 가장 먼저 처리되는 과정으로, 전체 문자열 데이터에 대해 전처리함
    • ex) HTML Strip: 데이터에서 HTML 태그들을 지워준다.
  • Tokenizer: 문자열 데이터를 term으로 나누어줌.
    • 토크나이저는 1종류 밖에 못쓴다.
    • ex) whitespace tokenizer - 문자열에서 공백을 기준으로 단어를 분리
  • Token Filter: 분리된 term들을 지정한 규칙에 따라 처리해줌
    • ex) lowercase, uppercase: case sensitive로 인해 같지만 따로 저장된 term들을 병합해준다.
    • ex) stop token filter: 검색으로서 가치가 없는 불용어를 토큰에서 제외 (a, the, by, do, for 등)

      병합 전

      term id
      coffee document1
      COFFEE document2

      병합 후

      term id
      coffee document1, document2

Stemming (형태소 분석)

형태소 분석에 따라 동일하지만 다르게 분류된 토큰들을 합쳐준다.
ex) does, did, doing, do ----형태소분석----> do

그 이후의 과정

위의 과정을 통해 분류된 term들은 데이터로 저장된다.
데이터 저장 역시 TSDB는 RDB와는 다른 스토리지 아키텍쳐를 통해 저장되는데, 해당 내용은 Prometheus를 기준으로 별도 포스팅 예정이다.

참고자료
https://esbook.kimjmin.net/07-settings-and-mappings/7.1-settings
https://mangkyu.tistory.com/190

0개의 댓글