我在我的项目中使用 influxdb,当一次写入多个点时,我遇到了查询问题
我正在使用 influxdb-python 向 influxdb 写入 1000 个唯一点。
在 influxdb-python 中有一个名为influxclient.write_points()的函数
我现在有两个选择:
- 每次写入每个点一次(1000 次)或
- 巩固1000分,把所有的分写一次。
第一个选项代码看起来像这样(仅限伪代码)并且它有效:
thousand_points = [0...9999
while i < 1000:
...
...
point = [{thousand_points[i]}] # A point must be converted to dictionary object first
influxclient.write_points(point, time_precision="ms")
i += 1
写完所有要点后,当我编写这样的查询时:
SELECT * FROM "mydb"
我得到了所有的1000分。
为了避免每次迭代中每次写入所增加的开销,我想探索一次编写多个点。功能支持write_points
。
write_points(点,time_precision=None,数据库=None,retention_policy=None,tags=None,batch_size=None)
写入多个时间序列名称。
参数:points(字典列表,每个字典代表一个点)——要写入数据库的点列表
所以,我所做的是:
thousand_points = [0...999]
points = []
while i < 1000:
...
...
points.append({thousand_points[i]}) # A point must be converted to dictionary object first
i += 1
influxclient.write_points(points, time_precision="ms")
通过此更改,当我查询时:
SELECT * FROM "mydb"
结果我只得到1分。我不明白为什么。
任何帮助都感激不尽。