Heim Backend-Entwicklung Golang Verwenden von InfluxDB in Go: Eine vollständige Anleitung

Verwenden von InfluxDB in Go: Eine vollständige Anleitung

Jun 17, 2023 am 11:55 AM
go语言 influxdb 完整指南

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:

  • Wie man InfluxDB installiert und InfluxDB startet
  • Wie man das InfluxDB-Client-SDK in der Go-Sprache installiert
  • Wie man eine InfluxDB-Datenbank erstellt
  • Wie man grundlegende InfluxDB-Abfrageoperationen durchführt
  • Wie man schreibt durch Go-Sprache Und lesen Sie die InfluxDB-Datenbank

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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 dem Login kopieren

Nach Abschluss können wir den folgenden Befehl verwenden, um alle Datenbanken aufzulisten:

> show databases
name: databases
-----------
name
_internal
mydb
Nach dem Login kopieren

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
Nach dem Login kopieren

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)
}
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Apr 02, 2025 pm 02:06 PM

In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Apr 02, 2025 pm 04:12 PM

Welche Bibliotheken in GO werden von großen Unternehmen oder bekannten Open-Source-Projekten entwickelt? Bei der Programmierung in Go begegnen Entwickler häufig auf einige häufige Bedürfnisse, ...

Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Apr 02, 2025 pm 02:09 PM

Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...

Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Apr 02, 2025 pm 02:03 PM

Der Unterschied zwischen Stringdruck in GO -Sprache: Der Unterschied in der Wirkung der Verwendung von Println und String () ist in Go ...

Warum ist es notwendig, Zeiger zu verabschieden, wenn sie GO- und Viper -Bibliotheken verwenden? Warum ist es notwendig, Zeiger zu verabschieden, wenn sie GO- und Viper -Bibliotheken verwenden? Apr 02, 2025 pm 04:00 PM

Go Zeigersyntax und Probleme bei der Verwendung der Viper -Bibliothek bei der Programmierung in Go -Sprache. Es ist entscheidend, die Syntax und Verwendung von Zeigern zu verstehen, insbesondere in ...

Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Apr 02, 2025 pm 12:57 PM

Zwei Möglichkeiten, Strukturen in der GO -Sprache zu definieren: Der Unterschied zwischen VAR- und Typ -Schlüsselwörtern. Bei der Definition von Strukturen sieht die Sprache oft zwei verschiedene Schreibweisen: Erstens ...

Warum werden alle Werte das letzte Element, wenn sie für den Bereich in der GO -Sprache verwendet werden, um Scheiben zu durchqueren und Karten zu speichern? Warum werden alle Werte das letzte Element, wenn sie für den Bereich in der GO -Sprache verwendet werden, um Scheiben zu durchqueren und Karten zu speichern? Apr 02, 2025 pm 04:09 PM

Warum bewirkt die Kartendiseration in Go alle Werte zum letzten Element? In Go -Sprache begegnen Sie, wenn Sie einige Interviewfragen konfrontiert sind, häufig Karten ...

Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Apr 02, 2025 pm 04:54 PM

Das Problem der Verwendung von RETISTREAM zur Implementierung von Nachrichtenwarteschlangen in der GO -Sprache besteht darin, die Go -Sprache und Redis zu verwenden ...

See all articles