개념
...
로그 테이블은 , 입력되는 데이터가 시계열 데이터인 머신 로그 데이터를 저장할 수 있는 테이블을 지칭한다테이블이다. 이 테이블에는 데이터가 무한히 입력되고, 각각의 필드 마다 고유한 의미를 담고 있다고 가정한다입력되며, 각 필드의 값에는 고유한 의미가 있다.
또한 , 텍스트 필드(varchar 혹은 text) 를 통해 데이터를 검색할 수 있으며, 빠른 통계 연산이 가능하다. 마크베이스에서 테이블이라고 하면 기본적으로 "로그 테이블"을 지칭한다가리킨다.
이 로그 테이블의 특징은 다음과 같다.
숨은 시간 컬럼 존재
모든 로그 테이블에는 숨은 컬럼으로 _arrival_time이 존재한다time이라는 숨겨진 컬럼이 있다.
이 컬럼은 컬럼에는 해당 레코드가 생성되는 순간의 생성된 시간이 저장되어 있으며, 나노(nano) 나노초 단위 정밀도를 지원한다.
시간 역순 검색
일반 데이터베이스는 데이터 검색 시 입력 순서와 무관하게 출력된다.
그러나 Machbase의 로그 테이블은 별도의 ORDER BY를 통한 정렬 옵션을 주지 않는 경우에는 한 언제나 최신 데이터가 먼저 출력된다.
이는 _arrival_time 컬럼을 통해서도 확인된다확인할 수 있다. 이렇게 설계된 이유는 머신 로그 데이터는 가장 데이터에서는 최근 데이터의 중요도가 이전의 데이터에 비해 훨씬 높기 때문이다.
...
Machbase가 비록 데이터의 변경은 불허하더라도 특수한 상황에서 필요한 데이터의 삭제는 허용한다.
그러나 , 전통적인 데이터베이스와 같은 데이터베이스에서처럼 임의의 데이터를 삭제할 수 수는 없으며, 반드시 가장 오래된 데이터로부터 순차적으로 삭제할 수 있도록 제공한다데이터부터 순차적으로 삭제하는 것만 가능하다.
이 기능을 통해 저장공간의 제약이 심한 embedded 장비 혹은 저장공간에 제약이 있는 임베디드 장비나 관리가 쉽지 않은 형태의 장비에서는 장비에서 편리하게 주기적으로 데이터를 삭제하여 관리할 수 있다.
...
Machbase는 IPv4, IPv6를 지원한다. 이는 인터넷 주소를 나타내는 특수한 타입으로서 수많은 머신 로그 데이터가주로 데이터가 주로 표현하는 주소체계를 주소 체계를 반영한 것이다.
이 데이터 타입을 활용하여 , 특정 어드레스에 대한 검색 및 특정 주소의 검색과 추출을 손쉽게 할 수 있다.
또한, select * from t1 where ipaddr = '192.168.0.*'과 같은 확장 문법을 활용하여, 특정 주소 체계의 일부 주소범위를 주소 범위를 검색하거나 , 추출할 수 있는 기능도 함께 제공한다.
또한 netmask 연산자를 제공하여 특정 인터넷 주소가 특정한 주소 범위에 포함되는지 쉽게 판단할 수 있다.
...
로그 테이블은 64MB 바이트까지 저장 가능한 Text 및 Binary 타입을 제공한다.
만일 해당 데이터가 텍스트 문서 형태로서 검색이 필요한 경우에는 Text 타입으로 저장하고 데이터를 검색할 수 있다.
만일 해당 데이터가 그림이나 음악과 같은 2진 데이터 형태의 형태인 경우 binary 타입으로 저장할 수 있다.
시간 기반 파티셔닝
로그 테이블은 시간 축을 기준으로 특정 개수의 레코드 및 인덱스를 유지하고 있는 파티션 파일의 연속체이다.
다시 말해서, 데이터가 지속적으로 입력될수록 말해 데이터가 계속 입력됨에 따라 새로운 파티션 파일이 생성되고 이 , 그 파티션에 특정 개수의 레코드가 모두 차게 되면 , 다음 파티션이 생성된다는 의미이다.
파티션으로 관리하는 이유는 주로 시간을 기준으로 검색이 발생하는 로그 데이터의 특성을 반영한 것이며 데이터 입력 성능에 대단히 큰 장점이 있다. 통계 분석을 위한 초고속 데이터 접근에 용이한 구조이기 때문이다.
...