A interface de linha de comando (influx) do TSDB for InfluxDB® é um shell que interage com a API HTTP. Use o influx para gravar dados manualmente ou a partir de arquivos, consultar dados interativamente e visualizar resultados em diferentes formatos.
Baixe a CLI
Baixe o pacote binário correspondente ao seu sistema operacional nos links a seguir:
Extraia o pacote baixado e acesse a pasta extraída. Essa pasta contém a ferramenta de linha de comando influx (influx.exe no Windows).
Inicie o influx
Inicie o influx no terminal. Após conectar-se à instância do TSDB for InfluxDB®, o sistema exibe a seguinte saída:
$ ./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
O TSDB for InfluxDB® usa SSL para proteger dados em trânsito. Os parâmetros -ssl, -username, -password, -host e -port são obrigatórios em todas as conexões ao TSDB for InfluxDB®.
Descrição dos parâmetros
-ssl: conecta ao servidor InfluxDB via HTTPS.-username: nome de usuário da conta criada.-password: senha da conta.-host: endpoint da instância. Substituats-xxxxxxpelo ID da sua instância.-port: porta de rede. Use8086para conexões VPC e3242para conexões via Internet.
Agora você pode inserir consultas InfluxQL e alguns comandos da CLI diretamente no terminal. Para executar consultas Flux, defina a opção -type como flux. Execute help a qualquer momento para listar os comandos disponíveis. Para interromper uma consulta InfluxQL longa, pressione Ctrl+C.
Variáveis de ambiente
As variáveis de ambiente a seguir permitem configurar o cliente influx. Você pode especificá-las em letras minúsculas ou maiúsculas. As maiúsculas têm precedência.
HTTP_PROXY
Define o servidor proxy usado pelo HTTP.
Formato do valor: [protocol://][:porta]
HTTP_PROXY=http://localhost:1234
HTTPS_PROXY
Define o servidor proxy usado pelo HTTPS. Se HTTP_PROXY e HTTPS_PROXY estiverem definidos simultaneamente, HTTPS_PROXY terá precedência.
Formato do valor: [protocol://][:porta]
HTTPS_PROXY=https://localhost:1443
NO_PROXY
Lista de nomes de host que ignoram o proxy. Se essa variável contiver apenas um asterisco (*), ela corresponderá a todos os hosts.
Formato do valor: separe vários hosts por vírgulas.
NO_PROXY=123.45.67.89,123.45.67.90
Opções do influx
Você pode passar opções ao influx ao iniciá-lo. Execute $ influx --help para listar as opções disponíveis. A lista a seguir descreve brevemente cada opção. As opções -execute, -format e -import são detalhadas posteriormente nesta seção.
-compressed
Defina esta opção como true se o arquivo de importação estiver compactado. O uso de -compressed deve ser combinado com -import.
Define o nível de consistência de gravação.
-database 'database name'
Banco de dados ao qual o influx se conecta.
-execute '<command>'
Executa um comando InfluxQL e sai.
-format 'json|csv|column'
Especifica o formato das respostas do servidor.
-host '<hostname>'
Host ao qual o influx se conecta.
-import
Importa novos dados de um arquivo ou importa um banco de dados exportado anteriormente para um arquivo.
-password '<password>'
Senha usada pelo influx para conectar-se ao servidor. Se você deixar esta opção vazia (-password ''), o influx solicitará a senha. Também é possível usar a variável de ambiente INFLUX_PASSWORD para definir a senha da CLI.
-path
Caminho para o arquivo de importação. O uso de -path deve ser combinado com -import.
-port 'port #'
Porta à qual o influx se conecta. Por padrão, o TSDB for InfluxDB® opera na porta 3242.
-pps
Quantidade de pontos de dados por segundo permitida na importação. Por padrão, pps é definido como 0 e o influx não limita a taxa de importação. O uso de -pps deve ser combinado com -import.
-precision 'rfc3339|h|m|s|ms|u|ns'
Especifica o formato e a precisão dos timestamps para consultas e gravações: rfc3339 (YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ), h (horas), m (minutos), s (segundos), ms (milissegundos), u (microssegundos) ou ns (nanossegundos). A precisão padrão é nanossegundos.
-pretty
Formata a saída JSON para melhorar a legibilidade.
-ssl
Usa HTTPS nas requisições.
-type
Determina qual shell interativo usar. O valor padrão é influxql. Para usar o shell REPL do Flux, defina -type como flux.
-username 'username'
Nome de usuário usado pelo influx para conectar-se ao servidor. Também é possível usar a variável de ambiente INFLUX_USERNAME para definir o nome de usuário da CLI.
-version
Exibe a versão do TSDB for InfluxDB® e sai.
Use -execute para executar um comando InfluxQL e sair
Execute uma consulta que não requer banco de dados:
$ influx -ssl -username <Username> -password <Password> -host <Endpoint> -port 3242 -execute 'SHOW DATABASES'
name: databases
---------------
name
NOAA_water_database
_internal
telegraf
pirates
Execute uma consulta que requer banco de dados e altere a precisão do timestamp:
$ 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 o formato das respostas do servidor
O formato padrão é column:
$ influx -ssl -username <Username> -password <Password> -host <Endpoint> -port 3242 -format=column
[...]
> SHOW DATABASES
name: databases
---------------
name
NOAA_water_database
_internal
telegraf
pirates
Altere o formato para 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
Altere o formato para 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"]]}]}]}
Altere o formato para JSON e ative a saída formatada:
$ 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 dados de um arquivo
O arquivo de importação consiste em duas partes:
Exemplo:
Considere que já existam um banco de dados chamado pirates e uma política de retenção chamada oneday.
Arquivo (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
Observe os seguintes pontos sobre o -import:
-
Use
-ppspara definir a quantidade de pontos de dados por segundo permitida na importação durante a gravação no banco de dados. Por padrão, pps é definido como 0 e
influxnão limita a taxa de importação.
-
É possível importar arquivos .gz. Basta adicionar
-compressedao comando.
Forneça timestamps para os pontos de dados no arquivo. O TSDB for InfluxDB® atribui o mesmo timestamp a pontos de dados sem timestamp, o que pode causar substituições inesperadas de dados.
Se o arquivo de dados contiver mais de 5.000 pontos, divida-o em múltiplos arquivos para permitir a gravação em lotes no TSDB for InfluxDB®. Grave dados em lotes de 5.000 ou 10.000 pontos. Lotes menores geram mais requisições HTTP, o que prejudica o desempenho ideal. Por padrão, as requisições HTTP expiram após cinco segundos. Mesmo após um timeout, o TSDB for InfluxDB® ainda tenta gravar os pontos de dados, mas não há garantia de conclusão da gravação.
Comandos do influx
Digite help na CLI para listar alguns comandos disponíveis.
Comandos
A lista a seguir descreve brevemente cada comando. O comando insert é detalhado posteriormente nesta seção.
auth
Solicita nome de usuário e senha. O influx exige essas credenciais ao enviar requisições ao banco de dados. Também é possível usar as variáveis de ambiente INFLUX_USERNAME e INFLUX_PASSWORD para definir o nome de usuário e a senha da CLI.
chunked
Ativa respostas fragmentadas do servidor ao emitir uma consulta. Este recurso vem ativado por padrão.
chunk size <size>
Define o tamanho dos fragmentos das respostas. O tamanho padrão é 10.000. Definir o tamanho como 0 restaura o valor padrão.
clear [ database | db | retention policy | rp ]
Limpa o contexto atual do banco de dados ou da política de retenção.
connect <host:port>
Conecta a outro servidor sem sair do shell. Por padrão, o influx conecta a localhost:8086. Se você não especificar um host ou porta, o influx assumirá os valores padrão para os parâmetros não especificados.
consistency <level>
Define o nível de consistência de gravação: any, one, quorum ou all.
Ctrl+C
Interrompe a consulta em execução. Este comando é útil quando uma consulta interativa demora muito para retornar resultados devido à tentativa de processar um volume excessivo de dados.
exit quit Ctrl+D
Sai do shell do influx.
format <format>
Especifica o formato das respostas do servidor: json, csv ou column.
history
Exibe o histórico de comandos. Para reutilizar um comando anterior no shell, pressione a seta para cima. O influx armazena seus últimos 1.000 comandos no arquivo .influx_history localizado no diretório home.
insert
Grava dados usando o protocolo de linha.
precision <format>
Especifica o formato e a precisão dos timestamps para consultas e gravações: rfc3339 (YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ), h (horas), m (minutos), s (segundos), ms (milissegundos), u (microssegundos) ou ns (nanossegundos). A precisão padrão é nanossegundos.
pretty
Formata a saída JSON para melhorar a legibilidade.
settings
Exibe as configurações atuais do shell, incluindo Host, Username, Database, Retention Policy, status de Pretty, status de Chunked, Chunk Size e Format.
use [ "<database_name>" | "<database_name>"."<retention policy_name>" ]
Define o banco de dados e/ou a política de retenção atuais. Após o influx definir um banco de dados e/ou política de retenção, não é necessário especificá-los nas consultas. Caso nenhuma política de retenção seja especificada, o influx consultará automaticamente a política de retenção padrão (DEFAULT) do banco de dados.
Use insert para gravar dados no TSDB for InfluxDB®
Digite insert seguido pelos dados no formato de protocolo de linha para gravar dados no TSDB for InfluxDB®. Use insert into <retention policy> <line protocol> para gravar dados em uma política de retenção específica.
Grave dados em um único campo da medição treasures que possui a tag captain_id = pirate_king. O influx grava automaticamente os dados na política de retenção padrão (DEFAULT) do banco de dados.
> INSERT treasures,captain_id=pirate_king value=2
>
Grave o mesmo ponto de dados na política de retenção existente oneday:
> INSERT INTO oneday treasures,captain_id=pirate_king value=2
Using retention policy oneday
>
Consulta
Você pode executar todas as consultas InfluxQL no influx.
Para documentação sobre InfluxQL, consulte Visão geral da exploração de dados, Exploração de esquema e Gerenciamento de banco de dados.