


Apprenez une astuce pour utiliser la base de données de séries chronologiques dans Spring Boot
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>
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=
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); } }
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
Interrogez la base de données actuellement existante :
> show databases
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"
É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
É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
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

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.

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.

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.

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

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.

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
