À propos du projet
TDengine est une base de données temporelle (TSDB) open-source positionnée pour les charges de travail de l'Internet des Objets (IoT), des véhicules connectés et de l'IoT industriel. Son objectif déclaré est l'ingestion, le traitement et l'analyse en temps réel de volumes massifs de données produites par de nombreux capteurs et collecteurs, le dépôt décrivant un support pour les déploiements à haute cardinalité couvrant un grand nombre de points de collecte.
Les caractéristiques de conception listées par le projet incluent une architecture distribuée et cloud-native avec sharding et partitionnement, une séparation du calcul et du stockage, une réplication basée sur RAFT, le support du déploiement Kubernetes et l'intégration de l'observabilité. Plutôt que de nécessiter des composants séparés pour la mise en cache, le traitement de flux et les abonnements, TDengine intègre ces capacités directement dans la base de données. Un composant IA nommé TDgpt est inclus pour les tâches de séries temporelles telles que la prévision, la détection d'anomalies, l'imputation et la classification, et peut se connecter à des modèles de fondation de séries temporelles, des grands modèles de langage (LLM), des modèles d'apprentissage automatique et des algorithmes traditionnels.
La documentation pour les utilisateurs, la conception du système et l'architecture se trouvent sur le site de documentation du projet, avec des options de déploiement couvrant les conteneurs, les packages d'installation, Kubernetes ou un service cloud hébergé. Le README du dépôt est orienté vers les développeurs qui souhaitent construire, tester, publier et packager TDengine à partir des sources.
Prérequis de construction : Linux (Ubuntu 18.04+, CentOS 7+), macOS 10.15+, et un support limité pour Windows, sur x86_64 ou ARM64, avec environ 4 Go de RAM et 2 Go d'espace disque libre recommandés. L'outillage nécessite une chaîne d'outils C/C++, CMake 3.21 ou plus récent, git, optionnellement Python 3 pour le framework de test et Go 1.23+ pour des composants tels que taosAdapter ou taosKeeper, ainsi que ccache et Conan 2.x optionnels pour le composant taos-gen.
La construction est effectuée hors-arbre avec CMake. La première construction doit activer -DBUILD_CONTRIB=ON afin que les dépendances externes telles que xxhash, zstd et lz4 soient récupérées et compilées dans .externals/ ; les constructions ultérieures réutilisent ces artefacts. Une séquence typique consiste à cloner le dépôt, créer un répertoire de debug, exécuter cmake, puis make. Une construction de release avec des outils en ligne de commande utilise -DCMAKE_BUILD_TYPE=Release et -DBUILD_TOOLS=ON.
Le README documente un tableau d'options étendu avec des valeurs par défaut, incluant BUILD_TEST, BUILD_TOOLS, BUILD_SANITIZER, BUILD_COVERAGE, BUILD_JEMALLOC, BUILD_WEBSOCKET, BUILD_WITH_UDF, BUILD_GEOS, RUST_BINDINGS, des choix de moteurs de stockage (LevelDB, RocksDB, SQLite, Berkeley DB), des options de compression (LZ4, LZMA2, TSZ) et des options d'objets cloud (S3, COS), entre autres. Les artefacts de construction se trouvent dans debug/build/bin (par exemple le démon serveur taosd, le client CLI taos, et avec BUILD_TOOLS=ON l'outil de benchmark taosBenchmark et l'outil d'import/export taosdump) et debug/build/lib (par exemple libtaos.so sur Linux).
Les tests comportent deux couches : des tests unitaires construits avec googletest et exécutés via ctest, et un framework de tests d'intégration basé sur Python sous tests/, où un serveur de test est démarré avec une configuration générée et des tests système individuels sont exécutés par script. Le rapport de couverture peut être généré localement à l'aide de scripts basés sur lcov, et le projet renvoie vers un tableau de bord de couverture public.
Le packaging est géré par source/taos-community/packaging/pack_community_tar.sh, qui assemble des tarballs communautaires contenant taosd, taos, taosBenchmark, taosdump, taosudf, libtaos.so, libtaosnative.so, des en-têtes, des exemples C et des scripts d'installation. Les composants qui résident dans d'autres dépôts ou nécessitent des flux de construction séparés, tels que taoskeeper, taos-explorer, taosx, les connecteurs et taosinspect, ne sont explicitement pas inclus. Le script accepte des drapeaux pour le répertoire de construction, le numéro de version, la version compatible et la stabilité de la release, et écrit la sortie dans source/taos-community/release/ avec des archives distinctes pour le serveur et le client.
L'installation peut être effectuée à partir d'un tarball d'installation officiel en l'extrayant et en exécutant install.sh, ou directement à partir d'une construction source locale via make install. L'exécution locale dans un arbre de construction se fait en démarrant taosd avec un répertoire de configuration, puis en se connectant avec le CLI taos dans un autre shell ; après une installation packagée, le serveur est démarré via systemctl et le client taos est utilisé pour se connecter.
Le projet publie un workflow GitHub Actions de vérification de construction et oriente les contributeurs vers des directives de contribution. Il fournit également des canaux communautaires sur Discord, Stack Overflow et les plateformes sociales, et renvoie vers une offre cloud hébergée. TDengine est sous licence GNU Affero General Public License 3.0, les modules principaux incluant les fonctionnalités de cluster et l'agent IA étant décrits comme disponibles sous licences open-source.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.