使用 SQL 查询数据
InfluxDB 3 Core 处于公开 Alpha 阶段
InfluxDB 3 Core 处于公开 alpha 阶段,可用于测试和反馈,但不适用于生产环境。产品和本文档都在不断完善中。我们欢迎并鼓励您提供关于 alpha 体验的意见,并邀请您加入我们的公共频道以获取更新和分享反馈。
了解如何使用 SQL 查询存储在 InfluxDB 3 Core 中的数据。
使用 SQL 探索您的模式
使用 SQL 探索 InfluxDB 3 Core 数据库中的数据模式。
列出表
SHOW TABLES
列出表中的列
SHOW COLUMNS IN table
执行基本 SQL 查询
从 InfluxDB 3 Core 查询数据的基本 SQL 查询最常包括 SELECT
、FROM
和 WHERE
子句。
SELECT temp, room FROM home WHERE time >= now() - INTERVAL '1 day'
使用 SQL 聚合数据
使用聚合和选择器函数对您的时间序列数据执行聚合操作。
按组聚合字段
SELECT
mean(field1) AS mean,
selector_first(field2)['value'] as first,
tag1
FROM home
GROUP BY tag
按基于时间的间隔聚合
SELECT
DATE_BIN(INTERVAL '1 hour', time, '2022-01-01T00:00:00Z'::TIMESTAMP) AS time,
mean(field1),
sum(field2),
tag1
FROM home
GROUP BY 1, tag1
将值转换为不同类型
使用 CAST
函数或双冒号 ::
转换简写语法将值转换为特定类型。
-- CAST clause
SELECT CAST(1234.5 AS BIGINT)
-- Double-colon casting shorthand
SELECT 1234.5::BIGINT
填充数据中的空白
使用 date_bin_gapfill
和 interpolate
或 locf
来填充没有返回数据的时间空白。
SELECT
date_bin_gapfill(INTERVAL '30 minutes', time) as time,
room,
interpolate(avg(temp))
FROM home
WHERE
time >= '2022-01-01T08:00:00Z'
AND time <= '2022-01-01T10:00:00Z'
GROUP BY 1, room
使用参数化 SQL 查询
使用参数化查询以防止注入攻击并使查询更具可重用性。
使用 Go 和 influxdb3-go 客户端
// Use the $parameter syntax to reference parameters in a query.
// The following SQL query contains $room and $min_temp placeholders.
query := `
SELECT * FROM home
WHERE time >= $min_time
AND temp >= $min_temp
AND room = $room`
// Assign parameter names to input values.
parameters := influxdb3.QueryParameters{
"room": "Kitchen",
"min_temp": 20.0,
"min_time": "2024-03-18 00:00:00.00",
}
// Call the client's function to query InfluxDB with parameters.
iterator, err := client.QueryWithParameters(context.Background(), query, parameters)
此页面是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB 3 Core 和本文档的反馈和错误报告。要获得支持,请使用以下资源
拥有年度合同或支持合同的客户可以联系 InfluxData 支持。