Maison > Article > développement back-end > Utiliser InfluxDB dans Go : un guide complet
Je pense que de nombreux développeurs de programmes ont entendu parler d'InfluxDB, qui est un stockage de données de séries chronologiques distribué et open source, principalement utilisé pour stocker des indicateurs de métriques opérationnelles (OMI) et des données d'événements. Les fonctionnalités principales d'InfluxDB incluent des performances élevées, une évolutivité et un langage de requête puissant. De plus, InfluxDB fournit également des SDK clients dans plusieurs langues, dont Go.
Le langage Go est un langage de programmation très puissant. Il est efficace et simultané, et convient également à l'écriture de microservices. Dans cet article, nous présenterons comment utiliser InfluxDB pour manipuler des données de séries chronologiques dans le langage Go. Nous aborderons les points suivants :
Installez InfluxDB
Avant de commencer à utiliser InfluxDB, nous devons installer et démarrer InfluxDB. Le site officiel d'InfluxDB fournit des guides d'installation détaillés pour différents systèmes d'exploitation. Veuillez sélectionner le guide d'installation approprié en fonction de la version actuelle de votre système d'exploitation.
Une fois l'installation terminée, vous pouvez démarrer InfluxDB avec la commande suivante :
$ influxd
Installer le SDK InfluxDB Go
Le langage Go dispose d'un SDK client InfluxDB officiel que nous pouvons utiliser. Utilisez le SDK client InfluxDB dans votre application pour vous connecter facilement à la base de données InfluxDB afin d'écrire et de lire des données à partir de la base de données. Nous pouvons installer le SDK InfluxDB dans un projet en langage Go à l'aide de la commande suivante :
go get github.com/influxdata/influxdb1-client/v2
Créer une base de données InfluxDB
Avant de commencer à écrire des données, nous devons créer une base de données InfluxDB. Vous pouvez utiliser l'interface Web d'InfluxDB, ou vous pouvez utiliser l'outil CLI influx :
$ influx Connected to http://localhost:8086 version 1.8.0 InfluxDB shell version: 1.8.0 > create database mydb
Une fois terminé, nous pouvons utiliser la commande suivante pour lister toutes les bases de données :
> show databases name: databases ----------- name _internal mydb
Exécuter la requête InfluxDB
En plus de se connecter à InfluxDB en langage Go , nous pouvons également utiliser influx pour exécuter manuellement des requêtes InfluxDB. Voici un exemple simple :
$ influx Connected to http://localhost:8086 version 1.8.0 InfluxDB shell version: 1.8.0 > use mydb Using database mydb > insert temperature value=25.5 > insert temperature value=28.0 > select * from temperature name: temperature time value ---- ----- 1623102590352798368 25.5 1623102590981854175 28
Dans cet exemple, nous avons inséré deux valeurs de température dans une base de données appelée mydb. Nous avons ensuite exécuté une requête simple pour obtenir toutes les données de température.
Utilisation d'InfluxDB dans Go
Voici quelques exemples d'utilisation de base du SDK InfluxDB Go :
package main import ( "fmt" "time" "github.com/influxdata/influxdb1-client/v2" ) func main() { // 初始化 InfluxDB 客户端 c, err := client.NewHTTPClient(client.HTTPConfig{ Addr: "http://localhost:8086", }) if err != nil { fmt.Println("Error creating InfluxDB Client: ", err.Error()) } defer c.Close() // 创建新的 InfluxDB 数据点 tags := map[string]string{"test": "test123"} fields := map[string]interface{}{ "value": 35.6, } pt, err := client.NewPoint("temperature", tags, fields, time.Now()) if err != nil { fmt.Println("Error: ", err.Error()) } // 写入数据点到 InfluxDB bp, err := client.NewBatchPoints(client.BatchPointsConfig{ Database: "mydb", Precision: "s", }) if err != nil { fmt.Println("Error: ", err.Error()) } bp.AddPoint(pt) err = c.Write(bp) if err != nil { fmt.Println("Error: ", err.Error()) } // 查询 InfluxDB 数据点 q := client.Query{ Command: `SELECT "value" FROM "temperature"`, Database: "mydb", } res, err := c.Query(q) if err != nil { fmt.Println("Error: ", err.Error()) } var value float64 for _, row := range res.Results[0].Series[0].Values { value = row[1].(float64) } fmt.Printf("%+v ", value) }
Dans cet exemple, nous initialisons d'abord un client à l'aide du SDK InfluxDB Go. Ensuite, nous avons créé manuellement un nouveau point de données InfluxDB et l'avons ajouté à un lot de données. Enfin, nous utilisons le SDK InfluxDB Go pour interroger les points de données et imprimer leurs valeurs de retour sur la console.
Conclusion
Dans cet article, nous avons présenté comment utiliser InfluxDB pour exploiter des données de séries chronologiques dans le langage Go et démontré comment utiliser le SDK InfluxDB Go. Nous avons appris comment installer et démarrer InfluxDB et créer une base de données InfluxDB. Nous avons également appris à effectuer des requêtes InfluxDB de base et démontré comment écrire et lire à partir d'une base de données InfluxDB via le langage Go. Nous espérons que cet article sera utile aux développeurs Go qui souhaitent utiliser InfluxDB.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!