Posting

Machbase의 최신 소식을 지금 만나보세요

TPCx-IoT BMT에 Machbase를 공인 DBMS로 선정

서론

Machbase CTO 심광훈

<그림 : TPCx-IoT 개요>

지난 블로그 포스트에서 TPCx-IoT 가 어떤 테스트인지를 살펴 보았습니다. 이번 포스트는 TPCx-IoT 벤치마크에 Machbase가 표준 DBMS로 선정되었으며, 그 과정에서 Machbase가 수행한 내용에 대해서 알려 드립니다.

원래 TPCx-IoT 벤치마크는 HBASE만이 표준 DBMS였습니다. TTA(TTA는 TPC 회원입니다.)에서 국산 HW/SW를 TPC벤치마크에 등재하는 과제에 마크베이스가 선정되어 지난 6개월 정도를 TTA및 TPC와 협업하여 TPC 포준 DBMS로 추가 선정되었습니다.

TPCx-IoT driver구현

TPCx(TPC Express) BMT는 구현이 난이한 TPC-C등의 BMT를 보완하기 위해서 Benchmark에 필요한 코드를 TPC측에서 제공하고, Test를 실행하는 측에서는 코드를 TPC site에서 다운로드 받아서 적절한 설정을 하고 테스트를 진행하게 하였습니다.. TPCx-IoT 실행 코드에는 기본 BMT코드와 DBMS 드라이버(HBASE, CouchDB)가 같이 포함되어 있습니다. 최신 (1.0.4)버전의 TPCx-IoT 코드에는 Machbase에서 구현한 driver가 포함되어 있습니다.

이 드라이버를 구현하기 위해서 먼저 ycsb용 machbase 드라이버를 작성하고, 이를 수정하여 TPCx-IoT에 맞게 변경하였습니다. 변경한 드라이버 코드는 TPC Subcommittee 에 전달하여 코드 확인을 거쳤습니다. 변경사항을 몇가지 설명해 드리면,

입력 데이터 변환

<그림 : TPCx-IoT 데이터 구조>

TPCx-IoT 데이터는 위의 Key-value pair형태로 생성됩니다. 실제로 칼럼 6개를 갖는 데이터지만, HBASE등에 맞게 key칼럼은 하나의 칼럼으로, value 칼럼들도 하나의 칼럼으로 저장하게 되어 있습니다. Machbase는 SQL스키마를 지원하는 DBMS이므로, key 칼럼 (Power substation key, Sensor key)과 Timestamp value column, sensor value 칼럼 및  unti-padding을 각각 별개의 칼럼으로 저장하도록 하였습니다. 이러한 변경 사항은 TPC에서도 승인받았으며, 구현된 driver에도 칼럼별로 값을 변환하는 코드가 구현되어 있습니다.

이 입력데이터는 machbase의 tag테이블에 입력하도록 구현하였습니다.

Query

해당 BMT에서 입력된 데이터를 주기적으로 질의를 통해 데이터가 정상적으로 입력되어있는지 검사합니다. HBASE의 query와 달리, Machbase는 정상적인 query string을 생성하고 이를 prepare-bind-execute과정으로 통해서 질의하는 것으로 구현하였습니다.

prepareScanStmt = (MachPreparedStatement)conn.prepareStatement("SELECT " + joinFields(fields)
                                                               + " FROM TAG WHERE " + PRIMARY_KEY_NAME + " = ? and " + TIMESTAMP_NAME
                                                               + " between ? and ?");
prepareScanStmt.setString(1, key.toString());
prepareScanStmt.setDate(2, startDate);
prepareScanStmt.setDate(3, endDate);


마무리

국제 공인 BMT인 TPCx-IoT의 표준 DBMS에 마크베이스가 추가되었습니다. 이를 위해서 마크베이스는 테스트 드라이버를 추가 구현하고, TTA의 협조를 받아 TPC측에 검증을 받았으며, 마크베이스가 추가한 드라이버를 포함한 TPC test suite가 tpc.org site에서 배포되고 있습니다.

연관 포스트

Deep Anomaly Detection in Time Series (2) : 이상 감지 모델

개요 안녕하세요, 마크베이스의 Cloud개발본부 연구원 양창은입니다. 지난 게시글 Deep Anomaly Detection in Time Series (1) : Time Series Data에서는 시계열 데이터와 이상치(Anomaly)의 종류에 대해 알아보았습니다. 그리고

IIoT를 위한 Data Lake – machlake

Data Lake 란, 대규모의 다양한 원시 데이터 세트를 기본 형식으로 저장하는 데이터 리포지터리 유형입니다. 원시 데이터는 특정 목적을 위해 처리되지 않은 데이터를 뜻합니다. 산업 IoT