(16) 981791110 contato@policast.studio

O que é o InfluxDB?

O InfluxDB é um banco de dados de séries temporais de alto desempenho, desenvolvido para lidar com grandes volumes de dados de séries temporais. Ele é altamente escalável e permite consultas de alta performance em dados de séries temporais.

O InfluxDB é construído em Go e é distribuído sob uma licença de código aberto

Como instalar o InfluxDB?

Para instalar o InfluxDB, você pode seguir as instruções no site oficial do InfluxDB. O InfluxDB está disponível em várias plataformas, incluindo Linux, macOS e Windows. Você pode instalá-lo usando o gerenciador de pacotes do seu sistema operacional ou baixando manualmente a versão apropriada para a sua plataforma.

sudo apt-get update
sudo apt-get install influxdb

Como usar o InfluxDB com o Symfony?

Para usar o InfluxDB no Symfony, é necessário o pacote do InfluxDB. Você pode instalá-lo usando o Composer. Depois de instalado, é necessário configurar a conexão do InfluxDB no arquivo app/config/parameters.yml.

composer require influxdb/influxdb:^2.0

Como configurar a conexão com o InfluxDB?

Você pode configurar a conexão do InfluxDB no arquivo app/config/parameters.yml. Você vai precisar especificar o endereço, porta, usuário e senha. Para um exemplo básico, você pode configurá-lo da seguinte maneira:

parameters:
influxdb_host: 'localhost'
influxdb_port: 8086
influxdb_user: 'username'
influxdb_password: 'password'

Como escrever dados no InfluxDB?

Para escrever dados no InfluxDB, você precisa criar uma instância do objeto InfluxDBClient e, em seguida, usar o método writePoints para escrever os dados. Aqui está um exemplo:

$influxDB = InfluxDBClient::fromDSN($this->getParameter('influxdb_dsn'));
$database = $influxDB->selectDB('my_db');
$points = [
new InfluxDBPoint(
'measurement-name',
null,
['tag1' => 'tag-value'],
['field1' => 'field-value', 'field2' => 42],
time()
),
];
$database->writePoints($points);

Como ler dados do InfluxDB?

Para ler dados do InfluxDB, você precisa criar uma instância do objeto InfluxDBClient e usar o método query para executar uma consulta. Aqui está um exemplo:

$influxDB = InfluxDBClient::fromDSN($this->getParameter('influxdb_dsn'));
$database = $influxDB->selectDB('my_db');
$resultSet = $database->query('SELECT field1, field2 FROM measurement-name');
$points = $resultSet->getPoints();

Como usar tags no InfluxDB?

Tags são valores-chave que podem ser adicionados a cada ponto em uma gravação. Eles são usados para filtrar dados ao executar consultas. Para adicionar tags a um ponto, envie-os como um array associativo no terceiro parâmetro de InfluxDBPoint(). Aqui está um exemplo:

new InfluxDBPoint(
'measurement-name',
null,
['tag1' => 'tag-value'],
['field1' => 'field-value', 'field2' => 42],
time()
),

Como usar campos no InfluxDB?

Campos são os valores que você deseja gravar. Eles são usados nas consultas e permitem armazenar valores numéricos, de texto ou booleanos. Para adicionar campos a um ponto, envie-os como um array associativo no quarto parâmetro de InfluxDBPoint(). Aqui está um exemplo:

new InfluxDBPoint(
'measurement-name',
null,
['tag1' => 'tag-value'],
['field1' => 'field-value', 'field2' => 42],
time()
),

Como usar consultas no InfluxDB?

O InfluxDB suporta consultas em SQL-like. Aqui está uma consulta de exemplo:

$influxDB = InfluxDBClient::fromDSN($this->getParameter('influxdb_dsn'));
$resultSet = $influxDB->query('SELECT * FROM measurement-name WHERE tag1='tag-value' AND time > now() - 1h');
$points = $resultSet->getPoints();

Como usar as funções do InfluxDB?

O InfluxDB suporta várias funções, incluindo count(), mean(), median(), max(), min(), sum(), stdDev(), first(), last(), bottom(), top(), percentile(). Aqui está uma consulta de exemplo com a função mean():

$influxDB = InfluxDBClient::fromDSN($this->getParameter('influxdb_dsn'));
$resultSet = $influxDB->query('SELECT mean(field1) FROM measurement-name WHERE tag1='tag-value' AND time > now() - 1h');
$points = $resultSet->getPoints();

Como usar a API do InfluxDB?

O InfluxDB tem uma API RESTful que você pode usar em vez da biblioteca PHP. Ele suporta vários verbos HTTP, incluindo GET, POST e DELETE. Aqui está um exemplo de como criar uma nova gravação:

curl -i -XPOST 'http://localhost:8086/write?db=my_db' --data-binary 'measurement-name,tag1=tag-value field1=field-value,field2=42'