InfluxDB是一个优秀的时序数据库,是最近几年物联网发展下业务需求下诞生的一款tsdb。据某云,某排行榜都有它的身影。
虽然他是go写的,我们就用python来实现下操作(因为我有个别的功能用python比较方便),操作非常简单。
大道至简 越简单的越易维护
pip install influxdb
from influxdb import InfluxDBClient
class DbHelper:
"""docstring for DbHelper"""
def __init__(self):
self.client = InfluxDBClient('you influxdb server', 8086, 'your username', 'your password', 'your datebases') # 连接数据库
current_time_utc = datetime.datetime.utcnow().isoformat("T")
w_json = [{
"measurement": 'iot_data',
"time": current_time_utc, #注意这里可以显式指定 也可以不写 如果写了就用utc时间
"tags": {
'senderid': '111111',
'sensorid': '100000',
'supplierid':'2020',
},
"fields": {
'raw': jsonraw,
}
}]
res=self.client.write_points(w_json)
对应关系数据库 ,measurement就是表,tags就是索引列,fields就是内容列。 那他还有个牛掰的地方就是和mongodb一样,可以不预定义列。开发起来是不是很溜?
SELECT * FROM "iot_data" WHERE time >='2020-04-03 17:59:39'
SELECT * FROM "iot_data" WHERE time >='2020-04-03 17:59:39' tz('Asia/Shanghai')
这两个查询 一个是把输入时间字符串当成utc时间 来查询; 一个是当成我们东八区的、我们最熟悉的时间来查询。
insert xx_measurement名,longitude=120.33,latitude=23.33 temperature=22 154080088649461462
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946831/viewspace-3124840/ ,如需转载,请注明出处,否则将追究法律责任。