Influxdb是一个时间序列数据库,它在表中存储数据及其属性,通常称为度量。influxdb数据库中的表是否可以csv格式提取到本地系统?
5vf7fwbs1#
在CLI中,以下命令可用于下载本地系统上的表:
influx -database 'database_name' -execute 'SELECT * FROM table_name' -format csv > test.csv
lymnna712#
使用CLI工具influx,您可以设置结果的csv输出格式:
influx
influx -host your_host -port 8086 -database 'your_db' -execute 'select * from your_metric' -format 'csv'
如果命令在本地InfluxDB主机上运行,则可以省略-host和-port选项。还有一个有用的-precision选项用于设置时间戳的格式。
-host
-port
-precision
g9icjywg3#
surya rahul发布的答案对我起作用了,但有小的修正。
此命令返回错误***"错误解析查询:无效持续时间"***
但是。在查询部分使用双引号**""代替单引号''的简单修改解决了这个问题。修改: * 流入-数据库'数据库名'-执行"从表名选择 "-格式csv〉test. csv。
作为新来的,不确定它是如何工作的,但它是有效的。希望它可能会有帮助。
flvtvl504#
CLI方式在其他答案中有解释。我使用的是HTTP-API方式:
curl -G 'http://localhost:8086/query' --data-urlencode "db=mydb" --data-urlencode "q=SELECT * FROM \"mymeasurement\" " -H "Accept: application/csv" > mytargetcsv.csv database = mydb measurement/table = mymeasurement CSV-File = mytargetcsv
您还可以从远程计算机使用此功能,并将查询分割为时间片(标题:存储器使用):
"q=SELECT * FROM \"mymeasurement\" where time > now() - 130d" "q=SELECT * FROM \"mymeasurement\" where (time < now() - 130d) and (time > now() - 260d)"
https://docs.influxdata.com/influxdb/v1.8/tools/api/
luaexgnf5#
或者,您可以使用jq将JSON输出转换为CSV,如下所示,这也允许您获取RFC3339格式的时间戳:
jq
jq -r "(.results[0].series[0].columns), (.results[0].series[0].values[]) | @csv"
它给出了输出
"time","ppm","T" "2019-01-17T19:45:00Z",864.5,18.54 "2019-01-17T19:50:00Z",861.4,18.545 "2019-01-17T19:55:00Z",866.2,18.5 "2019-01-17T20:00:00Z",863.9,18.47
并且工作的原因是:
(.results[0].series[0].columns)
,
(.results[0].series[0].values[])
| @csv
-r
其他资源:
myzjeezk6#
如果您的测量表名称中的特殊字符有问题,您会在终端收到来自influx的错误。示例:
$ influx -execute 'SELECT * FROM sonoff.0.energy.value'
您必须像下面这样使用带引号的查询:示例:
$ influx -execute 'SELECT * FROM "sonoff.0.energy.value"'
nhn9ugyo7#
只需轻松选择行-〉右键单击-〉导出选定内容-〉选择所需格式
7条答案
按热度按时间5vf7fwbs1#
在CLI中,以下命令可用于下载本地系统上的表:
lymnna712#
使用CLI工具
influx
,您可以设置结果的csv输出格式:如果命令在本地InfluxDB主机上运行,则可以省略
-host
和-port
选项。还有一个有用的-precision
选项用于设置时间戳的格式。g9icjywg3#
surya rahul发布的答案对我起作用了,但有小的修正。
此命令返回错误***"错误解析查询:无效持续时间"***
但是。在查询部分使用双引号**""代替单引号''的简单修改解决了这个问题。修改: * 流入-数据库'数据库名'-执行"从表名选择 "-格式csv〉test. csv。
作为新来的,不确定它是如何工作的,但它是有效的。希望它可能会有帮助。
flvtvl504#
CLI方式在其他答案中有解释。我使用的是HTTP-API方式:
您还可以从远程计算机使用此功能,并将查询分割为时间片(标题:存储器使用):
https://docs.influxdata.com/influxdb/v1.8/tools/api/
luaexgnf5#
或者,您可以使用
jq
将JSON输出转换为CSV,如下所示,这也允许您获取RFC3339格式的时间戳:它给出了输出
并且工作的原因是:
(.results[0].series[0].columns)
以数组形式获取列名,
连接输出(.results[0].series[0].values[])
以数组形式获取数据值| @csv
使用jq csv格式器-r
用于获取原始输出其他资源:
myzjeezk6#
如果您的测量表名称中的特殊字符有问题,您会在终端收到来自influx的错误。
示例:
您必须像下面这样使用带引号的查询:
示例:
nhn9ugyo7#
只需轻松选择行-〉右键单击-〉导出选定内容-〉选择所需格式