데이터 스트림 소개

Python으로 IoT 데이터 분석하기

Matthias Voppichler

IT Developer

데이터 스트림이란?

  • 지속적인 데이터 흐름
  • 예시
    • 트위터 메시지
    • 온라인 뉴스 기사
    • 비디오 스트림
    • 센서 데이터(IoT)
    • 시장 주문(금융)
Python으로 IoT 데이터 분석하기

데이터 스트림이란?

  • 지속적인 데이터 흐름
  • 예시
    • 트위터 메시지
    • 온라인 뉴스 기사
    • 비디오 스트림
    • 센서 데이터(IoT)
    • 시장 주문(금융)
Python으로 IoT 데이터 분석하기

MQTT

  • 메시지 프로토콜
  • 발행/구독
  • 경량

서버 -> 메시지 브로커 역할

클라이언트:

  • 브로커에 연결
  • 데이터 발행
  • 토픽 구독

Message Queuing Telemetry Transport

MQTT 데이터 흐름 - 생산자 -> 브로커 -> 소비자

Python으로 IoT 데이터 분석하기

Python 라이브러리

Eclipse Paho™ MQTT Python 클라이언트

# Import MQTT library
import paho.mqtt

자세한 정보와 문서는 GitHub에서 확인하세요 https://github.com/eclipse/paho.mqtt.python

Python으로 IoT 데이터 분석하기

단일 메시지

import paho.mqtt.subscribe as subscribe
msg = subscribe.simple("paho/test/simple", 
                       hostname="test.mosquitto.org")

print(f"{msg.topic}, {msg.payload}")

출력:

paho/test/simple, {"time": 1549481572, "humidity": 77, "temp": 21}
Python으로 IoT 데이터 분석하기

콜백

def on_message(client, userdata, message):

print(f"{message.topic} : {message.payload}")

인자

  • client - 클라이언트 인스턴스
  • userdata - 사용자 데이터
  • message - MQTTMessage 인스턴스
Python으로 IoT 데이터 분석하기

콜백

import paho.mqtt.subscribe as subscribe


subscribe.callback(on_message, topics="datacamp/roomtemp", hostname="test.mosquitto.org")
Python으로 IoT 데이터 분석하기

MQTT 구독

import paho.mqtt.subscribe as subscribe

def on_message(client, userdata, message): print("{} : {}".format(message.topic, message.payload))
subscribe.callback(on_message, topics="datacamp/roomtemp", hostname="test.mosquitto.org")
datacamp/roomtemp : b'{"time": 1543344857, "hum": 34, "temp": 24}'
datacamp/roomtemp : b'{"time": 1543344858, "hum": 35, "temp": 23}'
datacamp/roomtemp : b'{"time": 1543344860, "hum": 36, "temp": 22}'
datacamp/roomtemp : b'{"time": 1543344946, "hum": 37, "temp": 22}'
datacamp/roomtemp : b'{"time": 1543345010, "hum": 36, "temp": 13}'
Python으로 IoT 데이터 분석하기

Ayo berlatih!

Python으로 IoT 데이터 분석하기

Preparing Video For Download...