Influxdb是一个时间序列数据库,它将数据及其属性存储在表中,通常称为度量。
flowxdb数据库中的表能否以csv格式提取到本地系统?
答案 0 :(得分:3)
在CLI中,可以使用以下命令在本地系统上下载表:
influx -database 'database_name' -execute 'SELECT * FROM table_name' -format csv > test.csv
答案 1 :(得分:1)
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)"
答案 2 :(得分:0)
使用CLI工具influx
,您可以为结果设置csv输出格式:
influx -host your_host -port 8086 -database 'your_db' -execute 'select * from your_metric' -format 'csv'
如果在本地InfluxDB主机上运行命令,则可以省略 -host
和-port
选项。
设置时间戳格式也有用-precision
选项。
答案 3 :(得分:0)
或者,您可以使用jq
将JSON输出转换为CSV,如下所示,这还允许您获取RFC3339格式的时间戳:
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
使用jq csv格式化程序-r
用于获取原始输出更多资源:
答案 4 :(得分:0)
surya rahul发布的答案为我工作,但进行了较小的修正。
原始:涌入-database'database_name'-执行'SELECT * FROM table_name'-format csv> test.csv 。
此命令向我返回错误 “错误分析查询:持续时间无效”
但是 。在查询部分中使用双引号“” 而不是单''的简单修改解决了此问题。 已修改:流入-database'database_name'-执行“ SELECT * FROM table_name” -format csv> test.csv 。
是新手,不确定它是如何工作的,但是它能工作。希望对您有所帮助。
答案 5 :(得分:-1)
轻松选择行 -> 右键单击 -> 导出所选 -> 选择所需的格式