我正在使用 influxdb 尝试'measurements'使用 influxdb v4.0.0 在本地 influxdb 上编写一些内容...
我有点困惑,因为有些地方说你使用 dict 或者你可以使用 json 和/或线路协议......
从这里http://influxdb-python.readthedocs.io/en/latest/examples.html#tutorials-pandas从这里和这里https://github.com/influxdata/influxdb-python/blob/master/influxdb/客户端.py
1st -使用以下命令创建数据库对象:
InfluxDBClient('localhost', database='DBNAME')
Run Code Online (Sandbox Code Playgroud)
第二 -使用数据创建字典:
measurement = {}
measurement['measurement'] = 'energy'
measurement['tags'] = {}
measurement['fields'] = {}
measurement['tags']['MeterID'] = str(meterId)
measurement['fields']['Energy_Wh'] = str(eFrame.getReading())
Run Code Online (Sandbox Code Playgroud)
第三步 -将数据推送到 BD:
try:
self.db.write(measurement)
except Exception as e:
print e
Run Code Online (Sandbox Code Playgroud)
该程序可以运行,但没有数据存储在数据库中,而是我的控制台输出如下:
2017-01-11 12:41:09,741 - INFO - Saving Meter: MeterId = 09060178
u'points'
Meter-ID: 09060178 Energy Value (Wh): 10380300
{'fields': {'Energy_Wh': '10380300'}, 'tags': {'MeterID': …Run Code Online (Sandbox Code Playgroud) 我有一个Grafana + InfluxDB + Telegraf设置来监控我组织的服务器。我想制作一个仪表板,在其中监视多个服务器的计算机资源,例如 CPU、RAM 等。我想在 Grafana 仪表板中,如果我的服务器处理器高于 80%,则仅显示“0”;如果服务器处理器低于 80%,则显示“1”。为此,我如何使用CASE WHEN语句根据我设置的阈值显示 0/1。
我家里有很多电表,还有一个全屋电表,所有这些都向 influxdb 报告,我用 grafana 绘制图表。
我想要的是一个图表,其中所有仪表读数与整个房屋仪表分开堆叠,我希望将其显示在同一个图表上但不堆叠。
有人知道这是否可能吗?
我正在学习如何将 Graphana 与 InfluxDB 结合使用。我准备了一个简单的示例,它显示一个图表,其中包含随时间变化的字母出现次数。我使用简单的 InfluxDB 测量,其中包含一个标签letter和一个字段count。为了显示数据,我使用查询:
SELECT mean("count")
FROM "lettersCount"
WHERE ("letter" =~ /^$letter$/) AND $timeFilter
GROUP BY time($interval), "letter"
Run Code Online (Sandbox Code Playgroud)
例如
但正如您在我的示例中所看到的,该系列中的某些部分有点短(我的示例中的字母“p”),因为当时没有出现该字母。我正在寻找一种在没有测量的情况下显示先前值的方法。
Grafana 7.5.1 与 InfluxDB 1.8.2。我正在尝试创建一个表格,显示每个不同标签值的“单位”值之和。我正在获取数据,但默认情况下我需要按降序对总和进行排序。这是我的通量查询:
from(bucket: "consumption")
|> range(start: -1y)
|> filter(fn: (r) => r._measurement == "stuff" and r._field == "units" and r._value > 0)
|> group(columns: ["dc","tnt"])
|> sum(column: "_value")
|> sort(columns: ["_value"], desc: true)
|> map(fn: (r) => ({r with _value: r._value / 4.0}))
|> yield()
Run Code Online (Sandbox Code Playgroud)
我还有一个减少转换(计算 --> 总计)和组织字段转换。
但无论我在排序函数中做什么,它都不会改变表中的任何内容。该表始终按标签值(“dc”、“tnt”)的字母顺序排序。我需要它按 _value 降序排序。我究竟做错了什么?
谢谢!
目前我正在使用带有一张表的时间刻度数据库(timestamp、device_id、group_id、data jsonb)。我正在考虑切换到 influxdb 因为它具有扩展的可能性。数据大小:约10M行。
数据架构:
按组 ID 分组的所有记录均位于一个设备 ID 下。99% 的情况下,我需要通过设备 ID 或组 ID 以及可选的时间边界来获取所有数据点。无需按给定的 periodid 查询单个测量结果。保留 - 永远(仅根据需要删除)。
对于给定的要求,influxdb 是一个不错的选择吗?如果是这样,如何为此类用例组织存储桶/标签?
事实上,在大多数情况下,我不需要部分和跨设备查询数据,这可能很重要。
uint256我正在使用 InfluxDB,需要以全精度(无浮点)存储非常大的数字 ( )。
我目前正在使用字符串来实现此目的,但因此我失去了对这些数字执行算术运算的能力,这是我需要实现的。
前任。
{ _measurement=transfer, _field=amount, _value=90000000000000000000001 }
{ _measurement=transfer, _field=amount, _value=12000000000000000000000 }
Run Code Online (Sandbox Code Playgroud)
from(bucket: "xxx")
|> range(start: 0)
|> filter(fn: (r) => r._measurement == "transfer" and r._field == "amount")
|> toUint()
|> sum()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:runtime error @4:6-4:13: toInt: failed to evaluate map function: cannot convert string "90000000000000000000001" to int due to invalid syntax
是否有像ClickHouse 的 uint256这样的内置解决方案或第三方包来实现此目的?
我正在使用Db创建备份测量,如下所示:
SELECT * INTO backdata FROM sourcedata
Run Code Online (Sandbox Code Playgroud)
上面的命令创建了backdata测量.有没有办法克隆完整数据库与所有测量不同的dbname?
在InfluxDB测量中,如何更新与查询匹配的点的字段值?从v1.6开始,这仍然不容易实现吗?
如该GitHub票证中的示例所示,实现这种目标的最干净方法是什么?
UPDATE access_log SET username='something' WHERE mac='xxx'
Run Code Online (Sandbox Code Playgroud)
有什么比通过更新单个点从客户端驱动全部操作更好的方法吗?
将值写入 influxdb 时遇到一些问题。考虑下面的例子
curl -i -XPOST 'http://localhost:8086/write? db=devmessdaten&precision=rfc3339' --data-binary 'Pist,Anlage="ff4113bc-dec1-435c-9503-c31436dd98b8" value=0 2018-03-21T00:53:00Z'
Run Code Online (Sandbox Code Playgroud)
我得到了错误的时间戳
HTTP/1.1 400 Bad Request
Content-Type: application/json
Request-Id: dfa5b762-3af5-11e8-87d8-000000000000
X-Influxdb-Build: OSS
X-Influxdb-Error: unable to parse 'Pist,Anlage="ff4113bc-dec1-435c-9503-c31436dd98b8" value=0 2018-03-21T00:53:00Z': bad timestamp
X-Influxdb-Version: 1.5.1
X-Request-Id: dfa5b762-3af5-11e8-87d8-000000000000
Date: Sun, 08 Apr 2018 06:27:12 GMT
Content-Length: 127
Run Code Online (Sandbox Code Playgroud) 我创建了以下 Grafana 仪表板:
SELECT sum("value") FROM "rails.pageviews"
WHERE $timeFilter
GROUP BY time($__interval) fill(null)
Run Code Online (Sandbox Code Playgroud)
而图面板采用了完全相同的查询:
SELECT sum("value") FROM "rails.pageviews"
WHERE $timeFilter
GROUP BY time($__interval) fill(null)
Run Code Online (Sandbox Code Playgroud)
如何让单统计面板显示总浏览量?它应该是 12 (8+2+2) 而不是 4,对吧?
当我调试从 Influxdb 返回的数据时:
response:Object
results:Array[1]
0:Object
statement_id:0
series:Array[1]
0:Object
name:"rails.pageviews"
columns:Array[2]
0:"time"
1:"sum"
values:Array[73]
0:Array[1530870900000,null]
(...)
37:Array[1530882000000,null]
38:Array[1530882300000,8]
39:Array[1530882600000,null]
(...)
44:Array[1530884100000,null]
45:Array[1530884400000,2]
46:Array[1530884700000,null]
(...)
53:Array[1530886800000,null]
54:Array[1530887100000,2]
55:Array[1530887400000,null]
(...)
72:Array[1530892500000,null]
Run Code Online (Sandbox Code Playgroud) 我正在尝试将日期/时间数据写入 influxdb 并将数据查询到数据帧。
当我写数据日期时间时看起来像这样......
ticker= 'AAPL'
import yfinance as yf
df = yf.Ticker('AAPL').history(period="1d").index[0]
print(df)
output:
Timestamp('2023-01-05 00:00:00-0500', tz='America/New_York')
Run Code Online (Sandbox Code Playgroud)
...当我将数据查询到数据帧并打印它时,我得到:
df['_time']
output:
0 2023-01-05 05:00:00+00:00
Name: _time, dtype: datetime64[ns, tzutc()]
Run Code Online (Sandbox Code Playgroud)
我需要做什么才能在 influxdb 中正确写入时间?
请参阅下面的完整代码:
########## WRITE ##########
import yfinance as yf
import influxdb_client
from influxdb_client.client.write_api import SYNCHRONOUS, PointSettings
token = "my-token"
org = "my-org"
url = "my-url"
bucket = "stocks_us"
retention_policy = "autogen"
client = influxdb_client.InfluxDBClient(url=url, token=token, org=org)
write_api = client.write_api(write_options=SYNCHRONOUS)
df = yf.Ticker('AAPL').history(period="1d")
with client:
"""
Ingest DataFrame with default …Run Code Online (Sandbox Code Playgroud) influxdb ×12
grafana ×5
time ×2
fluxlang ×1
graph ×1
influxql ×1
json ×1
post ×1
postgresql ×1
python ×1
sql-update ×1
telegraf ×1
time-series ×1
timescaledb ×1