Maison  >  Article  >  base de données  >  Comment créer des graphiques d'agrégation de données MySQL hautes performances à l'aide du langage Go

Comment créer des graphiques d'agrégation de données MySQL hautes performances à l'aide du langage Go

PHPz
PHPzoriginal
2023-06-17 20:33:081037parcourir

Alors que la quantité de données continue de croître, la manière de regrouper et d'afficher les données rapidement et efficacement est devenue un défi auquel sont confrontés les data scientists et les ingénieurs. En tant que base de données relationnelle mature et stable, MySQL offre des performances et une fiabilité élevées dans le stockage et le traitement des données. Dans cet article, nous explorerons comment utiliser le langage Go pour créer des graphiques d'agrégation de données MySQL hautes performances.

Tout d'abord, vous devez comprendre quelques principes de base du langage Go et de la base de données MySQL. Le langage Go est un langage de programmation rapide, efficace et orienté programmation simultanée qui présente de nombreux avantages lorsqu'il s'agit de programmation simultanée et parallèle. MySQL est une base de données relationnelle open source largement utilisée et offrant des performances stables.

Ensuite, nous présenterons comment utiliser le langage Go pour connecter et faire fonctionner la base de données MySQL, et utiliser les fonctions d'agrégation pour réaliser l'agrégation et l'affichage des données.

1. Se connecter à la base de données MySQL
L'utilisation du langage Go pour se connecter à la base de données MySQL nécessite l'utilisation d'une bibliothèque tierce. Ici, nous utilisons la bibliothèque go-sql-driver/mysql. Vous pouvez le télécharger via la commande suivante :

go get -u github.com/go-sql-driver/mysql

Pour vous connecter à la base de données MySQL, vous devez connaître le nom d'utilisateur, le mot de passe, l'adresse de l'hôte et d'autres informations. de la base de données Vous pouvez vous connecter via le code suivant :

import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)

func main() {
db, err. := sql.Open("mysql", "user :password@tcp(host:port)/dbname")
if err != nil {

panic(err.Error())

}
reporter db.Close()
}

2. fonctions d'agrégation pour l'agrégation de données
Pour de grandes quantités de données, nous avons généralement besoin d'opérations d'agrégation, telles que la somme, la moyenne, le maximum, le minimum, etc. MySQL fournit une variété de fonctions d'agrégation, notamment SUM, AVG, MAX, MIN, COUNT, etc.

Ce qui suit prend la moyenne comme exemple pour montrer comment utiliser le langage Go pour se connecter à la base de données MySQL afin de réaliser l'agrégation et l'affichage des données.

Tout d'abord, vous devez terminer l'importation des données, qui peuvent être stockées dans une table de la base de données MySQL. Supposons que nous ayons la table de données suivante :

CREATE TABLE mytable (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
value INT
);

Ensuite, nous exécutons le code suivant pour insérer 100 000 enregistrements dans la table Données :

func insertData(db *sql.DB) {
for i := 0; i < 100000; i++ {

name := fmt.Sprintf("item%d", i)
value := rand.Intn(100)
_, err := db.Exec("INSERT INTO mytable (name, value) VALUES (?, ?)", name, value)
if err != nil {
  panic(err.Error())
}

}
}

Ensuite, vous pouvez utiliser le code suivant pour trouver la moyenne de tous données :

func getAvgValue(db *sql.DB) {
var avgValue float64
err := db.QueryRow("SELECT AVG(value) FROM mytable").Scan(&avgValue)
if err != nil {

panic(err.Error())

}
fmt.Println("La valeur moyenne est :", avgValue)
}

Grâce à des expériences, on peut constater que lorsque la quantité de données atteint 100 000, le langage Go est très efficace pour connecter et faire fonctionner la base de données MySQL . Interroger la moyenne C'est aussi très rapide.

3. Utiliser des graphiques pour afficher les données
Ensuite, nous utiliserons le langage Go et le framework de développement Web gin pour créer une application Web et afficher les données agrégées dans des graphiques.

Tout d'abord, vous devez installer gin et les packages de dépendances associés :

go get -u github.com/gin-gonic/gin
go get github.com/gin-gonic/contrib/static
go get -u github. com/ go-sql-driver/mysql

Ensuite, vous pouvez utiliser le code suivant pour créer une application Web permettant d'afficher les données agrégées sur un histogramme :

package main

import (
"database/sql"
"fmt "
"net/http"

"github.com/gin-gonic/contrib/static"
"github.com/gin-gonic/gin"
_ "github.com/go-sql-driver/mysql"
)

var db *sql.DB

func main() {
initDB()
defer db.Close()

// Initialiser le framework gin
r := gin.Default()

// Définir le fichier statique répertoire
r.Use(static.Serve("/", static.LocalFile("./static", true)))

// Ajouter une route
r.GET("/data", getChartData)

// Surveiller le port
r.Run(":8080")
}

func initDB() {
var err error
db, err = sql.Open("mysql", "user:password@tcp(host:port)/ dbname ")
if err != nil {

panic(err.Error())

}
}

func getChartData(c *gin.Context) {
var data []struct {

Name  string  `json:"name"`
Value float64 `json:"value"`

}

// Interroger les données agrégées
lignes, err : = db.Query("SELECT nom, AVG(valeur) AS valeur FROM mytable GROUP BY nom")
if err != nil {

panic(err.Error())

}

//Construire le format de données
pour les lignes.Next() {

var name string
var value float64
err := rows.Scan(&name, &value)
if err != nil {
  panic(err.Error())
}
data = append(data, struct {
  Name  string  `json:"name"`
  Value float64 `json:"value"`
}{Name: name, Value: value})

}

//Return json data
c.JSON(http.StatusOK, data)
}

Dans l'application Web, nous utilisons le framework gin et le répertoire de fichiers statiques pour interroger les données agrégées dans la base de données MySQL via le getChartData et renvoyez-le au format json. Dans la page frontale, des bibliothèques de graphiques JavaScript tierces (telles que ECharts, HighCharts, etc.) peuvent être utilisées pour convertir facilement les données en affichage graphique.

Conclusion
Grâce à l'introduction ci-dessus, je pense que les lecteurs comprennent mieux comment utiliser le langage Go pour créer des graphiques d'agrégation de données MySQL hautes performances. À mesure que la quantité de données continue de croître, apprendre à utiliser des outils et des techniques de programmation avancés pour traiter les données deviendra une compétence de plus en plus importante.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn