Con InfluxDB instalado, está listo para comenzar a hacer cosas increíbles. En esta sección usaremos el influx
interfaz de línea de comandos (CLI), que se incluye en todos los paquetes de InfluxDB y es una forma ligera y sencilla de interactuar con la base de datos. La CLI se comunica con InfluxDB directamente al realizar solicitudes a la API HTTP de InfluxDB a través del puerto 8086
por defecto.
Nota: La base de datos también se puede utilizar realizando solicitudes HTTP sin procesar. Consulte Escritura de datos y Consulta de datos para ver ejemplos con el
curl
solicitud.
Creando una base de datos
Si ha instalado InfluxDB localmente, el influx
El comando debe estar disponible a través de la línea de comando. Ejecutando influx
iniciará la CLI y se conectará automáticamente a la instancia local de InfluxDB (asumiendo que ya ha iniciado el servidor con service influxdb start
o corriendo influxd
directamente). La salida debería verse así:
$ influx -precision rfc3339 Connected to http://localhost:8086 version 1.3.x InfluxDB shell 1.3.x >
Notas:
- La API HTTP de InfluxDB se ejecuta en el puerto
8086
por defecto. Por lo tanto,influx
se conectará al puerto8086
ylocalhost
por defecto. Si necesita modificar estos valores predeterminados, ejecuteinflux --help
.- los
-precision
El argumento especifica el formato / precisión de las marcas de tiempo devueltas. En el ejemplo anterior,rfc3339
le dice a InfluxDB que devuelva las marcas de tiempo en Formato RFC3339 (YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ
).
La línea de comando ahora está lista para recibir entradas en forma de declaraciones del lenguaje de consulta Influx (también conocido como InfluxQL). Para salir del shell InfluxQL, escriba exit
y presione regresar.
Una nueva instalación de InfluxDB no tiene bases de datos (aparte del sistema _internal
), por lo que crear uno es nuestra primera tarea. Puede crear una base de datos con el CREATE DATABASE
Declaración de InfluxQL, donde
es el nombre de la base de datos que desea crear. Los nombres de las bases de datos pueden contener cualquier carácter Unicode siempre que el string está entre comillas dobles. Los nombres también se pueden dejar sin comillas si contienen solamente Letras, dígitos o guiones bajos ASCII y no comienzan con un dígito.
A lo largo de esta guía, usaremos el nombre de la base de datos mydb
:
>CREATEDATABASE mydb >
Nota: Después de presionar Enter, aparece un nuevo mensaje y no se muestra nada más. En la CLI, esto significa que la instrucción se ejecutó y no hubo errores para mostrar. Siempre se mostrará un error si algo salió mal. ¡La ausencia de malas noticias son buenas noticias!
Ahora que el mydb
se crea la base de datos, usaremos el SHOW DATABASES
declaración para mostrar todas las bases de datos existentes:
>SHOWDATABASES name: databases--------------- name _internal mydb >
Nota: los
_internal
InfluxDB crea y utiliza la base de datos para almacenar métricas de tiempo de ejecución internas. Compruébelo más tarde para obtener una visión interesante de cómo se está desempeñando InfluxDB bajo el capó.
diferente a SHOW DATABASES
, la mayoría de las declaraciones de InfluxQL deben operar en una base de datos específica. Puede nombrar explícitamente la base de datos con cada consulta, pero la CLI proporciona una declaración de conveniencia, USE
, que configurará automáticamente la base de datos para todas las solicitudes futuras. Por ejemplo:
>USE mydb Usingdatabase mydb >
Ahora los comandos futuros solo se ejecutarán contra el mydb
base de datos.
Escribir y explorar datos
Ahora que tenemos una base de datos, InfluxDB está listo para aceptar consultas y escrituras.
Primero, una breve introducción al almacén de datos. Los datos en InfluxDB están organizados por “series de tiempo”, que contienen un valor medido, como “cpu_load” o “temperatura”. Las series de tiempo tienen de cero a muchos points
, uno para cada muestra discreta de la métrica. Los puntos consisten en time
(una marca de tiempo), una measurement
(“Cpu_load”, por ejemplo), al menos una key-valor field
(el valor medido en sí, por ejemplo, “valor = 0,64” o “temperatura = 21,2”), y de cero a muchos key-valor tags
que contenga cualquier metadato sobre el valor (por ejemplo, “host = servidor01”, “región = EMEA”, “dc = Frankfurt”).
Conceptualmente puedes pensar en un measurement
como una tabla SQL, donde el índice principal siempre es el tiempo. tags
y fields
son efectivamente columnas en la tabla. tags
están indexados, y fields
no son. La diferencia es que, con InfluxDB, puede tener millones de mediciones, no tiene que definir esquemas por adelantado y null los valores no se almacenan.
Los puntos se escriben en InfluxDB utilizando el protocolo de línea, que sigue el siguiente formato:
[, = ...] = [, = ...] [unix-nano-timestamp]
Las siguientes líneas son ejemplos de puntos que se pueden escribir en InfluxDB:
cpu,host=serverA,region=us_west value=0.64 payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i 1434067467100293230 stock,symbol=AAPL bid=127.46,ask=127.48 temperature,machine=unit42,type=assembly external=25,internal=37 1434067467000000000
Nota: Puede encontrar más información sobre el protocolo de línea en la página Escribir sintaxis.
Para insertar un único punto de datos de serie temporal en InfluxDB usando la CLI, ingrese INSERT
seguido de un punto:
>INSERT cpu,host=serverA,region=us_west value=0.64>
Un punto con el nombre de medición de cpu
y etiquetas host
y region
ahora se ha escrito en la base de datos, con la medida value
de 0.64
.
Ahora consultaremos los datos que acabamos de escribir:
>SELECT"host","region","value"FROM"cpu" name: cpu ---------time host region value2015-10-21T19:28:07.580664347Z serverA us_west 0.64>
Nota: No proporcionamos una marca de tiempo al escribir nuestro punto. Cuando no se proporciona ninguna marca de tiempo para un punto, InfluxDB asigna la marca de tiempo actual local cuando se ingiere el punto. Eso significa que su marca de tiempo será diferente.
Intentemos almacenar otro tipo de datos, con dos campos en la misma medida:
>INSERT temperature,machine=unit42,type=assembly external=25,internal=37>
Para devolver todos los campos y etiquetas con una consulta, puede utilizar el *
operador:
>SELECT*FROM"temperature" name: temperature -----------------time external internal machine type2015-10-21T19:28:08.385013942Z 2537 unit42 assembly >
InfluxQL tiene muchas características y palabras clave que no se tratan aquí, incluida la compatibilidad con expresiones regulares estilo Go. Por ejemplo:
>SELECT*FROM/.*/LIMIT1-->SELECT*FROM"cpu_load_short"-->SELECT*FROM"cpu_load_short"WHERE"value">0.9
Esto es todo lo que necesita saber para escribir datos en InfluxDB y volver a consultarlos. Para obtener más información sobre el protocolo de escritura InfluxDB, consulte la guía sobre escritura de datos. Para explorar más el lenguaje de consulta, consulte la guía sobre consultas de datos. Para obtener más información sobre los conceptos de InfluxDB, consulte la página de conceptos clave.
Comentarios y puntuaciones del post
Agradecemos que desees proteger nuestra función añadiendo un comentario y dejando una valoración te estamos agradecidos.