我目前正在为Python中influx_client的一个基本函数而苦苦挣扎。我有一组时间序列数据,我想将它们添加到不同客户端上的influxdb中。我当前的代码看起来有点像这样:
client = InfluxDBClient(url=f"http://{ip}:{port_db}", token=token, org=org)
write_api = client.write_api(write_options=ASYNCHRONOUS)
p = Point("title_meas").field("column_data", value_data)
write_api.write(bucket=bucket, org=org, record=p)
现在我有一个特定的时间戳为每个点,我想要使用的InfluxDB键/时间戳,但无论我尝试-它不断增加我的主机设备的系统时间(但由于我正在处理历史数据,我需要调整时间戳)。我如何实现我的自定义时间戳,或者是否有一种比使用Point
方法逐行添加数据更简单的方法……也许是像熊猫数据帧那样的东西?感谢您的每一条建议。
发布于 2021-08-09 14:11:23
您可以通过line协议、Point对象、Pandas Dataframe或json Dictionary编写代码。所有这些都是可行的方法。
如果你关心的是吞吐量线路协议是最快的,但如果微小的速度差异并不重要,那就使用你想要的任何东西。我强烈推荐阅读this。您希望在流入数据点上修改的“标记”称为"_time“。
要将其添加到点,请执行以下操作:
p = Point("title_meas").field("column_data", value_data).time('2021-08-09T18:04:56.865943'))
或json字典协议:
p = {'measurement':'title_meas', 'time': '2021-08-09T18:04:56.865943',
'tags':{'sometag': 'sometag'},
'fields':{'column_data': value_data}
}
确保时间戳符合您的期望的最简单方法是使用ISO/格式的。
https://stackoverflow.com/questions/68666657
复制