5G来了,广连接(mmTC)可以实现每平方千米100万的连接数(理论值),是4G的10倍,5G网络出现,配合其他技术,空间将在数据意义上剧烈压缩,车联网、智能家居、智能安防、智慧工厂、智慧能源都可能带来质的变化。那么随之而来的物联设备的数据也会几何级增长,大量的模拟量数据,开关量数据的存储,查询,可视化将会带来新的挑战。
基于时间序列的时序数据库几乎是专为这样的场景设计的,通过对时间的索引,可以加快查询,那么Azure上是否有类似的产品呢?答案是Azure Time Series Insights。
一. 时序数据库的基本概念
B站视频: https://www.bilibili.com/video/av76278175?p=1
二.实战Azure Time Series Insights
B站视频:https://www.bilibili.com/video/av76278175?p=2
创建IoT Hub;
创建时序见解;
从IoT Hub接收据;
在UI上查询数据;
三. 通过API 调用时序数据
B站视频:https://www.bilibili.com/video/av76278175?p=3
案例中用到的Python模拟器代码:
可参考官网教程:https://docs.azure.cn/zh-cn/iot-hub/quickstart-send-telemetry-python
import random
import time
# Using the Python Device SDK for IoT Hub:
# https://github.com/Azure/azure-iot-sdk-python
# The sample connects to a device-specific MQTT endpoint on your IoT Hub.
from azure.iot.device import IoTHubDeviceClient, Message
# The device connection string to authenticate the device with your IoT hub.
# Using the Azure CLI:
# az iot hub device-identity show-connection-string --hub-name {YourIoTHubName} --device-id MyNodeDevice --output table
CONNECTION_STRING = "your device conn string"
# Define the JSON message to send to IoT Hub.
TEMPERATURE = 120.0
HUMIDITY = 160
MSG_TXT = '{{"temperature": {temperature},"humidity": {humidity}}}'
def iothub_client_init():
# Create an IoT Hub client
client = IoTHubDeviceClient.create_from_connection_string(CONNECTION_STRING)
return client
def iothub_client_telemetry_sample_run():
try:
client = iothub_client_init()
print ( "IoT Hub device sending periodic messages, press Ctrl-C to exit" )
while True:
# Build the message with simulated telemetry values.
temperature = TEMPERATURE + (random.random() * 15)
humidity = HUMIDITY + (random.random() * 20)
msg_txt_formatted = MSG_TXT.format(temperature=temperature, humidity=humidity)
message = Message(msg_txt_formatted)
# Add a custom application property to the message.
# An IoT hub can filter on these properties without access to the message body.
if temperature > 30:
message.custom_properties["temperatureAlert"] = "true"
else:
message.custom_properties["temperatureAlert"] = "false"
# Send the message.
print( "Sending message: {}".format(message) )
client.send_message(message)
print ( "Message successfully sent" )
time.sleep(1)
except KeyboardInterrupt:
print ( "IoTHubClient sample stopped" )
if __name__ == '__main__':
print ( "IoT Hub Quickstart #1 - Simulated device" )
print ( "Press Ctrl-C to exit" )
iothub_client_telemetry_sample_run()
相关产品的链接:
IoT Hub:https://docs.azure.cn/zh-cn/iot-hub/
时序见解:https://www.azure.cn/zh-cn/home/features/time-series-insights/
视频中PPT 内容如下: