Categorias: BlogFala Galera

InfluxDB: Opção de banco de dados para um alto volume de consultas e escritas

Quando você pensa em banco de dados, qual aplicação vem à sua mente? Sua resposta pode ser MySQL, MongoDB, PostGres, que são as que mais se destacam entre as várias opções mais populares. Porém, há um outro banco de dados que pode ser muito útil: o InfluxDB.

O Que é o InfluxDB?

É um banco de dados de código aberto designado para lidar com um alto volume de consultas e escritas por segundo sem causar muito impacto no sistema operacional. Para ele, são distribuídas ferramentas para sua gestão: Telegraf, Chronograf e Kapacitor.

O InfluxDB provê uma sintaxe para a realização da consulta muito parecida com a do SQL. Ou seja, quem já está acostumado a trabalhar com SQL e derivados, não terá dificuldades em entender a utilização do InfluxDB.

O banco de dados também pode ser usado por uma interface HTTP, sendo possível criar, excluir, escrever, modificar, entre outras operações, com uma base de dados.

Por exemplo:

  • Sendo o InfluxDB acessível no localhost pela porta 8086, com o comando:

curl -i -XPOST http://localhost:8086/query –data-urlencode “q=CREATE DATABASE serverdoin”

Cria-se uma base de dados chamada “serverdoin”.

  • Para escrever algo nesta base de dados, utiliza-se o comando:

curl -i -XPOST ‘http://localhost:8086/write?db=serverdoin’ –data-binary ‘catraca,local=portaria,posicao=frente’

Onde criamos uma tabela chamada “catraca” que tem as propriedades “local” e “posicao”.

No site https://docs.influxdata.com há uma vasta documentação de como usar tanto a interface via linha de comando, quanto via HTTP;

Outra maneira de manipular os dados em um servidor InfluxDB é através do Chronograf, que é uma interface Web onde é possível gerenciar tudo no servidor. Através dessa interface, dá para gerar gráficos, criar medidas personalizadas e outras ações.

Uma outra característica do InfluxDB é o fato de compactar dados antigos para economizar espaço. Dessa forma, o banco de dados pode armazenar anos de estatística sem consumir muito.

Casos de uso do InfluxDB

O principal uso do InfluxDB é para aplicações de monitoramento em tempo real, já que estas demandam uma quantidade enorme de leitura e escrita no banco de dados. Dessa forma, o uso de uma base de dados que comporte esse volume é essencial para não travar todo os sistema.

Uma combinação muito utilizada é o Grafana com o InfluxDB.

O Grafana é uma aplicação Web para gerar gráficos e usa o InfluxDB para obtenção dos dados. Como o InfluxDB suporta uma quantidade gigantesca de leituras e escritas, é possível gerar gráficos em tempo real e manter um histórico de anos, bem como consultar um dado antigo sem causar muita carga no servidor.

Dessa forma, é possível criar, por exemplo, um sistema de monitoramento que verifique, por segundo, o uso de CPU, Memória, armazenamento, taxa de escrita em disco, taxa de leitura em disco, carga do sistema, podendo ser gerados gráficos com esses dados ao longo do tempo, com históricos de meses, anos e por aí vai.

Dá para usar com o WordPress?

O foco do InfluxDB são aplicações voltadas para estatísticas em tempo real e que geram muitos dados por segundo. Para uma aplicação WordPress, o que se recomenda é utilizar o MySQL porque é com este tipo de banco de dados que a plataforma é compatível. O uso pode ser dentro do WordPress, com algum plugin que gere estatísticas.

Como instalar o InfluxDB?

Para usar o InfluxDB em um ambiente seguro e de alta disponibilidade, você pode contratar o Cloud de Gerenciado da ServerDo.in, começando pelo plando com 1 GB de memória RAM e 1 CPU. Além disso, se você não tiver muita experiência, pode utilizar o Chronograf para gerir o seu banco de dados.

O InfluxDB ainda pode ser executado dentro de contêineres do tipo Docker, tendo, tanto o InfluxDB, quanto o Chronograf e até o Grafana, imagens de container Docker prontas para uso, ou seja, não é nem preciso saber instalar cada uma dessas aplicações.

  • Hello World