Is there any official roadmap on influxdb tools development?
For the current 1.2.x version database maintanance (backup/restore, import/export, db management, etc) functions are scattered across several binaries (influxd, influx, influx_inspect) and also have some mutual inconsistencies and limitations in supported input/output formats:
No support for stdin/stdout for in/out files in cli tools (at least, no hints in docs). So, no unix-way pipes for data processing.
influx cli tool does not have line protocol format for select queries output. At the same time “json|csv|column” formats in influx cannot be used natively to insert data back into database without external tool for conversion to line protocol first.
Having (1) and (2) implemented would allow to selectively copy series data between influxdb instances over network (netcat, ssh tunnels, etc).
influx -import and influx__inspect -export use line protocol but can’t be used over pipes. And why is import/export functionality split between two tools?
influx tool can query remote databases with “-host” and “-database” command line options, but there is no way to do this inside influx shell - there is no support for “select smth from remotedbUrl” or “select smth into localdb from remotedbUrl” kind of queries. My guess is, that it should not be to difficult to implement if influx uses http api for its operations, just add support for url-style database.retention.measurement specification in query syntax?
Binary backup/restore tools seem to be the most efficient way to move databases between servers. But there is a show stopper: restore overrides existing meta information with the one in backup.
Some minor remarks/wishlist.
- Would be handy to have some documentation embedded into influx tool as it is done in mysql or postgres clients, and auto-completion for influxql keywords and database/measurement/tag/field names in shell.
- Long-running query in influx cannot be interrupted with Ctrl-C without exiting from influx shell (or you have to kill query from another inlux shell instance). What about adding some “query timeout” parameter in QL syntax to auto-stop long queries? Global query timeout parameter is too inflexible. Or even better: add a set of “guard” parameters in query syntax to limit queries not only by time but also by RAM,CPU or other resources usage?
- Support for DateTime-related formats in cli tools is sparse: rfc3339 in influx__inspect -start and -end options, rfc339 and integer (with precision) in influx .
- Timestamp precision is named “precision” in cli tools and line protocol, while in http api it is named “epoch”.