Maison >Opération et maintenance >Apache >Explication détaillée du druide Apache dans un article
Avant-propos :
Qu'est-ce que le druide apache ?
Il s'agit d'une plate-forme de données analytiques qui intègre les caractéristiques d'une base de données de séries chronologiques, d'un entrepôt de données et d'un système de récupération de texte intégral.
Cet article vous donnera une brève compréhension des caractéristiques, des scénarios d'utilisation, des caractéristiques techniques et de l'architecture de Druid. Cela nous aidera à choisir une solution de stockage de données et à acquérir une compréhension approfondie du stockage et des séries chronologiques de Druid. stockage.
Présentation
Une base de données analytique moderne native pour le cloud et le flux
Druid est conçu pour des requêtes rapides et des flux de travail rapides d'ingestion de données. La force de Druid réside dans sa puissante interface utilisateur, ses requêtes exploitables au moment de l'exécution et son traitement simultané hautes performances. Druid peut être considéré comme une alternative open source pour les entrepôts de données qui répond à divers scénarios d'utilisateurs.
S'intègre facilement aux pipelines de données existants
Druid peut diffuser des données à partir d'un bus de messages (tel que Kafka, Amazon Kinesis) ou charger par lots des fichiers à partir d'un lac de données (tel que HDFS, Amazon S3 et autres sources de données similaires).
Des performances 100 fois plus rapides que les solutions traditionnelles
Les tests de performances de référence de Druid pour l'ingestion et l'interrogation de données dépassent largement les solutions traditionnelles.
L'architecture de Druid combine les meilleures fonctionnalités des entrepôts de données, des bases de données de séries chronologiques et des systèmes de récupération.
Débloquez de nouveaux flux de travail
Déverrouillages Druid pour le flux de clics, l'APM (système de gestion des performances des applications), la chaîne d'approvisionnement (supply chain), la télémétrie réseau, le marketing numérique et d'autres scénarios événementiels Nouvelles méthodes de requête et flux de travail. Druid est conçu pour une interrogation rapide et ponctuelle de données historiques et en temps réel.
Déployé sur AWS/GCP/Azure, cloud hybride, k8 et serveurs loués
Druid peut être déployé dans n'importe quel environnement *NIX. Qu'il s'agisse d'un environnement sur site ou d'un environnement cloud. Le déploiement de Druid est très simple : augmentez et réduisez en ajoutant ou en supprimant des services.
Scénarios d'utilisation
Apache Druid convient aux scénarios ayant des exigences élevées en matière d'extraction de données en temps réel, de requêtes hautes performances et de haute disponibilité. Par conséquent, Druid est souvent utilisé comme système d’analyse avec une interface graphique riche, ou comme backend pour une API à haute concurrence qui nécessite une agrégation rapide. Druid est plus adapté aux données orientées événements.
Scénarios d'utilisation courants :
Analyse du flux de clics (analyse Web et mobile)
Analyse du contrôle des risques
Analyse de télémétrie du réseau (surveillance des performances du réseau)
Stockage des indicateurs de serveur
Analyse de la chaîne d'approvisionnement (indicateurs de fabrication)
Indicateurs de performance des applications
Business intelligence/système d'analyse en ligne en temps réel OLAP
Ces scénarios d'utilisation seront analysés en détail ci-dessous :
Activités et comportements des utilisateurs
Druid est souvent utilisé dans les données de flux de clics, de flux de visites et de flux d'activité. Les scénarios spécifiques incluent : la mesure de l'engagement des utilisateurs, le suivi des données de tests A/B pour les lancements de produits et la compréhension des modèles d'utilisation des utilisateurs. Druid peut calculer avec précision et approximativement les indicateurs utilisateur, tels que les indicateurs de comptage uniques. Cela signifie que des mesures telles que les utilisateurs actifs quotidiens peuvent être calculées à une valeur approximative (avec une précision moyenne de 98 %) en une seconde pour voir les tendances globales, ou être calculées avec précision pour les présenter aux parties prenantes. Druid peut être utilisé pour effectuer une « analyse d'entonnoir » afin de mesurer combien d'utilisateurs ont effectué une certaine action et n'ont pas effectué une autre action. Ceci est utile pour les produits qui suivent les inscriptions des utilisateurs.
Flux réseau
Druid est souvent utilisé pour collecter et analyser les données de flux réseau. Druid est utilisé pour gérer des données de streaming segmentées et combinées avec des attributs arbitraires. Druid est capable d'extraire de grandes quantités d'enregistrements de flux réseau et peut rapidement combiner et trier des dizaines d'attributs au moment de la requête, ce qui facilite l'analyse des flux réseau. Ces attributs incluent des attributs de base tels que les numéros IP et de port, ainsi que des attributs supplémentaires améliorés tels que l'emplacement géographique, le service, l'application, l'appareil et l'ASN. Druid est capable de gérer des schémas non fixes, ce qui signifie que vous pouvez ajouter tous les attributs de votre choix.
Marketing numérique
Druid est souvent utilisé pour stocker et interroger des données publicitaires en ligne. Ces données proviennent généralement de prestataires de services publicitaires et sont cruciales pour mesurer et comprendre les performances des campagnes publicitaires, le taux de pénétration des clics, le taux de conversion (taux de consommation) et d'autres indicateurs.
Druid a été conçu à l'origine comme une puissante application analytique orientée utilisateur pour les données publicitaires. En termes de stockage de données publicitaires, Druid a déjà beaucoup de pratique de production et un grand nombre d'utilisateurs à travers le monde ont stocké des données au niveau PB sur des milliers de serveurs.
Gestion des performances des applications
Druid est souvent utilisé pour suivre les données opérationnelles générées par les applications. Semblables aux scénarios d’utilisation de l’activité des utilisateurs, ces données peuvent concerner la manière dont les utilisateurs interagissent avec l’application, et il peut s’agir de données indicatrices rapportées par l’application elle-même. Druid peut être utilisé pour explorer en profondeur les performances des différents composants d'une application, localiser les goulots d'étranglement et identifier les problèmes.
Contrairement à de nombreuses solutions traditionnelles, Druid présente les caractéristiques d'une capacité de stockage plus petite, d'une complexité moindre et d'un débit de données plus élevé. Il peut analyser rapidement les événements d'application sur des milliers de propriétés et calculer des métriques complexes de chargement, de performances et d'utilisation. Par exemple, un point de terminaison d'API basé sur une latence de requête de 95 %. Nous pouvons organiser et segmenter les données selon n'importe quel attribut temporaire, comme la segmentation des données par jour, comme les statistiques par portraits d'utilisateurs, comme les statistiques par emplacement du centre de données.
IoT et métriques des appareils
Driud peut être utilisé comme solution de base de données de séries chronologiques pour stocker les données des indicateurs des serveurs et des appareils de traitement. Collectez les données en temps réel générées par les machines et effectuez une analyse ad hoc rapide pour mesurer les performances, optimiser les ressources matérielles et localiser les problèmes.
Contrairement à de nombreuses bases de données de séries chronologiques traditionnelles, Druid est essentiellement un moteur d'analyse. Druid combine les concepts de bases de données de séries chronologiques, de bases de données d'analyse en colonnes et de systèmes de récupération. Il prend en charge le partitionnement temporel, le stockage de colonnes et l'indexation de recherche dans un seul système. Cela signifie que les requêtes temporelles, les agrégations numériques et les requêtes de filtre de récupération seront extrêmement rapides.
Vous pouvez inclure des millions de valeurs de dimension uniques dans vos métriques et combiner librement des groupes et des filtres selon n'importe quelle dimension (les dimensions dans Druid sont similaires aux balises dans les bases de données de séries chronologiques). Vous pouvez calculer un grand nombre de métriques complexes en fonction des groupes de balises et des classements. Et votre recherche et votre filtrage sur les balises seront plus rapides que les bases de données de séries chronologiques traditionnelles.
OLAP et Business Intelligence
Druid est souvent utilisé dans les scénarios de business intelligence. L'entreprise déploie Druid pour accélérer les requêtes et améliorer les applications. Contrairement aux moteurs SQL basés sur Hadoop (tels que Presto ou Hive), Druid est conçu pour des requêtes à haute concurrence et inférieures à la seconde, et améliore les requêtes de données interactives via l'interface utilisateur. Cela rend Druid plus adapté à l’analyse d’interactions visuelles réelles.
Technologie
Apache Druid est un moteur de stockage de données distribué open source. La conception de base de Druid intègre des concepts de bases de données OLAP/analytiques, de bases de données de séries temporelles et de systèmes de recherche pour créer un système unifié adapté à un large éventail de cas d'utilisation. Druid intègre les principales fonctionnalités de ces trois systèmes dans la couche d'ingestion (couche d'ingestion de données), le format de stockage (couche de formatage de stockage), la couche de requête (couche de requête) et l'architecture de base (architecture de base) de Druid.
Les principales fonctionnalités de Druid incluent :
Stockage de colonnes
Druid stocke et compresse chaque colonne de données individuellement. Et lors de l'interrogation, seules les données spécifiques qui doivent être interrogées sont interrogées, et l'analyse rapide, le classement et le groupBy sont pris en charge.
Index de recherche natif
Druid crée un index inversé pour les valeurs de chaîne afin d'obtenir une recherche et un filtrage rapides des données.
Ingestion de données en streaming et par lots
Apache Kafka prêt à l'emploi, HDFS, connecteurs AWS S3, processeurs de streaming.
Schémas de données flexibles
Druid s'adapte avec élégance aux schémas de données changeants et aux types de données imbriqués.
Partitionnement optimisé basé sur le temps
Druid partitionne intelligemment les données en fonction du temps. Par conséquent, les requêtes temporelles Druid seront nettement plus rapides que les bases de données traditionnelles.
Prend en charge les instructions SQL
En plus des requêtes natives basées sur JSON, Druid prend également en charge SQL basé sur HTTP et JDBC.
Évolutivité horizontale
Taux d'ingestion de données en millions/seconde, stockage massif de données, requête en moins d'une seconde.
Facile à utiliser et à entretenir
Vous pouvez augmenter et réduire la capacité en ajoutant ou en supprimant des serveurs. Druid prend en charge le rééquilibrage et le basculement automatiques.
Ingestion de données
Druid prend en charge l'ingestion de données en streaming et par lots. Druid se connecte généralement aux sources de données brutes via un bus de messages comme Kafka (chargement de données en streaming) ou via un système de fichiers distribué comme HDFS (chargement de données par lots).
Druid stocke les données originales dans des nœuds de données sous forme de segments via le traitement d'indexation. Les segments sont une structure de données optimisée pour les requêtes.
Stockage des données
Comme la plupart des bases de données analytiques, Druid utilise le stockage en colonnes. En fonction du type de données des différentes colonnes (chaîne, nombre, etc.), Druid utilise différentes méthodes de compression et d'encodage. Druid crée également différents types d'index pour différents types de colonnes.
Semblable à un système de récupération, Druid crée un index inversé pour les colonnes de chaînes afin d'obtenir une recherche et un filtrage plus rapides. Semblable à une base de données de séries chronologiques, Druid partitionne intelligemment les données en fonction du temps pour obtenir des requêtes temporelles plus rapides.
Contrairement à la plupart des systèmes traditionnels, Druid peut pré-agréger les données avant de les ingérer. Cette opération de pré-agrégation est appelée rollup, ce qui permet de réduire considérablement les coûts de stockage.
Requête
Druid prend en charge les méthodes de requête JSON sur HTTP et SQL. En plus des opérations SQL standard, Druid prend également en charge un grand nombre d'opérations uniques. La suite d'algorithmes fournie par Druid peut être utilisée pour effectuer rapidement des calculs de comptage, de classement et de quantile.
Architecture
Druid est une architecture de microservices, qui peut être comprise comme une base de données désassemblée en plusieurs services. Chacun des services principaux de Druid (ingestion, requêtes et coordination) peut être déployé individuellement ou conjointement sur du matériel standard.
Druid nomme clairement chaque service pour garantir que le personnel d'exploitation et de maintenance puisse ajuster les paramètres du service correspondant en fonction des conditions d'utilisation et de charge. Par exemple, lorsque la charge l'exige, les opérateurs peuvent attribuer davantage de ressources au service d'ingestion de données et réduire les ressources destinées au service de requête de données.
Druid peut échouer de manière indépendante sans affecter le fonctionnement des autres services.
Exploitation et maintenance
Drui est conçu comme un système robuste, qui doit fonctionner 24h/24 et 7j/7. Druid possède les fonctionnalités suivantes pour garantir un fonctionnement à long terme et garantir l’absence de perte de données.
Copies de données
Druid crée plusieurs copies de données en fonction du nombre de copies configuré, de sorte qu'une seule panne de machine n'affectera pas les requêtes Druid.
Services indépendants
Druid nomme clairement chaque service principal, et chaque service peut être ajusté en conséquence en fonction de l'utilisation. Les services peuvent échouer indépendamment sans affecter le fonctionnement normal des autres services. Par exemple, si le service d'ingestion de données échoue, aucune nouvelle donnée ne sera chargée dans le système, mais les données existantes pourront toujours être interrogées.
Sauvegarde automatique des données
Druid sauvegarde automatiquement toutes les données indexées sur un système de fichiers, qui peut être un système de fichiers distribué, tel que HDFS. Vous pouvez perdre toutes les données de votre cluster Druid et recharger rapidement à partir des données de sauvegarde.
Mise à jour continue
Grâce à la mise à jour continue, vous pouvez mettre à jour le cluster Druid sans aucun temps d'arrêt, il est donc invisible pour les utilisateurs. Toutes les versions de Druid sont rétrocompatibles.
Si vous souhaitez en savoir plus sur les bases de données de séries chronologiques et les comparaisons, vous pouvez consulter un autre article :
Première introduction et sélection de la base de données de séries chronologiques (TSDB)
Recommandations associées : serveur Apache
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!