
Salut, habrozhiteli! Nous avons publié un livre sur Elastic Stack, destiné aux spécialistes travaillant avec de gros volumes de données et souhaitant les extraire de manière fiable de n'importe quelle source dans n'importe quel format, ainsi que rechercher, analyser et visualiser des données en temps réel. Ce livre est pour vous si vous avez besoin d'une compréhension fondamentale du travail d'Elastic Stack dans les domaines de l'informatique distribuée et du traitement des données en temps réel.
Ci-dessous sera fournie la structure du livre sur un passage sur l'agrégation.
Structure du livre
Le chapitre 1 «Introduction à Elastic Stack» présente les principaux composants d'Elastic Stack, explique leur rôle dans la structure globale, décrit l'objectif de chaque composant. Ce chapitre traite également de la nécessité d'une recherche et d'une analyse distribuées et évolutives qui sont obtenues avec Elasticsearch. À la fin, il y a un guide pour télécharger et installer Elasticsearch et Kibana afin que vous puissiez commencer avec ces outils.
Le chapitre 2, «Premiers pas avec Elasticsearch», vous présente les principes clés du moteur de recherche Elasticsearch, qui est le fondement d'Elastic Stack. Vous vous familiariserez avec des concepts tels que les index, les types, les nœuds et les clusters. Vous apprendrez également à utiliser l'API REST pour effectuer des opérations de base.
Le chapitre 3, «La recherche est importante», se concentre sur les méthodes de recherche fournies par Elasticsearch. Vous en apprendrez sur les bases de l'analyse de texte, des tokeniseurs, des analyseurs et des fonctionnalités de recherche pertinentes. Ce chapitre fournit également des exemples pratiques de recherches pertinentes.
Le chapitre 4, «Analyse des données avec Elasticsearch», décrit les différents types d'agrégation. Il comprend des exemples qui vous aideront à mieux comprendre les principes de l'analyse des données. Vous apprendrez à utiliser différents types d'agrégations - du plus simple au plus complexe, pour parcourir d'énormes ensembles de données. Après avoir lu ce chapitre, vous saurez quand et quelle option d'agrégation est préférable d'utiliser.
Le chapitre 5, Analyse des journaux, fournit des informations sur la nécessité d'utiliser Logstash, son architecture, son installation et sa configuration. Elastic 5 fournit un outil Ingest Node qui peut remplacer la configuration Logstash. En lisant ce chapitre, vous apprendrez à créer des conteneurs à l'aide d'Elastic Ingest Node.
Le chapitre 6, «Conception de conteneurs avec Logstash», vous donne une compréhension de base de Logstash, qui vous permet d'identifier dynamiquement les données de diverses sources et de les normaliser à l'aide des filtres que vous sélectionnez. Vous apprendrez comment le fait d'avoir une large gamme de filtres place Logstash sur un pied d'égalité avec les autres frameworks de traitement de streaming en temps réel et presque en temps réel sans écrire de code. Vous découvrirez également la plate-forme Beats et le composant FileBeat utilisé pour transporter des fichiers journaux (fichiers journaux) à partir de machines distantes.
Le chapitre 7, «Visualisation des données dans Kibana», montre comment utiliser Kibana pour visualiser et présenter de manière impressionnante vos données. Un exemple d'un ensemble de données simple décrit la création de visualisations en quelques clics.
Le chapitre 8, Elastic X-Pack, parle de l'extension Elasticsearch. À ce stade, vous apprendrez déjà Elasticsearch et ses composants clés pour créer des conteneurs de données et pourrez connecter des extensions pour résoudre des problèmes spécifiques. Dans ce chapitre, vous apprendrez comment installer et configurer les composants X-Pack dans Elastic Stack, apprendre les bases de la sécurité et de la surveillance et apprendre à ajouter diverses notifications.
Le chapitre 9, «Mise en œuvre de la pile Elatic», fournit des recommandations pour la mise en service commercial du complexe Elastic Stack. Vous recevrez des recommandations sur la façon de mettre en œuvre votre application et de modifier les paramètres standard en fonction des exigences de l'opération. Vous apprendrez également à utiliser les services cloud Elastic Cloud.
Le chapitre 10 «Création d'une application pour analyser les données des capteurs» décrit la création d'une application pour analyser et traiter les données provenant de diverses sources. Vous apprendrez à modéliser des données dans Elasticsearch, à créer des conteneurs de données et à les visualiser dans Kibana. Vous apprendrez également à utiliser efficacement les composants X-Pack pour assurer la sécurité et la surveillance de vos conteneurs, recevoir des notifications de divers événements.
Le chapitre 11, Surveillance de l'infrastructure du serveur, montre les possibilités d'utiliser Elastic Stack pour configurer la surveillance en temps réel des serveurs et des applications entièrement créés sur Elastic Stack. Vous vous familiariserez avec un autre composant de la plate-forme Beats - Metricbeat, qui est utilisé pour surveiller les serveurs / applications.
Agrégations de la somme, des valeurs moyennes, maximales et minimales
Trouver la somme d'un champ, une valeur minimale ou maximale ou une moyenne est une opération assez courante. En SQL, une requête pour calculer la somme est la suivante:
SELECT sum(downloadTotal) FROM usageReport;
Ainsi, la somme du champ downloadTotal sera calculée pour toutes les entrées du tableau. Pour ce faire, parcourez tous les enregistrements de la table ou tous les enregistrements du contexte sélectionné et ajoutez les valeurs des champs sélectionnés.
Dans Elasticsearch, vous pouvez écrire une requête similaire en utilisant l'agrégation de sommes.
Agrégation des montants
Voici comment écrire une simple agrégation du montant:
GET bigginsight/_search { "aggregations": { 1 "download_sum": { 2 "sum": { 3 "field": "downloadTotal" 4 } } }, "size": 0 5 }
- Les agrégats ou agrégations au niveau supérieur doivent servir de wrapper pour l'agrégation.
- Donnez un nom à l'agrégation. Dans ce cas, nous agrégons le montant dans le champ downloadTotal et sélectionnons le nom approprié download_sum. Tu peux l'appeler comme tu veux. Ce champ est utile lorsque nous devons trouver cette agrégation spécifique dans les résultats de la réponse.
- Nous faisons l'agrégation de la somme, par conséquent, l'élément somme est appliqué.
- Nous voulons regrouper les termes par le champ downloadTotal.
- Spécifiez size = 0 pour empêcher les résultats bruts d'entrer dans la réponse. Nous n'avons besoin que des résultats d'agrégation, pas des résultats de recherche. Comme nous n'avons spécifié aucun élément de requête de haut niveau, la requête fonctionnera avec tous les documents. Nous n'avons pas besoin de documents non traités (ou de résultats de recherche) dans la réponse.
La réponse devrait ressembler à ceci:
{ "took": 92, ... "hits": { "total": 242836, 1 "max_score": 0, "hits": [] }, "aggregations": { 2 "download_sum": { 3 "value": 2197438700 4 } } }
Nous comprendrons les principaux paramètres de la réponse.
- L'élément hits.total indique le nombre de documents correspondant au contexte de la demande. Si aucune requête ou filtre supplémentaire n'est spécifié, tous les documents du type ou de l'index seront inclus.
- Par analogie avec la demande, cette réponse est placée à l'intérieur de l'agrégation pour présentation dans ce formulaire.
- La réponse de l'agrégation que nous avons demandée est appelée download_sum, par conséquent, nous obtenons notre réponse de l'agrégation du montant à l'intérieur de l'élément avec le même nom.
- La valeur réelle s'affiche après application du montant d'agrégation.
Les agrégations de valeurs moyennes, maximales et minimales sont très similaires. Nous les examinerons brièvement.
Agrégation moyenne
L'agrégation de la moyenne trouve la valeur moyenne de tous les documents dans le contexte de la demande:
GET bigginsight/_search { "aggregations": { "download_average": { 1 "avg": { 2 "field": "downloadTotal" } } }, "size": 0 }
Les différences notables par rapport à l'agrégation du montant sont les suivantes.
- Nous avons choisi un autre nom, download_average, afin qu'il soit clair que cette agrégation est conçue pour calculer la valeur moyenne.
- Le type d'agrégation à effectuer est moy au lieu de somme, comme dans l'exemple précédent.
La structure de la réponse est identique à la réponse de la sous-section précédente, mais dans le champ de valeur, nous verrons la valeur moyenne des champs demandés.
Les agrégations des valeurs minimale et maximale sont similaires.
Agrégation minimale
Recherchez la valeur minimale du champ downloadTotal dans l'ensemble de l'index / type:
GET bigginsight/_search { "aggregations": { "download_min": { "min": { "field": "downloadTotal" } } }, "size": 0 }
Agrégation de la valeur maximale
Recherchez la valeur maximale du champ downloadTotal dans l'ensemble de l'index / type:
GET bigginsight/_search { "aggregations": { "download_max": { "max": { "field": "downloadTotal" } } }, "size": 0 }
Ce sont des agrégations très simples. Examinons maintenant des agrégations plus complexes de statistiques et de statistiques avancées.
Agrégations de statistiques et statistiques avancées
Ces agrégations calculent certaines valeurs statistiques communes dans une seule requête et sans effectuer de requêtes supplémentaires. Étant donné que les statistiques sont calculées en une seule fois et ne sont pas demandées plusieurs fois, les ressources Elasticsearch sont enregistrées. Le code client devient également plus facile si vous êtes intéressé par plusieurs types de telles données. Jetez un œil à un exemple d'agrégation de statistiques.
Agrégation de statistiques
L'agrégation des statistiques calcule le montant, la valeur moyenne, maximale, minimale et le nombre total de documents en une seule fois:
GET bigginsight/_search { "aggregations": { "download_stats": { "stats": { "field": "downloadTotal" } } }, "size": 0 }
La demande de statistiques sur la structure est similaire à d'autres agrégations de métriques que vous connaissez déjà; rien de spécial ne se passe ici.
La réponse devrait ressembler à ceci:
{ "took": 4, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "download_stats": { "count": 242835, "min": 0, "max": 241213, "avg": 9049.102065188297, "sum": 2197438700 } } }
Comme vous pouvez le voir, la réponse avec l'élément download_stats contient le total, le minimum, le maximum, la moyenne et le total. Cette conclusion est très pratique, car elle réduit le nombre de demandes et simplifie le code client.
Jetez un œil à l'agrégation de statistiques avancées.
Agrégation de statistiques avancées
L'agrégation des statistiques étendues renvoie un peu plus de statistiques en plus de l'option précédente:
GET bigginsight/_search { "aggregations": { "download_estats": { "extended_stats": { "field": "downloadTotal" } } }, "size": 0 }
La réponse ressemblera à ceci:
{ "took": 15, "timed_out": false, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "download_estats": { "count": 242835, "min": 0, "max": 241213, "avg": 9049.102065188297, "sum": 2197438700, "sum_of_squares": 133545882701698, "variance": 468058704.9782911, "std_deviation": 21634.664429528162, "std_deviation_bounds": { "upper": 52318.43092424462, "lower": -34220.22679386803 } } } }
Dans la réponse, vous obtenez également la somme des carrés, l'écart, l'écart-type et ses limites.
Agrégation de puissance
Le comptage des éléments uniques peut être effectué à l'aide de l'agrégation de puissance. Cela revient à rechercher un résultat de requête, comme illustré ci-dessous:
select count(*) from (select distinct username from usageReport) u;
La détermination de la puissance ou du nombre de valeurs uniques pour un champ particulier est une tâche assez courante. Par exemple, si vous avez un flux de clics (flux de clics) de différents visiteurs sur votre site, vous souhaiterez peut-être connaître le nombre de visiteurs uniques sur le site un jour, une semaine ou un mois donné.
Voyons comment trouver le nombre de visiteurs uniques en utilisant les données disponibles du trafic réseau:
GET bigginsight/_search { "aggregations": { "unique_visitors": { "cardinality": { "field": "username" } } }, "size": 0 }
La réponse d'agrégation de puissance est identique à celle des autres agrégations métriques:
{ "took": 110, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "unique_visitors": { "value": 79 } } }
Maintenant que nous avons trouvé les types d'agrégation les plus simples, nous pouvons considérer certaines agrégations segmentaires.
À propos des auteurs
Pranav Shukla est le fondateur et chef de Valens DataLabs, ingénieur, mari et père de deux enfants. Architecte Big Data et programmeur professionnel utilisant des langages de programmation basés sur JVM. Pranav développe des applications d'entreprise pour les entreprises et les startups du Fortune 500 depuis plus de 14 ans. Sa principale spécialisation est la création d'applications évolutives basées sur les données basées sur JVM, Java / Scala, l'écosystème Hadoop, les bases de données Apache Spark et NoSQL. Développement actif dans des domaines liés à l'organisation du big data, à l'analyse et au machine learning.
Pranav a fondé Valens DataLabs pour aider d'autres entreprises à utiliser les données pour accroître leur compétitivité. Valens DataLabs est spécialisé dans la création d'une nouvelle génération d'applications cloud pour travailler avec les Big Data et les technologies Web. Le travail de l’entreprise est basé sur l’utilisation de pratiques flexibles, les principes de la fabrication allégée, le développement basé sur des tests et des comportements, l’intégration continue et le déploiement continu de systèmes logiciels durables.
Sharat Kumar M. N. a obtenu une maîtrise en informatique de l'Université du Texas, Dallas, USA. Il travaille dans l'industrie informatique depuis plus de dix ans, occupe actuellement le poste de développeur de solutions Oracle pour Elasticsearch, est un partisan d'Elastic Stack. Conférencier passionné, il a pris la parole lors de plusieurs conférences scientifiques et technologiques, notamment lors de l'événement Oracle Code. Sharat - Elastic Certified Instructor (Elastic Certified Instructor) - l'un des rares experts techniques au monde dont Elastic Inc. accordé le droit officiel de dispenser une formation «auprès des créateurs d'Elastic». Il est également un passionné de machine learning et de science des données.
À propos de Science Editor
Marcelo Ochoa travaille dans le laboratoire de la Faculté des sciences exactes de l'Université nationale du centre de Buenos Aires (Universidad Nacional del Centro de la Provincia de Buenos Aires), Argentine. Il est directeur technique de Scotas (www.scotas.com), spécialisé dans les solutions pseudo-temps réel utilisant les technologies Apache Solr et Oracle. Marcelo parvient à travailler à l'université et à s'engager dans des projets liés à Oracle et aux technologies Big Data. Auparavant, il a travaillé avec des bases de données, des technologies Web et Java. Dans le monde XML, Marcelo est connu comme le développeur DB Generator pour le projet Apache Cocoon. Il a participé à la création de projets open source tels que DBPrism, DBPrism CMS et Restlet.org, où il a travaillé sur Oracle XDB Restlet Adapter, qui est une alternative à l'écriture de services Web REST natifs dans la base de données JVM.
Depuis 2006, il participe au programme Oracle ACE et a récemment rejoint le projet Docker Mentor.
»Plus d'informations sur le livre sont disponibles sur
le site Web de l'éditeur»
Contenu»
Extrait25% de réduction sur les
colporteurs -
ElasticsearchLors du paiement de la version papier du livre, une version électronique du livre est envoyée par e-mail.