Posting

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

[MACHBASE 활용] energy pipeline framework 구축

마크베이스는 초고속으로 센서 데이터를 저장하고 조회할 수 있는 시계열 데이터베이스입니다. 데이터 수집과 저장은 4차 산업혁명 시대에 맞춰 제조 관리 시스템이 설치된 스마트 팩토리를 구현하는데 핵심이며, 마크베이스는 이를 위한 최고의 선택입니다. 스마트 공장 뿐 아니라 스마트 교통, 스마트 헬스, 스마트 빌딩, 스마트 시티, 스마트 그리드 등 스마트X 시대에 센서 데이터는 다수의 설비와 장비에서 끊임없이 발생하고 있습니다. 마크베이스는 대량의 센서 데이터를 실시간으로 저장하고 시각화하여 실시간 트렌드를 모니터링하는데 사용됩니다.

최근 다양한 형태의 신재생 에너지 사업이 진행되고 있습니다. 그리고 스마트 그리드와 함께 마이크로 그리드가 각광을 받고 있습니다. 마이크로 그리드 구축을 위한  energy pipeline framework을 위해 초기에는 하둡 에코 시스템이 주로 사용되었습니다. 하지만 구현의 어려움과 성능의 한계가 드러나고 있습니다. 이번 포스트에서는 마크베이스를 활용하여 단기간에 energy pipeline framework를 구축한 사례를 설명해 드리겠습니다. 추가로 실제 구축 과정에서 마크베이스와 Grafana를 연동하여 시각화를한 결과를 소개해 드리겠습니다.

1. 아키텍처 구성 비교

energy pipeline framework는 햇빛을 직류 전기로 바꾸어 전력을 생산하는 태양광 발전(photovoltaics, PV)의 마이크로 그리드(micro grid, MG)에서 발생하는 센서 데이터를 처리해야 합니다. modbus/tcp, RESTful API, LWM2M 등 다양한 통신 프로토콜을 통해서 수집하고 필터링하여 데이터 저장소에 저장합니다. 또한 관리 편의를 위해 시각화 도구로 모니터링하는 시스템이 추가됩니다.

아래에서 하둡 에코 시스템과 마크베이스를 활용하여 시스템을 구축하는 각각의 방안에 대해서 비교 설명해 드리겠습니다. 

1-1. 하둡 에코 시스템 구축 방안

collector가 각 게이트웨이 장비의 프로토콜에 맞춰 1차적으로 데이터를 수집합니다. 그리고 apache kafka를 이용하여 HDFS에 데이터를 저장합니다. 실시간 데이터 분석에는 spark stream을 이용하고 배치 처리는 spark를 사용합니다.

시계열 데이터는 InfluxDB에 저장하여 분석된 결과를 RDBMS에 다시 저장하는 방식으로 구성했습니다. csv 파일 형태로 존재하는 빅데이터는 Logstash 를 이용하여 필터링 및 수집을 한뒤, elastic search에 저장하고 kibana로 시각화했습니다.

다양한 오픈소스와 하둡 에코시스템으로 시스템을 구축하고자 노력했지만, 각 패키지별 전문 엔지니어를 확보하기도 어려웠고 각 컴포너트별 연동 및 호환성 확보하는 작업이 쉽지 않았습니다. 더구나 최종 분석 어플리케이션을 자체적으로 개발하고자 할 때, 각 데이터 저장소별 연동 작업을 원할히 구성하여 개발하는 것은 제한된 인력으로 단기간에 구현하기 매우 까다롭습니다.

1-2. 마크베이스 구축 방안

마크베이스는 센서 데이터를 고속으로 입력하면서 동시에 실시간 조회가 가능한 시계열 데이터베이스입니다. 데이터를 수집하는 collector로 부터 필터링을 거친 데이터를 수집 저장합니다. 이때 collector를 마크베이스가 제공하는 CLI API로 연돌할 수 있습니다.

시각화를 위해 오픈소스 대시보드 툴인 grafana와 연동가능한 datasource plugin을 제공하고 있습니다. tableau를 사용하는 경우 TDE 형식의 파일로 데이터를 export 받아서 분석할 합니다. python module로 자체 어플리케이션 개발도 가능합니다.

1-3. 구축 방안 비교

hadoop echo system과 MACHBASE로 구성하는 각각의 방안을 비교하면 아래 표로 정리할 수 있습니다. MACHBASE로 구성하는 방안이 서버 자원, 개발 인력, 제품 성능 측면에서 hadoop 보다 유리하다는 것을 알 수 있습니다. 기업 측면에서는 총소유비용 (total cost of wwnership, TCO)을 절감하는 장점이 있습니다.

항목MachbaseHadoop
아키텍처 구성단순복잡
설계 및 설치 기간1주일4개월
서버 자원1대3대
데이터 수집 성능50만 건/초5만 건/초
제품 상용화가능
(기존 개발 지식 활용 용이)
불가
(전문 엔지니어 조직 내재화 난이)

2. 데이터 입력

센서로 부터 발생하는 데이터를 입력하는 방식은 크게 2가지로 구분할 수 있습니다.

  • collector로부터 실시간으로 수집, 저장
  • csv 파일을 machloader 툴을 이용하여 배치 로딩
2-1. 실시간 입력

Modbus/TCP 통신을 통해 MG/PV 게이트웨이로부터 데이터를 수집합니다. 그리고 곧바로 마크베이스 데이터베이스에 입력됩니다. 데이터를 수집하는 collector와 마크베이스와의 연동은 JDBC를 이용한다. 데이터 수집주기는 초당 약 1회입니다.

MG/EMS 게이트웨이로부터 RESTful API를 통해서 데이터를 수집하여 마크베이스에 입력합니다. 데이터를 수집하는 collector와 마크베이스와의 연동은 RESTful API를 이용한다. 데이터 수집주기는 초당 약 1회이다.

2-2. 배치 파일 로딩

기존 장비로 부터 수집된 데이터는 csv 파일로 저장되어 있습니다. 그래서 마크베이스에 배치 로딩을 하여야 한다. 이때 마크베이스에서 제공하는 machcollector 라는 유틸리티를 사용할 수 있습니다.

csv 파일에 저장된 데이터의 형태는 대략 아래와 같은 모습을 가지고 있습니다. 각 필드를 보면 밀리초 해상도의 장비시간과 소수점이 있는 6개의 측정값으로 구성되어 있다.

장비시간,유효전력,무효전력,수평일사량,경사일사량,외기 온도,모듈온도
2018-11-20 09:15:18.070,57302.12,-775.29,315.875,472.9375,8.69999980926514,13.5
2018-11-20 09:15:18.770,57451.79,-205.02,315.875,472.9375,8.69999980926514,13.5
2018-11-20 09:15:20.177,56912.61,-696.91,312.8125,473.375,8.69999980926514,13.5
2018-11-20 09:15:20.867,57181.00,-698.07,312.8125,473.375,8.69999980926514,13.5
2018-11-20 09:15:21.583,56743.03,-625.65,322.4375,486.5,8.69999980926514,13.5
2018-11-20 09:15:23.687,56546.48,-494.92,325.0625,489.5625,8.69999980926514,13.5
2018-11-20 09:15:25.087,56924.59,-686.02,327.6875,490.4375,8.69999980926514,13.5
2018-11-20 09:15:25.787,56623.22,-424.98,327.6875,490.4375,8.69999980926514,13.5
2018-11-20 09:15:27.187,56658.46,-855.78,327.6875,494.8125,8.69999980926514,13.5
2018-11-20 09:15:27.890,56540.90,-724.95,327.6875,494.8125,8.69999980926514,13.5
2018-11-20 09:15:28.583,56497.31,-851.87,327.6875,498.75,8.69999980926514,13.5

csv 파일의 각 필드를 보고 테이블을 생성해야 합니다.  machsql 상에서 아래 SQL 구문을 실행하면 테이블이 생성된다.

create table pv_raw_data
(
  evt_time datetime,    --시간
  act_power double,   --유효전력
  rea_power double,   --무효전력
  hor_radi double,    --수평일사량
  lat_radi double,    --경사일사량
  air_temp double,    --외기온도
  mod_temp double     --모듈온도
);

csv파일명이 PV_RAWDATA.csv 일 때 데이터 로딩은 아래와 같이 machloader로 처리합니다. machloader에 대한 자세한 사용법은 여기서 확인해 주세요.

machloader -i -t pv_raw_data -d PV_RAWDATA.csv -F "EVT_TIME YYYY-MM-DD HH24:MI:SS.mmm" -H

좀더 효율적인 처리를 위해 log table(PV_RAW_DATA)에 입력한 데이터를 tag table로 변환해서 입력해야 합니다. 마크베이스 tag table은 센서 데이터를 고속으로 저장하고 조회하는데 특화된 테이블입니다. 대량의 센서 데이터를 입력하더라도 빠른 저장과 조회가 가능합니다. 또한 tag table을 사용하면 고속 트렌드 모니터링이 가능한 tag analyzer를 이용할 수도 있습니다.

아래와 같이 tag테이블을 생성하고 tag meta 데이터를 입력합니다.

create tagdata table tag ( name varchar(20) primary key, evt_time datetime basetime, value double summarized );
insert into tag metadata values('act_power');
insert into tag metadata values('rea_power');
insert into tag metadata values('hor_radi');
insert into tag metadata values('lat_radi');
insert into tag metadata values('air_temp');
insert into tag metadata values('mod_temp');

그리고 PV_RAW_DATA에 저장된 데이터를 INSERT INTO SELECT 구문을 이용하여 tag table에 입력합니다.

insert into tag select 'act_power', evt_time, act_power from pv_raw_data;
insert into tag select 'rea_power', evt_time, rea_power from pv_raw_data;
insert into tag select 'hor_radi', evt_time, hor_radi from pv_raw_data;
insert into tag select 'lat_radi', evt_time, lat_radi from pv_raw_data;
insert into tag select 'air_temp', evt_time, air_temp from pv_raw_data;
insert into tag select 'mod_temp', evt_time, mod_temp from pv_raw_data;


2018년도 데이터를 배치 로딩 하였으므로 rollup 데이터를 강제로 생성하는 명령어를 실행하도록 하겠습니다.

exec rollup_force;

3. 데이터 시각화

grafana는 대시보드를 쉽게 구성할 수 있는 오픈소스 프로그램입니다. 마크베이스는 Grafana와 연동할 수 있는 datasource plugin을 제공합니다. 마크베이스에 있는 데이터를 이용하여 Grafana에서 다양한 차트와 대시보드를 작성할 수 있습니다. 아래에서는 마크베이스가 설치된 리눅스 서버에  grafana를 설치하고 대시보드를  작성하는 과정을 간략하게 말씀드리겠습니다. grafana에 대한 자세한 내용은 웹사이트를 참고해 주세요. 

3-1. 마크베이스 등록

grafana 설치와 마크베이스 plugin 파일을 설정하는 방법은 여기 게시글을 참고해 주세요.

3-2. dashboard 작성

마크베이스 5.5.3 버전은 grafana 6.x 버전에서 tag table을 사용할 수 있도록 지원합니다. grafana 그래프 작성 화면에 보면 tag table을 지정한 뒤, tag 이름과 시간 조건을 선택합니다. 그리고 각각 외기온도 그래프와 모듈온도 그래프 작성을 위한 쿼리문을 적용합니다 .마지막으로 데이터 시간 범위까지 설정하면 그래프가 표시된다.

위와 동일한 방법으로 전력과 온도에 대한 그래프를 작성하여 하나의 대시보드를 구성할 수 있습니다.

4. 맺음말

MACHBASE는 표준 SQL과 데이터베이스 인터페이스를 지원하므로 기존 DB개발자가 쉽게 사용하고 개발 기간 단축의 장점이 있습니다. 기업은 인력 재교육 혹은 확충에 따른 총소유비용을 절감할 수 있는 것은 물론, 급변하는 AIoT 비즈니스 환경에서 빠르게 대응할 수 있는 장점이 있습니다. 시계열 DBMS는 4차 산업혁명 시대에 주도권을 확보하기 위해 도입이 늘고 있는 스마트X (스마트빌딩, 스마트홈, 스마트팜 등) 의 산업용 IoT 장비와 센서로부터 생성되는 태그 데이터를 실시간으로 수집, 저장, 처리할 수 있는 소프트웨어입니다. 특히 마크베이스는 국제 공인 성능 인증 기관인 TPC로부터 IoT 데이터 처리 분야에서 1위를 차지했을 정도로 성능의 우수성을 국제적으로 인증받았습니다.

이번글에서는 energy pipeline framework로 마이크로 그리드 시스템을 구축할 때, 마크베이스로 데이터를 입력하고 Grafana와 연동하여 시각화하는 과정을 소개해드렸으며 이를 통해 hadoop ecosystem으로 구성할 때 보다 더욱 간단하게 시스템을 구성하실 수 있을 것입니다. 그럼 이만 글 마치도록 하겠습니다. 감사합니다.

연관 포스트

C언어로 Binary data를 Machbase에 넣기

1.개요 Data를 다루다 보면 numeric, varchar 형 데이터뿐만 아니라 JPG, PNG, MP3와 같은 Binary data도 database에 저장해야 할 때가 존재한다. 그러나 일반 data들과는 달리 Binary

[MACHBASE 연동] Android studio에서 JDBC 연결하기

마크베이스 기술지원본부 이현민 1. 개요 수많은 데이터들이 많은 환경에서 생성되고 있는 오늘날, 우리 현대인들의 동반자인 스마트폰 또한 데이터생성의 주체로써 또는 전달자로서 알게 모르게 그 구실을