Esta es el arreglo más exacta que te podemos brindar, pero primero estúdiala pausadamente y analiza si se puede adaptar a tu proyecto.
Solución:
En la CLI, se puede usar el siguiente comando para descargar tablas en el sistema local:
influx -database 'database_name' -execute 'SELECT * FROM table_name' -format csv > test.csv
Uso de la herramienta CLI influx
puede configurar el formato de salida csv para los resultados:
influx -host your_host -port 8086 -database 'your_db' -execute 'select * from your_metric' -format 'csv'
-host
y -port
las opciones se pueden omitir si el comando se ejecuta en el host InfluxDB local. También es útil -precision
opción para establecer el formato de la marca de tiempo.
Como alternativa, puede utilizar jq
para convertir la salida JSON a CSV de la siguiente manera, que también le permite obtener marcas de tiempo con formato RFC3339:
jq -r "(.results[0].series[0].columns), (.results[0].series[0].values[]) | @csv"
que da la salida
"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
y funciona porque:
(.results[0].series[0].columns)
obtiene los nombres de las columnas como array,
concatena la salida(.results[0].series[0].values[])
obtiene los valores de los datos como array| @csv
utiliza el formateador jq csv-r
se utiliza para obtener una salida sin procesar
Más recursos:
- Utilice https://jqplay.org/ para crear consultas
- Otros ejemplos: Convertir JSON array en CSV usando jq
- https://unix.stackexchange.com/questions/429241/convert-json-to-csv
- ¿Cómo convertir JSON simple arbitrario a CSV usando jq?
Recuerda dar recomendación a este artículo si te valió la pena.