티스토리 뷰

 

HDInsight Sample – Sensor Data Analysis

 

Hive Editor 를 통해 수집된 데이터로부터 Hive 쿼리를 통해 Hive 테이블을 생성하고 이를 Excel 2013에서 액세스해서 시각화 하는 예제를 알아보겠습니다. HDInsight Query Console 에 보면 Sensor Data Analysis 예제를 확인할 수 있으며 Building 데이터와 HAV (냉난방기) 데이터를 수집하여 Hive 분석하는 내용을 아래 그림처럼 설명해주고 있습니다.

먼저 데이터를 살펴보아야 할 것 같은데요, 일단 데이터는 이미 HDinsight에 연결된 저장소 계정의 컨테이너에 저장되어 있습니다. 데이터를 한번 열어보면 아래와 같은 CSV로 구성되어 있습니다. 전세계 빌딩에서 온도 정보가 수집된 데이터로 보시면 됩니다.

데이터를 수집하였으며 Hive 테이블로 EXTERNAL 테이블을 생성해보겠습니다. 아래와 같은 HIVE 쿼리 구문을 생성합니다. 저장소의 ‘,’로 구분된 CSV 파일로부터 hvac 라는 테이블을 생성합니다. Building 테이블도 마찬가지로 생성합니다.

DROP TABLE IF EXISTS hvac;

CREATE EXTERNAL TABLE hvac(date STRING, time STRING, targettemp BIGINT,

    actualtemp BIGINT,

    system BIGINT,

    systemage BIGINT,

    buildingid BIGINT)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

STORED AS TEXTFILE LOCATION

'wasb://hbddemo@hbd.blob.core.windows.net/HdiSamples/SensorSampleData/hvac/';

 

위에서 생성한 Hvac 테이블로부터 분석에서 원하는 로직을 통해 데이터를 가공하거나 그룹핑, 필터링 등을 수행할 수 있습니다. 여기서는 temp_diff, extremetemp 라는 열을 통해 ‘HOT, COLD, NORMAL’에 대한 정보가 추가되는 hvac_temperatures 테이블을 생성합니다.

DROP TABLE IF EXISTS hvac_temperatures;

CREATE TABLE hvac_temperatures AS

SELECT *, targettemp - actualtemp AS temp_diff,

    IF((targettemp - actualtemp) > 5, 'COLD',

    IF((targettemp - actualtemp) < -5, 'HOT', 'NORMAL')) AS temprange,

    IF((targettemp - actualtemp) > 5, '1', IF((targettemp - actualtemp) < -5, '1', 0)) AS extremetemp

FROM hvac;

그리고 hvac_temperatures 테이블과 Building 테이블을 조인하여 국가, 빌딩년도 등의 정보를 가진 hvac_building 테이블을 생성합니다.

 

쿼리를 하나씩 실행해도 되고 한꺼번에 쿼리를 실행해도 됩니다.

생성된 Hive 테이블을 SELECT 하는 쿼리를 실행하여 결과를 확인해도 되며 예제에서처럼 Hive ODBC Driver 를 통해 연결하여 Excel에서도 시각화하여 확인이 가능합니다. Hive ODBC Driver를 설치하고 아래와 같이 클러스터 주소와 사용자 계정, 비밀번호를 입력하여 DSN을 설정합니다.

Excel 2013PowerPivot 에서 외부 데이터 가져오기를 ODBC를 통해 진행하면 아래 그림과 같이 HDInsightHive 테이블을 확인할 수 있습니다.

피벗차트 또는 피벗테이블을 통해 시각화를 진행할 수 있습니다.

 

간략히 HDInsight Query Console 에서 Hive Query를 실행하여 시각화하는 내용까지 살펴보았습니다.

 

 

댓글