L'interface en ligne de commande (influx) de TSDB for InfluxDB® est un shell qui interagit avec l'API HTTP. Vous pouvez utiliser influx pour écrire des données manuellement ou à partir de fichiers, interroger des données de manière interactive et consulter les résultats des requêtes dans différents formats.
Télécharger le CLI
Téléchargez le paquet binaire correspondant à votre système d'exploitation via les liens suivants :
Extrayez le paquet téléchargé et accédez au dossier extrait. Ce dossier contient l'outil en ligne de commande influx (influx.exe sous Windows).
Démarrer influx
Démarrez influx dans votre terminal. Une fois connecté à l'instance TSDB for InfluxDB®, la sortie suivante s'affiche :
$ ./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® utilise SSL pour sécuriser les données en transit. Les paramètres -ssl, -username, -password, -host et -port sont obligatoires lors de chaque connexion à TSDB for InfluxDB®.
Description des paramètres
-ssl: établit une connexion au serveur InfluxDB via HTTPS.-username: nom d'utilisateur du compte que vous avez créé.-password: mot de passe du compte.-host: endpoint de l'instance. Remplacezts-xxxxxxpar l'ID de votre instance.-port: port réseau. Utilisez8086pour les connexions VPC et3242pour les connexions Internet.
Vous pouvez désormais saisir des requêtes InfluxQL et certaines commandes CLI directement dans votre terminal. Pour exécuter des requêtes Flux, définissez l'option -type sur flux. Exécutez help à tout moment pour lister les commandes disponibles. Pour interrompre une requête InfluxQL longue, appuyez sur Ctrl+C.
Variables d'environnement
Les variables d'environnement suivantes permettent de configurer les paramètres du client influx. Vous pouvez les spécifier en minuscules ou en majuscules. Les majuscules sont prioritaires.
HTTP_PROXY
Définit le serveur proxy utilisé par HTTP.
Format de la valeur : [protocol://][:port]
HTTP_PROXY=http://localhost:1234
HTTPS_PROXY
Définit le serveur proxy utilisé par HTTPS. Si HTTP_PROXY et HTTPS_PROXY sont tous deux définis, HTTPS_PROXY est prioritaire.
Format de la valeur : [protocol://][:port]
HTTPS_PROXY=https://localhost:1443
NO_PROXY
Liste des noms d'hôte qui ne passent par aucun proxy. Si cette variable contient uniquement un astérisque (*), elle correspond à tous les hôtes.
Format de la valeur : séparez plusieurs hôtes par des virgules.
NO_PROXY=123.45.67.89,123.45.67.90
Options d'influx
Vous pouvez transmettre des options à influx lorsque vous démarrez influx. Exécutez $ influx --help pour lister les options disponibles. La liste suivante décrit brièvement chaque option. Les options -execute, -format et -import sont détaillées plus loin dans cette section.
-compressed
Définissez cette option sur true si le fichier d'importation est compressé. -compressed doit être utilisée conjointement avec -import.
Définit le niveau de cohérence d'écriture.
-database 'database name'
Base de données à laquelle influx se connecte.
-execute '<command>'
Exécute une commande InfluxQL puis quitte le programme.
-format 'json|csv|column'
Spécifie le format des réponses du serveur.
-host '<hostname>'
Hôte auquel influx se connecte.
-import
Importe de nouvelles données depuis un fichier, ou importe une base de données précédemment exportée vers un fichier.
-password '<password>'
Mot de passe utilisé par influx pour se connecter au serveur. Si vous laissez cette option vide (-password ''), influx vous invite à saisir le mot de passe. Vous pouvez également utiliser la variable d'environnement INFLUX_PASSWORD pour définir le mot de passe du CLI.
-path
Chemin d'accès au fichier d'importation. -path doit être utilisée conjointement avec -import.
-port 'port #'
Port auquel influx se connecte. Par défaut, TSDB for InfluxDB® fonctionne sur le port 3242.
-pps
Nombre de points de données par seconde autorisé pour l'importation. Par défaut, pps est défini sur 0 et influx ne limite pas le taux d'importation. -pps doit être utilisée conjointement avec -import.
-precision 'rfc3339|h|m|s|ms|u|ns'
Spécifie le format et la précision des horodatages pour les requêtes et les écritures : rfc3339 (YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ), h (heures), m (minutes), s (secondes), ms (millisecondes), u (microsecondes) ou ns (nanosecondes). La précision par défaut est la nanoseconde.
-pretty
Formate la sortie JSON pour en améliorer la lisibilité.
-ssl
Utilise HTTPS pour les requêtes.
-type
Détermine le shell interactif à utiliser. La valeur par défaut est influxql. Pour utiliser le shell REPL Flux, définissez -type sur flux.
-username 'username'
Nom d'utilisateur employé par influx pour se connecter au serveur. Vous pouvez également utiliser la variable d'environnement INFLUX_USERNAME pour définir le nom d'utilisateur du CLI.
-version
Affiche la version de TSDB for InfluxDB® et quitte le programme.
Utiliser -execute pour exécuter une commande InfluxQL et quitter
Exécutez une requête ne nécessitant pas de base de données :
$ influx -ssl -username <Username> -password <Password> -host <Endpoint> -port 3242 -execute 'SHOW DATABASES'
name: databases
---------------
name
NOAA_water_database
_internal
telegraf
pirates
Exécutez une requête nécessitant une base de données et modifiez la précision de l'horodatage :
$ 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
Utiliser -format pour spécifier le format des réponses du serveur
Le format par défaut est column :
$ influx -ssl -username <Username> -password <Password> -host <Endpoint> -port 3242 -format=column
[...]
> SHOW DATABASES
name: databases
---------------
name
NOAA_water_database
_internal
telegraf
pirates
Modifiez le format en 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
Modifiez le format en 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"]]}]}]}
Modifiez le format en JSON et activez la sortie formatée :
$ 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"
]
]
}
]
}
]
}
Utilisez -import pour importer des données depuis un fichier
Le fichier d'importation se compose de deux parties :
Exemple :
Supposons qu'une base de données nommée pirates et une politique de rétention nommée oneday soient déjà créées.
Fichier (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
Commande :
$influx -ssl -username <Username> -password <Password> -host <Endpoint> -port 3242 -import -path=datarrr.txt -precision=s
Résultat :
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
Remarque
Prenez note des points suivants concernant -import :
-
Utilisez
-ppspour définir le nombre de points de données par seconde autorisé lors de l'écriture des données dans la base. Par défaut, pps est défini sur 0 et
influxne limite pas le taux d'importation.
-
L'importation de fichiers .gz est prise en charge. Il suffit d'ajouter
-compressedà la commande.
Fournissez des horodatages pour les points de données du fichier. TSDB for InfluxDB® attribue le même horodatage aux points de données qui n'en possèdent pas, ce qui peut entraîner des écrasements de données inattendus.
Si votre fichier de données contient plus de 5 000 points, il peut être nécessaire de le diviser en plusieurs fichiers afin d'écrire les données dans TSDB for InfluxDB® par lots. Privilégiez des lots de 5 000 ou 10 000 points de données. Des lots plus petits génèrent davantage de requêtes HTTP, ce qui nuit aux performances optimales. Par défaut, les requêtes HTTP expirent après cinq secondes. TSDB for InfluxDB® tente toujours d'écrire les points de données après une expiration, mais sans garantie de succès.
Commandes influx
Saisissez help dans le CLI pour lister certaines commandes disponibles.
Commandes
La liste suivante décrit brièvement chaque commande. La commande insert est détaillée plus loin dans cette section.
auth
Vous invite à saisir un nom d'utilisateur et un mot de passe. Ces identifiants sont requis par influx pour envoyer des requêtes à la base de données. Vous pouvez également utiliser les variables d'environnement INFLUX_USERNAME et INFLUX_PASSWORD pour configurer le nom d'utilisateur et le mot de passe du CLI.
chunked
Active les réponses fragmentées du serveur lors de l'exécution d'une requête. Cette fonctionnalité est activée par défaut.
chunk size <size>
Définit la taille des fragments de réponse. La taille par défaut est de 10 000. Définir la taille sur 0 rétablit la valeur par défaut.
clear [ database | db | retention policy | rp ]
Efface le contexte actuel de la base de données ou de la politique de rétention.
connect <host:port>
Établit une connexion à un autre serveur sans quitter le shell. Par défaut, influx se connecte à localhost:8086. Si vous ne spécifiez ni hôte ni port, influx applique les valeurs par défaut aux paramètres non renseignés.
consistency <level>
Définit le niveau de cohérence d'écriture : any, one, quorum ou all.
Ctrl+C
Interrompt la requête en cours d'exécution. Cette commande s'avère utile lorsqu'une requête interactive tarde à retourner des résultats parce qu'elle tente de renvoyer un volume de données trop important.
exit quit Ctrl+D
Quitte le shell influx.
format <format>
Spécifie le format des réponses du serveur : json, csv ou column.
history
Affiche l'historique de vos commandes. Pour réutiliser une commande précédente dans le shell, appuyez sur la flèche vers le haut. influx conserve vos 1 000 dernières commandes dans le fichier .influx_history situé dans votre répertoire personnel.
insert
Écrit des données en utilisant le protocole line protocol.
precision <format>
Spécifie le format et la précision des horodatages pour les requêtes et les écritures : rfc3339 (YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ), h (heures), m (minutes), s (secondes), ms (millisecondes), u (microsecondes) ou ns (nanosecondes). La précision par défaut est la nanoseconde.
pretty
Formate la sortie JSON pour en améliorer la lisibilité.
settings
Affiche les paramètres actuels du shell, notamment Host, Username, Database, Retention Policy, l'état de Pretty, l'état de Chunked, Chunk Size et Format.
use [ "<database_name>" | "<database_name>"."<retention policy_name>" ]
Définit la base de données et/ou la politique de rétention actuelle. Une fois que influx a défini une base de données et/ou une politique de rétention, il n'est plus nécessaire de les spécifier dans les requêtes. En l'absence de politique de rétention explicite, influx interroge automatiquement la politique de rétention par défaut (DEFAULT) de la base de données.
Utiliser insert pour écrire des données dans TSDB for InfluxDB®
Saisissez insert suivi de données au format line protocol pour écrire des données dans TSDB for InfluxDB®. Utilisez insert into <retention policy> <line protocol> pour écrire des données dans une politique de rétention spécifique.
Écrivez des données dans un champ unique de la mesure treasures portant le tag captain_id = pirate_king. influx écrit automatiquement les données dans la politique de rétention par défaut (DEFAULT) de la base de données.
> INSERT treasures,captain_id=pirate_king value=2
>
Écrivez le même point de données dans la politique de rétention existante oneday :
> INSERT INTO oneday treasures,captain_id=pirate_king value=2
Using retention policy oneday
>
Requête
Toutes les requêtes InfluxQL peuvent être exécutées dans influx.
Pour consulter la documentation relative à InfluxQL, reportez-vous à Présentation de l'exploration des données, Exploration du schéma et Gestion des bases de données.