Ich glaube, viele Programmentwickler haben von InfluxDB gehört, einem Open-Source-Speicher für verteilte Zeitreihendaten, der hauptsächlich zum Speichern von Betriebsmetrikindikatoren (OMI) und Ereignisdaten verwendet wird. Zu den Kernfunktionen von InfluxDB gehören hohe Leistung, Skalierbarkeit und eine leistungsstarke Abfragesprache. Darüber hinaus bietet InfluxDB auch Client-SDKs in mehreren Sprachen, einschließlich Go.
Go-Sprache ist eine sehr leistungsfähige Programmiersprache. Es ist effizient und parallel und eignet sich auch zum Schreiben von Microservices. In diesem Artikel stellen wir vor, wie man InfluxDB zum Bearbeiten von Zeitreihendaten in der Go-Sprache verwendet. Wir werden Folgendes behandeln:
Installieren Sie InfluxDB
Bevor wir mit der Verwendung von InfluxDB beginnen, müssen wir InfluxDB installieren und starten. Die offizielle Website von InfluxDB bietet detaillierte Installationsanleitungen für verschiedene Betriebssysteme. Bitte wählen Sie die entsprechende Installationsanleitung basierend auf Ihrer aktuellen Betriebssystemversion aus.
Nachdem die Installation abgeschlossen ist, können Sie InfluxDB mit dem folgenden Befehl starten:
$ influxd
Install InfluxDB Go SDK
Die Go-Sprache verfügt über ein offizielles InfluxDB-Client-SDK, das wir verwenden können. Verwenden Sie das InfluxDB Client SDK in Ihrer Anwendung, um einfach eine Verbindung zur InfluxDB-Datenbank herzustellen und Daten aus der Datenbank zu schreiben und zu lesen. Mit dem folgenden Befehl können wir das InfluxDB SDK in einem Go-Sprachprojekt installieren:
go get github.com/influxdata/influxdb1-client/v2
Erstelle eine InfluxDB-Datenbank
Bevor wir mit dem Schreiben von Daten beginnen, müssen wir eine InfluxDB-Datenbank erstellen. Sie können die Weboberfläche von InfluxDB oder das CLI-Tool Influx verwenden:
$ influx Connected to http://localhost:8086 version 1.8.0 InfluxDB shell version: 1.8.0 > create database mydb
Nach Abschluss können wir den folgenden Befehl verwenden, um alle Datenbanken aufzulisten:
> show databases name: databases ----------- name _internal mydb
InfluxDB-Abfrage ausführen
Zusätzlich zur Verbindung mit InfluxDB in der Go-Sprache , wir können Influx auch verwenden, um InfluxDB-Abfragen manuell auszuführen. Hier ist ein einfaches Beispiel:
$ 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
In diesem Beispiel haben wir zwei Temperaturwerte in eine Datenbank namens mydb eingefügt. Anschließend haben wir eine einfache Abfrage ausgeführt, um alle Temperaturdaten abzurufen.
InfluxDB in Go verwenden
Hier sind einige grundlegende Anwendungsbeispiele des InfluxDB Go SDK:
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) }
In diesem Beispiel initialisieren wir zunächst einen Client mit dem InfluxDB Go SDK. Als Nächstes haben wir manuell einen neuen InfluxDB-Datenpunkt erstellt und ihn einem Datenstapel hinzugefügt. Schließlich verwenden wir das InfluxDB Go SDK, um die Datenpunkte abzufragen und ihre Rückgabewerte an die Konsole zu drucken.
Fazit
In diesem Artikel haben wir die Verwendung von InfluxDB zum Bearbeiten von Zeitreihendaten in der Go-Sprache vorgestellt und die Verwendung des InfluxDB Go SDK demonstriert. Wir haben gelernt, wie man InfluxDB installiert und startet und eine InfluxDB-Datenbank erstellt. Wir haben auch gelernt, wie man grundlegende InfluxDB-Abfragen durchführt, und gezeigt, wie man über die Go-Sprache aus einer InfluxDB-Datenbank schreibt und liest. Wir hoffen, dass dieser Artikel für Go-Entwickler hilfreich ist, die InfluxDB verwenden möchten.
Das obige ist der detaillierte Inhalt vonVerwenden von InfluxDB in Go: Eine vollständige Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!