La interfaz de línea de comandos (influx) de TSDB for InfluxDB® es una shell que interactúa con la API HTTP. Puede utilizar influx para escribir datos manualmente o desde archivos, consultar datos de forma interactiva y ver los resultados de las consultas en diferentes formatos.
Descargar la CLI
Descargue el paquete binario para su sistema operativo desde los siguientes enlaces:
Extraiga el paquete descargado y vaya a la carpeta extraída. La carpeta contiene la herramienta de línea de comandos influx (influx.exe en Windows).
Iniciar influx
Inicie influx en su terminal. Después de conectarse a la instancia de TSDB for InfluxDB®, se muestra la siguiente salida:
$ ./influx -ssl -username "myname" -password "mypassword" -host ts-xxxxxx.influxdata.rds.aliyuncs.com -port 3242
Connected to https://<Endpoint>:3242 version 1.8.x
InfluxDB shell version: 1.8.x
TSDB for InfluxDB® utiliza SSL para proteger los datos en tránsito. Los parámetros -ssl, -username, -password, -host y -port son obligatorios cada vez que se conecta a TSDB for InfluxDB®.
Descripción de parámetros
-ssl: se conecta al servidor de InfluxDB mediante HTTPS.-username: el nombre de usuario de la cuenta que creó.-password: la contraseña de la cuenta.-host: el endpoint de la instancia. Reemplacets-xxxxxxcon su ID de instancia.-port: el puerto de red. Utilice8086para conexiones VPC y3242para conexiones a Internet.
Ahora puede introducir consultas InfluxQL y algunos comandos de la CLI directamente en su terminal. Para introducir consultas Flux, establezca la opción -type en flux. Puede ejecutar help en cualquier momento para listar los comandos disponibles. Para interrumpir una consulta InfluxQL de larga duración, presione Ctrl+C.
Variables de entorno
Las siguientes variables de entorno permiten configurar los ajustes del cliente influx. Puede especificarlas en minúsculas o mayúsculas. Las mayúsculas tienen prioridad.
HTTP_PROXY
Define el servidor proxy que utiliza HTTP.
Formato de valor: [protocol://][:puerto]
HTTP_PROXY=http://localhost:1234
HTTPS_PROXY
Define el servidor proxy que utiliza HTTPS. Si tanto HTTP_PROXY como HTTPS_PROXY están configurados, HTTPS_PROXY tiene prioridad.
Formato de valor: [protocol://][:puerto]
HTTPS_PROXY=https://localhost:1443
NO_PROXY
Una lista de nombres de host que no pasan por ningún proxy. Si esta variable se establece únicamente con un asterisco (*), coincide con todos los hosts.
Formato de valor: separe varios hosts con comas.
NO_PROXY=123.45.67.89,123.45.67.90
Opciones de influx
Puede pasar opciones a influx cuando inicie influx. Ejecute $ influx --help para listar las opciones disponibles. La siguiente lista describe brevemente cada opción. Las opciones -execute, -format y -import se describen en detalle más adelante en esta sección.
-compressed
Establezca esta opción en true si el archivo de importación está comprimido. -compressed debe utilizarse junto con -import.
Establece el nivel de consistencia de escritura.
-database 'database name'
La base de datos a la que se conecta influx.
-execute '<command>'
Ejecuta un comando InfluxQL y sale.
-format 'json|csv|column'
Especifica el formato de las respuestas del servidor.
-host '<hostname>'
El host al que se conecta influx.
-import
Importa nuevos datos desde un archivo, o importa una base de datos que se exportó previamente a un archivo.
-password '<password>'
La contraseña que utiliza influx para conectarse al servidor. Si deja esta opción vacía (-password ''), influx le solicitará la contraseña. También puede usar la variable de entorno INFLUX_PASSWORD para establecer la contraseña de la CLI.
-path
La ruta al archivo de importación. -path debe utilizarse junto con -import.
-port 'port #'
El puerto al que se conecta influx. De forma predeterminada, TSDB for InfluxDB® se ejecuta en el puerto 3242.
-pps
El número de puntos de datos por segundo que permite la importación. De forma predeterminada, pps se establece en 0 y influx no limita la tasa de importación. -pps debe utilizarse junto con -import.
-precision 'rfc3339|h|m|s|ms|u|ns'
Especifica el formato y la precisión de las marcas de tiempo para consultas y escrituras: rfc3339 (YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ), h (horas), m (minutos), s (segundos), ms (milisegundos), u (microsegundos) o ns (nanosegundos). La precisión predeterminada es nanosegundos.
-pretty
Formatea la salida JSON para mejorar su legibilidad.
-ssl
Utiliza HTTPS para las solicitudes.
-type
Determina qué shell interactiva utilizar. El valor predeterminado es influxql. Para usar la shell REPL de Flux, establezca -type en flux.
-username 'username'
El nombre de usuario que utiliza influx para conectarse al servidor. También puede usar la variable de entorno INFLUX_USERNAME para establecer el nombre de usuario de la CLI.
-version
Muestra la versión de TSDB for InfluxDB® y sale.
Use -execute para ejecutar un comando InfluxQL y salir
Ejecute una consulta que no requiere una base de datos:
$ influx -ssl -username <Username> -password <Password> -host <Endpoint> -port 3242 -execute 'SHOW DATABASES'
name: databases
---------------
name
NOAA_water_database
_internal
telegraf
pirates
Ejecute una consulta que requiere una base de datos y cambie la precisión de la marca de tiempo:
$ influx -ssl -username <Username> -password <Password> -host <Endpoint> -port 3242 -execute 'SELECT * FROM "h2o_feet" LIMIT 3' -database="NOAA_water_database" -precision=rfc3339
name: h2o_feet
--------------
time level description location water_level
2015-08-18T00:00:00Z below 3 feet santa_monica 2.064
2015-08-18T00:00:00Z between 6 and 9 feet coyote_creek 8.12
2015-08-18T00:06:00Z between 6 and 9 feet coyote_creek 8.005
Use -format para especificar el formato de las respuestas del servidor
El formato predeterminado es column:
$ influx -ssl -username <Username> -password <Password> -host <Endpoint> -port 3242 -format=column
[...]
> SHOW DATABASES
name: databases
---------------
name
NOAA_water_database
_internal
telegraf
pirates
Cambie el formato a csv:
$ influx -ssl -username <Username> -password <Password> -host <Endpoint> -port 3242 -format=csv
[...]
> SHOW DATABASES
name,name
databases,NOAA_water_database
databases,_internal
databases,telegraf
databases,pirates
Cambie el formato a json:
$ influx -ssl -username <Username> -password <Password> -host <Endpoint> -port 3242 -format=json
[...]
> SHOW DATABASES
{"results":[{"series":[{"name":"databases","columns":["name"],"values":[["NOAA_water_database"],["_internal"],["telegraf"],["pirates"]]}]}]}
Cambie el formato a JSON y habilite la salida formateada:
$ influx -ssl -username <Username> -password <Password> -host <Endpoint> -port 3242 -format=json -pretty
[...]
> SHOW DATABASES
{
"results": [
{
"series": [
{
"name": "databases",
"columns": [
"name"
],
"values": [
[
"NOAA_water_database"
],
[
"_internal"
],
[
"telegraf"
],
[
"pirates"
]
]
}
]
}
]
}
Use -import para importar datos desde un archivo
El archivo de importación consta de dos partes:
Ejemplo:
Suponga que ya se crearon una base de datos llamada pirates y una política de retención llamada oneday.
Archivo (datarrr.txt):
# DML
# CONTEXT-DATABASE: pirates
# CONTEXT-RETENTION-POLICY: oneday
treasures,captain_id=dread_pirate_roberts value=801 1439856000
treasures,captain_id=flint value=29 1439856000
treasures,captain_id=sparrow value=38 1439856000
treasures,captain_id=tetra value=47 1439856000
treasures,captain_id=crunch value=109 1439858880
Comando:
$influx -ssl -username <Username> -password <Password> -host <Endpoint> -port 3242 -import -path=datarrr.txt -precision=s
Resultado:
2015/12/22 12:25:06 Processed 0 commands
2015/12/22 12:25:06 Processed 5 inserts
2015/12/22 12:25:06 Failed 0 inserts
Nota
Tenga en cuenta los siguientes puntos sobre -import:
-
Utilice
-ppspara establecer el número de puntos de datos por segundo que permite la importación cuando los puntos de datos se escriben en la base de datos. De forma predeterminada, pps se establece en 0 y
influxno limita la tasa de importación.
-
Puede importar archivos .gz. Solo necesita agregar
-compressedal comando.
Proporcione marcas de tiempo para los puntos de datos en el archivo. TSDB for InfluxDB® asigna la misma marca de tiempo a los puntos de datos que no tienen marcas de tiempo, lo cual puede causar sobrescrituras inesperadas de datos.
Si su archivo de datos contiene más de 5,000 puntos de datos, es posible que deba dividir el archivo en varios archivos para que los datos puedan escribirse en TSDB for InfluxDB® por lotes. Escriba datos en TSDB for InfluxDB® en lotes de 5,000 o 10,000 puntos de datos. Los lotes más pequeños generan más solicitudes HTTP, lo que impide un rendimiento óptimo. De forma predeterminada, las solicitudes HTTP expiran después de cinco segundos. TSDB for InfluxDB® aún intenta escribir los puntos de datos después de un tiempo de espera, pero no hay garantía de que los puntos de datos se escriban.
Comandos de influx
Introduzca help en la CLI para listar algunos de los comandos disponibles.
Comandos
La siguiente lista describe brevemente cada comando. El comando insert se describe en detalle más adelante en esta sección.
auth
Le solicita un nombre de usuario y una contraseña. influx requiere estas credenciales cuando envía solicitudes a la base de datos. También puede usar las variables de entorno INFLUX_USERNAME y INFLUX_PASSWORD para establecer el nombre de usuario y la contraseña de la CLI.
chunked
Habilita respuestas fragmentadas del servidor cuando se emite una consulta. Esta función está habilitada de forma predeterminada.
chunk size <size>
Establece el tamaño de fragmento de las respuestas. El tamaño predeterminado es 10,000. Establecer el tamaño en 0 restablece el tamaño de fragmento al valor predeterminado.
clear [ database | db | retention policy | rp ]
Borra el contexto actual de la base de datos o la política de retención.
connect <host:port>
Se conecta a otro servidor sin salir de la shell. De forma predeterminada, influx se conecta a localhost:8086. Si no especifica un host o puerto, influx asume los valores predeterminados para los parámetros no especificados.
consistency <level>
Establece el nivel de consistencia de escritura: any, one, quorum o all.
Ctrl+C
Interrumpe la consulta que se está ejecutando. Este comando es útil cuando una consulta interactiva no devuelve resultados durante mucho tiempo porque intenta devolver demasiados datos.
exit quit Ctrl+D
Sale de la shell de influx.
format <format>
Especifica el formato de las respuestas del servidor: json, csv o column.
history
Muestra su historial de comandos. Para usar un comando histórico en la shell, presione la tecla de flecha Arriba. influx almacena sus últimos 1,000 comandos en el archivo .influx_history en su directorio principal.
insert
Escribe datos mediante el protocolo de línea.
precision <format>
Especifica el formato y la precisión de las marcas de tiempo para consultas y escrituras: rfc3339 (YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ), h (horas), m (minutos), s (segundos), ms (milisegundos), u (microsegundos) o ns (nanosegundos). La precisión predeterminada es nanosegundos.
pretty
Formatea la salida JSON para mejorar su legibilidad.
settings
Muestra la configuración actual de la shell, incluyendo Host, Username, Database, Retention Policy, estado de Pretty, estado de Chunked, Chunk Size y Format.
use [ "<database_name>" | "<database_name>"."<retention policy_name>" ]
Establece la base de datos y/o la política de retención actuales. Después de que influx establece una base de datos y/o una política de retención, no necesita especificar la base de datos y/o la política de retención en las consultas. Si no especifica una política de retención, influx consulta automáticamente la política de retención predeterminada (DEFAULT) de la base de datos.
Use insert para escribir datos en TSDB for InfluxDB®
Introduzca insert seguido de datos en formato de protocolo de línea para escribir datos en TSDB for InfluxDB®. Utilice insert into <retention policy> <line protocol> para escribir datos en una política de retención específica.
Escriba datos en un solo campo de la medición treasures que tiene la etiqueta captain_id = pirate_king. influx escribe automáticamente los datos en la política de retención predeterminada (DEFAULT) de la base de datos.
> INSERT treasures,captain_id=pirate_king value=2
>
Escriba el mismo punto de datos en la política de retención existente oneday:
> INSERT INTO oneday treasures,captain_id=pirate_king value=2
Using retention policy oneday
>
Consulta
Puede ejecutar todas las consultas InfluxQL en influx.
Para obtener documentación sobre InfluxQL, consulte Overview of data exploration, Schema exploration y Database management.