influxdb - influxdb 插入错误:float 类型,已作为整数类型存在 drop=1
问题描述
一些测量字段很少出现大于 0 的值,我们需要确保第一次插入一个浮点值,以确保 influxdb 将该字段分配为浮点数。因为如果我们对演员表不小心,就会发生这样的事情:
Traceback (most recent call last):
File "./src/[REDACTED]", line 301, in <module>
insert(test.results, test.results)
File "./src/[REDACTED]", line 193, in upload
ret = creds.write_points([{"measurement": "networks",
File "/usr/local/src/[REDACTED]/venv/lib/python3.8/site-packages/influxdb/client.py", line 603, in write_points
return self._write_points(points=points,
File "/usr/local/src/[REDACTED]/venv/lib/python3.8/site-packages/influxdb/client.py", line 681, in _write_points
self.write(
File "/usr/local/src/[REDACTED]/venv/lib/python3.8/site-packages/influxdb/client.py", line 413, in write
self.request(
File "/usr/local/src/[REDACTED]/venv/lib/python3.8/site-packages/influxdb/client.py", line 378, in request
raise InfluxDBClientError(err_msg, response.status_code)
influxdb.exceptions.InfluxDBClientError: 400: {"error":"partial write: field type conflict: input field \"example_field\" on measurement \"[REDACTED]\" is type float, already exists as type integer dropped=1"}
解决方案
如 influxdb 1.8文档中所述,更改字段类型很复杂。一个非常简单的解决方案是在使用适当的 cast 部署代码后更改其名称example_field2 = float(example_field)
,因此现在 example_field (int) 和 example_field2 (float) 可以共存(可能直到当前的分片存在?),并且 example_field2 应该带有 float 类型数据。
推荐阅读
- pip - pip install 找不到 pip search 公布的最新版本
- typescript - 打字稿泛型错误地处理部分
- c# - .Net Core 3 EF - 订单包含数组
- c# - TypeInitializationException Stripe.StripeConfiguration 支付
- java - @PostConstruct 和@PreDestroy 注解的实时应用使用
- wordpress - 在不调用 setAttributes 的情况下重新渲染 Gutenberg 块?
- components - 移位 BCD 位时的 VHDL 问题
- java - 即使使用 dp,布局也不适合屏幕截图
- ibm-mobilefirst - IBM 移动迁移:Worklight 6.2 到 8.0
- python - 如何在 Django 上做日志系统?