Table des matières
Introduction à InfluxDB
Essayez-le vous-même
Testez et vérifiez
Maison Java javaDidacticiel Apprenez une astuce pour utiliser la base de données de séries chronologiques dans Spring Boot

Apprenez une astuce pour utiliser la base de données de séries chronologiques dans Spring Boot

Aug 03, 2021 pm 05:47 PM
java

En plus des bases de données relationnelles et des caches les plus couramment utilisés, nous avons déjà présenté des exemples sur la façon de configurer et d'utiliser le stockage MongoDB et LDAP dans Spring Boot. Ensuite, nous continuons à introduire une autre base de données spéciale : l'utilisation de la base de données de séries chronologiques InfluxDB dans Spring Boot.

Introduction à InfluxDB

Qu'est-ce qu'une base de données de séries chronologiques ? Le nom complet est base de données de séries chronologiques. La base de données de séries chronologiques est principalement utilisée pour traiter les données avec des balises temporelles (changeant dans l'ordre temporel, c'est-à-dire la sérialisation temporelle). Les données avec des balises temporelles sont également appelées données de séries chronologiques.

Les données de séries chronologiques sont principalement collectées et générées par divers types d'équipements de surveillance, d'inspection et d'analyse en temps réel dans l'industrie électrique, l'industrie chimique, etc. Les caractéristiques typiques de ces données industrielles sont : une fréquence de génération rapide (chaque point de surveillance peut (générant plusieurs éléments de données), fortement dépendant du temps de collecte (chaque élément de données doit correspondre à un moment unique), de plusieurs points de mesure et d'une grande quantité d'informations (les systèmes de surveillance en temps réel conventionnels ont des milliers de points de surveillance , et les points de surveillance sont mesurés toutes les secondes. Tous génèrent des données, des dizaines de Go de données sont générés chaque jour). Bien que les bases de données relationnelles puissent également stocker des données basées sur des séries temporelles, en raison des inconvénients de la structure de stockage, ces données ne peuvent pas réaliser efficacement des statistiques de stockage et de requête à haute fréquence. Par conséquent, une nouvelle méthode est née spécifiquement pour le stockage et l'optimisation des bases de données de séries chronologiques. pour répondre à des exigences d’efficacité plus élevées.

InfluxDB est actuellement une base de données de séries chronologiques open source populaire (adresse du site officiel : https://www.influxdata.com/ Nos scénarios d'utilisation les plus courants concernent certains enregistrements de données à haute fréquence et besoins statistiques liés au temps, tels que). : Surveiller le stockage et les requêtes de données.

Avant de procéder aux sessions pratiques suivantes, comprenons d'abord quelques termes importants dans InfluxDB :

  • base de données : base de données

  • mesure : similaire à une table dans une base de données relationnelle

  • points : similaire rangée (une ligne de données) dans une base de données relationnelle

Parmi eux, un Point se compose de trois parties :

  • heure : horodatage

  • champs : valeur enregistrée

  • tags : index Attributs

Essayez-le vous-même

Après avoir compris ce qu'est une base de données de séries chronologiques et quelques concepts de base d'InfluxDB, comprenons plus en détail la configuration de base, l'organisation des données et l'écriture d'InfluxDB à travers un simple petit cas de reporting régulier des données de surveillance !

Première étape : créer un projet Spring Boot de base (si vous ne savez pas encore comment, vous pouvez vous référer à cet article : Démarrage rapide 1)

Deuxième étape : introduire le SDK officiel d'influx dans pom.xml

<dependency>
    <groupId>org.influxdb</groupId>
    <artifactId>influxdb-java</artifactId>
</dependency>
Copier après la connexion

Remarque : Ici, étant donné que le parent de la version Spring Boot 2.x conserve la version SDK d'InfluxDB, il n'est pas nécessaire de spécifier manuellement les informations de version. Si la version Spring Boot utilisée est plus ancienne, les informations de version peuvent être manquantes et doivent être écrites manuellement.

Étape 3 : Configurez les informations d'influxdb pour être connecté

spring.influx.url=http://localhost:8086
spring.influx.user=admin
spring.influx.password=
Copier après la connexion

Les trois attributs représentent : l'adresse de connexion, le nom d'utilisateur et le mot de passe. À ce stade, la configuration de base est terminée.

Remarque : bien qu'il n'y ait pas de prise en charge des données Spring, la configuration automatique d'InfluxDB est également implémentée dans la version Spring Boot 2.x, il vous suffit donc d'écrire les informations de configuration et vous pouvez les utiliser. Pour des propriétés de configuration spécifiques, vous pouvez afficher le code source : org.springframework.boot.autoconfigure.influx.InfluxDbProperties.

Étape 4 : Créez une tâche planifiée, simulez les données rapportées et écrivez-la dans InfluxDB

@Service
@AllArgsConstructor
@Slf4j
public class Monitor {

    private InfluxDB influxDB;

    @Scheduled(fixedRate = 5000)
    public void writeQPS() {
        // 模拟要上报的统计数据
        int count = (int) (Math.random() * 100);

        Point point = Point.measurement("ApiQPS")     // ApiQPS表
                .tag("url", "/hello")  // url字段
                .addField("count", count)        // 统计数据
                .time(System.currentTimeMillis(), TimeUnit.MILLISECONDS)  // 时间
                .build();

        // 往test库写数据
        influxDB.write("test", "autogen", point);

        log.info("上报统计数据:" + count);
    }

}
Copier après la connexion

Testez et vérifiez

Étape 1 : Démarrez InfluxDB et préparez la base de données à utiliser via la ligne de commande. Les principales commandes impliquées sont les suivantes. suit ;

Entrez InfluxDB :

$ influx
Copier après la connexion

Interrogez la base de données actuellement existante :

> show databases
Copier après la connexion

Créez une base de données (notez que le nom de la base de données est cohérent avec le premier paramètre d'écriture dans le code Java ci-dessus) :

> create database "test"
Copier après la connexion

Étape 2 : Démarrer l'application Spring Boot, à l'heure prévue Sous l'action de la tâche, nous verrons un journal similaire au suivant :

2021-08-03 01:52:47.732  INFO 94110 --- [           main] c.d.chapter63.Chapter63Application       : Started Chapter63Application in 2.326 seconds (JVM running for 3.027)
2021-08-03 01:52:47.764  INFO 94110 --- [   scheduling-1] com.didispace.chapter63.Monitor          : 上报统计数据:25
2021-08-03 01:52:52.736  INFO 94110 --- [   scheduling-1] com.didispace.chapter63.Monitor          : 上报统计数据:30
2021-08-03 01:52:57.737  INFO 94110 --- [   scheduling-1] com.didispace.chapter63.Monitor          : 上报统计数据:38
2021-08-03 01:53:02.739  INFO 94110 --- [   scheduling-1] com.didispace.chapter63.Monitor          : 上报统计数据:51
2021-08-03 01:53:07.739  INFO 94110 --- [   scheduling-1] com.didispace.chapter63.Monitor          : 上报统计数据:31
Copier après la connexion

Étape 3 : Utilisez la commande pour vérifier si les données existent déjà dans InfluxDB

> select * from ApiQPS order by time desc;

name: ApiQPS
time                count url
----                ----- ---
1627926787730000000 31    /hello
1627926782730000000 51    /hello
1627926777729000000 38    /hello
1627926772727000000 30    /hello
1627926767728000000 25    /hello
Copier après la connexion

Vous pouvez voir que les mêmes données que dans le journal existent déjà.

D'accord, le tutoriel d'aujourd'hui se termine ici, n'oubliez pas de l'essayer vous-même !

Tutoriels vidéo associés recommandés : Tutoriel vidéo Java

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Générateur de nombres aléatoires en Java Générateur de nombres aléatoires en Java Aug 30, 2024 pm 04:27 PM

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

See all articles