Posting

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

[MACHBASE 기초] TAG TABLE 04 – TAG ANALYZER

이번 포스트에서는 Home IoT Gateway에서 수개월간 수집한 센서 데이터를 로딩해 보겠습니다. 그리고 이 데이터로 간단하게 Tag Analyzer를 활용해 보겠습니다.

1. 실습 자료

1-1. 디렉터리 확인

가장먼저 이번 실습에서 사용할 스크립트와 데이터를 확인해 보겠습니다. edu_4_house_sensor 디렉터리를 확인하면 이전의 실습에서 사용했던 것과 비슷한 파일들이 있습니다.

Host:~/work/TagTutorial/edu_4_house_sensor$ ls
1_create_table.sql # ENERGYDATA 테이블 생성
1_create_tag.sql # Tag Table 생성 : 이미 생성했다면 필요 없음.
2_meta.sql # 태그 매타 정보
3_load.sh # 리눅스용 PLC 데이터 로딩
3_load.bat # Windows용 PLC 데이터 로딩
4_to_tag.sql # PLC로 부터 Tag 테이블 로딩
energydata_complete.zip # 실제 센서 데이터

1-2. 데이터 셋

데이터는 energydata_complete.zip으로 압축되어 있습니다. 압축해제 후, energydata_complete.csv를 확인하면 수집 기간은 2016년 1월 11일 오후 5시부터 그해 5월 27일 오후 6시이며, 모두  10분 간격으로 입력되었습니다.

csv의 최상단에 있는 컬럼명과 데이터베이스 입력시 대응될 태그명은 다음과 같습니다.

컬럼명태그명내용 (단위)
APPLIANCESETAG_APPLIANCES가전 전력 사용량 (Wh)
LIGHTSETAG_LIGHTS조명 전력 사용량 (Wh)
T1ETAG_T1주방 온도 (섭씨)
T2ETAG_T2거실 온도 (섭씨)
T3ETAG_T3세탁실 온도 (섭씨)
T4ETAG_T4사무실 온도 (섭씨)
T5ETAG_T5화장실 온도 (섭씨)
T6ETAG_T6북쪽 외부 온도 (섭씨)
T7ETAG_T7다용도실 온도 (섭씨)
T8ETAG_T8자녀방 온도 (섭씨)
T9ETAG_T9부모방 온도 (섭씨)
TOETAG_TO외부 온도 (섭씨)
RH_1ETAG_RH_1주방 습도 (%)
RH_2ETAG_RH_1거실 습도 (%)
RH_3ETAG_RH_1세탁실 습도 (%)
RH_4ETAG_RH_1사무실 습도 (%)
RH_5ETAG_RH_1화장실 습도 (%)
RH_6ETAG_RH_1북쪽 외부 습도 (%)
RH_7ETAG_RH_1다용도실 습도 (%)
RH_8ETAG_RH_1자녀방 습도 (%)
RH_9ETAG_RH_1부모방 습도 (%)
RH_OUTETAG_RH_OUT외부 습도 (%)
PRESSUREETAG_PRESSURE기압 (mm Hg)
WINDSPEEDETAG_WINDSPEED바람세기 (m/s)
VISIBILITYETAG_VISIBILITY가시도 (km)
TDEWPOINTETAG_TDEWPOINT온도 (섭씨)
RV1ETAG_RV1Random 값
RV2ETAG_RV2Random 값

2. 실습

이전의 튜토리얼과 동일한 순서대로 수행하면 됩니다. 먼저 machadmin으로 DB를 초기하고 아래의 스크립트들을 실행시켜 주세요.

Host:~/work/TagTutorial/edu_4_house_sensor$ machsql -f 1_create_tag.sql 
Host:~/work/TagTutorial/edu_4_house_sensor$ machsql -f 1_create_table.sql 
Host:~/work/TagTutorial/edu_4_house_sensor$ machsql -f 2_meta.sql
Host:~/work/TagTutorial/edu_4_house_sensor$ unzip energydata_complete.zip 
Host:~/work/TagTutorial/edu_4_house_sensor$ sh 3_load.sh (윈도우는 3_load.bat)
Host:~/work/TagTutorial/edu_4_house_sensor$ machsql -f 4_to_tag.sql

2-1. Rollup 생성 확인

위의 스크립트 수행 후 약 2~3분간 대기하면, TAG TABLE의 인덱스와 Rollup Table이 모두 생성됩니다. 생성된 모습은 MWA의 SQL 화면에서 아래와 같이 확인할 수 있습니다. 여기서는 반드시 TAGROLLUP_HOUR의 Records 개수가 0이 아닌 23030이 된것을 확인해 주셔야 합니다.

2-2. Tag Analyzer 시간 범위 설정

최초로 Tag Analyzer를 보면, 아무것도 없이 아래와 같이 생긴 것을 보실 수 있습니다 우측 상단의 시계 모양 아이콘을 클릭해서 차트를 볼 전체 시간 범위를 설정해 주세요.

Apply를 누르면 시간이 확정됩니다. 만일 이 시간의 범위를 저장하고 싶다면 디스크 모양의 아이콘을 클릭해서 저장명과 타이틀 명을 각각 입력해 주시면 됩니다.

2-3. 차트 출력을 위한 태그명 선택

Tag Analyzer에서 큰 + 를 누르면 팝업 윈도우가 뜨고, 이곳에서 아래와 같은 태그 선택 창이 나타납니다. 원하는 태그가 선택되었으면, OK 버튼을 눌러서 적용해 주세요.

  • 검색창을 통해서 태그 이름을 필터링할  수 있다. 리스트가 너무 많을 경우  원하는 이름의 일부를 넣고, Search를 누른다.
  • 좌측 패넬은 이렇게 필터링 된 태그 리스트이다. 이 태그 이름을 클릭하면, 우측에 나타나면서 선택된다.
  • 우측 패넬은 선택된 태그의 리스트이다. 이 태그 이름을 클릭하면, 우측에서 사라지면서 선택이 취소된다.
  • 차트 종류를 현재 선과 점 두 개 중에 하나를 선택할 수 있다. 기본으로는 선 차트가 선택된다.

2-4. 전력량 차트 그리기

전력 사용량  태그인 ETAG_APPLIANCES와 ETAG_LIGHTS를 설정하고, 각각 통계지표를 Average로 선택하면, 아래와 같이 출력됩니다.

2-5. 대시보드 색 조절

현재 MWA는 두 종류의 칼럼 템플릿이 대시보드를 위해 존재합니다. 위의 그림을 White 색상이고, 아래와 같이 선택하면, 블랙 색상을 사용할 수 있습니다. Set ▶ Preference 메뉴를 클릭하면, 다음과 같이 White 혹은 Black을 선택할 수 있습니다.

  • Home Dashboard : 저장된 대시보드에서 default 화면 변경
  • Query Timeout : 일정 시간동안 DB가 답이 없을 경우에 해당 질의 취소하여 웹서버와 DB 부하 방지, Default로 10초로 되어 있음.

아래는 Black으로 변경했을 때의 화면입니다.

2-6. 대시보드 저장하기

다양한 종류의 차트를 만들고, 주제별로 저장하여 나중에 해당 대시보드 화면을 쉽게 불러올 수 있습니다. 아래와 같이 디스크 모양의 아이콘을 클릭해 주세요.

그러면, 다음과 같은 화면이 나타나는데, 각각의 내용은 다음과 같습니다.

  • Board ID : 이것은 저장된 대시보드가 저장될 유일한 아이디 명을 기록한다. 중복될 수 없다.
  • Board Title : 이것은 화면에서 해당 대시보드를 선택할 때 사용하는 설명이다.

위와 같이 저장하면, 화면에 상단에 아래와 같이  위에서 저장한 보드 타이틀이 출력됩니다.

2-7. 차트 메뉴

만들어진 하나의 차트는 다양하게 표현될 수 있습니다. 차트의 우측 상단메뉴를 확인해 주세요.

  • 첫 번째 : 해당 차트만 별도의 웹 윈도우로 만들어서 링크로 활용할 수 있도록 해 준다.
  • 두 번째 : 해당 차트를 수정할 수 있는 다양한 메뉴 화면이 출력된다.
  • 세 번째 : 해당 차트를 리프레시 하여 새롭게 그린다.
  • 네번째 :  해당 차트를 삭제하는 메뉴이다.

2-8. 차트 수정 세부  메뉴

위의 두 번째 메뉴를 누를 경우 아래와 같이 다섯 개의 세부 항목이 나타납니다. 각각의 역할은 다음과 같습니다.

2-8-1. General 메뉴

해당 차트의 크기와 이름을 설정할 수 있습니다. 또한 차트를 클릭했을 경우의 동작 등이 설정 가능합니다.

2-8-2. Datas 메뉴

보려고 하는 태그를 추가, 변경, 삭제할 수 있습니다.

2-8-3. Axes 메뉴

좌표 축을 세부적으로 조절할 수 있습니다. 특히 Y-axis의 경우에는 Y 축의 시작 값을 0으로 할지 결정합니다.

2-8-4. Display 메뉴

실제 차트의 라인과 포인트의 크기 및 굵기, 색상을 설정합니다.

2-8-5. Time Range 메뉴

해당 차트의 시간 속성 값을 부여합니다. 출력할 전체의 시간 범위를 설정할 수 있을 뿐만 아니라, 실시간 데이터 입력 시 해당 차트를 Refresh 하기 위한 주기도 설정할 수 있습니다.

2-9. 차트 수정후 주의할 점

변경된 차트는 반드시 대시보드에 반영되어야 하는데, 이를 위해서는 아래의 그림과 같이 번호 순서대로 클릭해야 합니다.

  • 만일 차트가 변경되었으면, 1번의 체크박스가 붉은색으로 변경되고, 이를 클릭하면 검은색으로 다시 바뀐다.
  • 이때 2번의 체크박스를 눌러서 변경된 차트를 대시보드에 반영하도록 한다.
  • 그리고, 변경된 차트를 영구히 저장하기 위해서는 앞에서 언급한 것처럼 대시보드 저장을 반드시 수행한다.

3. 다양한 차트 표현

3-1. 선 없는 점, 면 차트 (전기 사용량)

3-2. 가는 선과 점, 면 차트 (평균 습도)

3-3. 점만 활용한 차트 (평균 온도)

3-4. 하나의 태그에 대한 다양한 통계 출력 (풍량 평균/최소/최대)

4. 기타 : 데이터 추적 및 분석

Tag Analyzer의 진정한 능력은 위의 차트를 기반으로 실제 통계 데이터로부터 실제 Raw 데이터까지의 추적과 분석이 가능하다는 것입니다. 그러나, 이 부분은 세부적인 내용이 많기 때문에 이후 다른  튜토리얼을 통해 다시 소개해 드리겠습니다.

이상으로 기본적인 Tag Analyzer의 기능들을 보여드렸습니다. Tag Analyzer를 활용하여 다양한 차트를 구현하실 수 있습니다. 다양한 태그 시각화와 분석에 많은 도움이 되었기를 바랍니다.

연관 포스트

C언어로 Binary data를 Machbase에 넣기

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

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

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