Maison  >  Article  >  Périphériques technologiques  >  Apache IoTDB : une base de données innovante qui résout les problèmes de stockage, de requêtes et d'utilisation dans les scénarios IoT industriels

Apache IoTDB : une base de données innovante qui résout les problèmes de stockage, de requêtes et d'utilisation dans les scénarios IoT industriels

WBOY
WBOYavant
2023-09-15 17:25:011028parcourir

À l'heure où nous entrons dans l'ère de l'Industrie 4.0 et de l'introduction de la numérisation et de l'automatisation, l'environnement de production devient plus efficace. Dans le même temps, les gens commencent à prêter attention à la valeur potentielle des données massives apportées par les appareils intelligents, mais comment stocker efficacement les données générées par les appareils intelligents et comment mieux analyser les données massives est devenu un problème. Les modèles de bases de données et les méthodes de stockage traditionnels ne peuvent plus répondre à ces besoins. Par conséquent, la base de données de séries chronologiques a émergé au fur et à mesure que les temps l'exigent, dans le but d'obtenir un stockage et une interrogation efficaces des données, et d'aider à mieux explorer la valeur potentielle des données

Face à cette situation, l'Université Tsinghua a lancé le développement d'IoTDB en 2015. Le 23 septembre 2020, Apache IoTDB a obtenu son diplôme et est devenu un projet Apache de premier niveau. Il s'agit actuellement du seul projet de haut niveau de la Fondation Apache initié par des universités chinoises et également du seul projet open source dans le domaine de la gestion des données de l'Internet des objets. sous la Fondation Apache. En octobre 2021, l'équipe principale d'Apache IoTDB a fondé Tianmou Technology et continue d'exploiter IoTDB pour aider les utilisateurs industrielsà résoudre les problèmes de « stockage, vérification et utilisation » des données.

Concernant la technologie de base développée par Apache IoTDB, plusieurs participants ont collaboré pour publier un article de synthèse, qui a élaboré la conception d'IoTDB en détail et complètement. L'article prend comme exemple une entreprise industrielle qui doit gérer des dizaines de milliers de pelles hydrauliques et décrit les exigences : « Les données sont d'abord regroupées dans l'appareil, puis envoyées au serveur via le réseau mobile 5G. Dans le serveur, le les données sont écrites dans la base de données de séries chronologiques. Enfin, les data scientists peuvent charger les données de la base de données dans la plate-forme Big Data pour des analyses et des prédictions complexes, c'est-à-dire des tâches OLAP. https://dl.acm.org/doi/abs/10.1145/3589775

Apache IoTDB:解决工业物联网场景下的存储、查询和使用难题的创新数据库Adresse du projet : https://github.com/apache/iotdb

  • L'objectif de l'article comprend les éléments suivants parties :
  • 1. Conception du modèle de données :

Organisation des séries temporelles au niveau logique et stockage en mode physique

2. Format de fichier TsFile : Stockage en colonnes auto-développé ; format de fichier, En même temps, il répond à l'efficacité de l'écriture, des requêtes, etc.

3. Moteur IoTDB : Comprend principalement un moteur de stockage, un moteur de requête, etc.; La solution distribuée fait référence à la décomposition d'une tâche ou d'un problème. Méthode permettant de diviser plusieurs sous-tâches en plusieurs sous-tâches et d'attribuer ces sous-tâches à plusieurs ordinateurs ou nœuds pour le traitement. Cette solution améliore la fiabilité, l’évolutivité et les performances du système. En répartissant les tâches sur plusieurs ordinateurs, la charge sur un seul ordinateur peut être réduite et les capacités de traitement simultanées du système peuvent être améliorées. Dans le même temps, les solutions distribuées peuvent également améliorer la tolérance aux pannes du système grâce à une sauvegarde et un basculement redondants. Même en cas de panne d'un nœud, le système peut continuer à fonctionner. Dans l'environnement actuel du Big Data et du cloud computing, les solutions distribuées sont devenues un modèle architectural courant et sont largement utilisées dans divers domaines, tels que les bases de données distribuées, les systèmes de stockage distribués et les plates-formes informatiques distribuées, etc.

Pour ce qui suit contenu, nous donnerons une interprétation plus détaillée de ces parties clés

Interprétation détailléeConception du modèle de données nécessaire

comme indiqué ci-dessous Comme indiqué, nous adoptons une structure arborescente pour répondre à des exigences élevées. opérations d'écriture d'intensité et peut gérer efficacement le problème courant d'arrivée de données retardée dans les scénarios IoT

Dans la structure arborescente, chaque nœud feuille représente un capteur, et chaque nœud feuille représente un capteur. Chaque capteur a un appareil correspondant. Comme le montrent les deux niveaux inférieurs de la figure, il en va de même pour les niveaux supérieurs

(2) La structure logique a été expliquée dans l'article précédent, nous allons maintenant examiner la mise en œuvre de la structure physique. , qui comprend principalement les séries chronologiques ( Séries temporelles) et la famille de séquences (Famille Séries). La figure ci-dessous montre que chaque série temporelle se compose de deux attributs : l'heure et la valeur. La série temporelle est localisée sur le chemin complet allant du nœud racine au nœud feuille. L'image ci-dessus montre le concept de cluster de séquences. Un cluster de séquences peut contenir plusieurs appareils, et leurs données seront stockées ensemble dans TsFile (une structure de fichiers, qui sera expliquée plus tard)

Apache IoTDB:解决工业物联网场景下的存储、查询和使用难题的创新数据库

Le contenu qui doit être réécrit est : 2. Conception du format de fichier TsFile

TsFile est un format de fichier de stockage en colonnes auto-développé par Apache IoTDB. Sa structure est illustrée dans la figure ci-dessous :

Apache IoTDB:解决工业物联网场景下的存储、查询和使用难题的创新数据库

Lors de la conception de TsFile, l'équipe de recherche s'est principalement concentrée sur la résolution des problèmes :

  • Économisez de l'espace et compressez les données autant que possible
  • Réduisez la nombre de fichiers
  • La proximité physique des séries temporelles qui seront interrogées ensemble
  • Fragmentation réduite du disque
  • Accès efficace

Les principales solutions apportées sont :

  • Stockage des colonnes : Élimine les valeurs nulles, économisant ainsi l'occupation du disque ; localité d'accès aux données traitement
  • Analyse structurelle spécifique : la page (Page) est l'unité de stockage de base. Le bloc contient plusieurs pages. Les pages d'un bloc appartiennent à la même série temporelle et ont des tailles variables. Le groupe Chunk appartient à une ou plusieurs séries de périphériques écrits au cours de la même période de temps. Ils sont placés dans un espace disque continu car ils sont souvent interrogés ensemble ; le bloc est en mémoire et le groupe de blocs écrit est d'abord mis en mémoire tampon. dans TsFile, et lorsque la mémoire atteint le seuil, tous les groupes de blocs sont vidés vers TsFile ; l'index (FileIndex) enregistre les informations à la fin du fichier pour l'accès aux données.
  • Le contenu qui doit être réécrit est : 3. Moteur IoTDB

Dans cette partie, les chercheurs se concentrent principalement sur l'arrivée retardée, le traitement efficace des requêtes et les requêtes SQL similaires dans le scénario de l'Internet des objets. conception. La structure du moteur IoTDB est présentée dans la figure ci-dessous :

Sur la figure, on peut voir que la partie moteur de stockage est principalement utilisée pour gérer l'écriture, la lecture et la gestion de TsFile. Dans cette partie, la technologie de séparation différée automatique est adoptée (comme le montre la figure ci-dessous)

Apache IoTDB:解决工业物联网场景下的存储、查询和使用难题的创新数据库

Dans la plupart des cas, lorsque les plages de temps dans TsFile ne se chevauchent pas, il est recommandé d'utiliser la séparation différée des données. Cependant, dans les cas où la plupart des données ne sont pas ordonnées, la séparation paresseuse des données n'est pas recommandée.

Après la réécriture : un autre composant important est le moteur de requête, qui est responsable de la conversion des requêtes SQL en requêtes pouvant être exécutées par l'opérateur de base de données. . Dans le même temps, afin de s'adapter aux scénarios de l'IoT industriel, Apache IoTDB a également conçu de riches fonctions de requête de données de séries chronologiquesApache IoTDB:解决工业物联网场景下的存储、查询和使用难题的创新数据库

Le contenu qui doit être réécrit est : 4. Solution décentralisée

TsFile peut être trouvé dans Distribué sur HDFS et exploité par Spark. En outre, il fournit également des solutions natives pour une meilleure gestion de la distribution des données et du traitement des requêtes, notamment la réplication de partition, la réplication NB-Raft et la cohérence de lecture dynamiqueRésultats de comparaison

Dans l'article, nous comparons TsFile et IoTDB, deux formats de fichiers et bases de données de synchronisation de pointe largement utilisés dans l'industrie. A travers la figure suivante, nous montrons les avantages d'Apache IoTDB sous de nombreux aspects

Les deux chiffres ci-dessus montrent les avantages de TsFile en termes de débit d'écriture, de coût de temps de lecture et de performances de synchronisation. Cela est principalement dû à la conception de la structure compatible IoT de TsFile, qui évite de stocker des informations redondantes telles que l'identifiant de l'appareil. Bien qu'il n'y ait aucun avantage évident dans l'utilisation du disque de TsFile, cela est dû au fait qu'un index plus granulaire est construit, ce qui entraîne une plus grande utilisation d'espace. Cependant, ce sacrifice peut conduire à des améliorations extraordinaires du temps de requête, car nous pouvons constater un net avantage en termes de coût du temps de lecture

Apache IoTDB:解决工业物联网场景下的存储、查询和使用难题的创新数据库

Comme le montre clairement le graphique ci-dessus, IoTDB surpasse dans presque tous les tests Présentant de meilleures performances, y compris un débit d'écriture plus élevé et une latence d'écriture plus faible

Apache IoTDB:解决工业物联网场景下的存储、查询和使用难题的创新数据库

Dans les expériences ci-dessus, nous avons observé que lorsque la taille des données de requête est plus grande, IoTDB présente de meilleures performances. Les avantages d'IoTDB sont particulièrement évidents, en particulier dans l'agrégation de données à grande échelle. requêtes en temps réel et analyse Big Data pour les applications IoT. Le système comprend un nouveau format de fichier de série chronologique appelé TsFile, qui utilise le stockage en colonnes pour stocker les heures et les valeurs afin d'éviter les valeurs nulles et d'obtenir une compression efficace. Basé sur TsFile, le moteur IoTDB utilise une stratégie de type arborescence LSM pour gérer les écritures de haute intensité et peut gérer le problème courant d'arrivée de données retardée dans les scénarios IoT. De riches fonctions de requête évolutives et des informations statistiques précalculées dans TsFile permettent à IoTDB de gérer efficacement les tâches OLTP et OLAP

IoTDB est devenue une nouvelle base de données capable de mieux faire face aux scénarios IoT industriels, basée sur la technologie ci-dessus.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer