Libro "Elasticsearch, Kibana, Logstash y los motores de búsqueda de la próxima generación"

imagen Hola habrozhiteli! Hemos publicado un libro sobre Elastic Stack, diseñado para profesionales que trabajan con grandes volúmenes de datos y desean extraerlos de manera confiable de cualquier fuente en cualquier formato, así como buscar, analizar y visualizar datos en tiempo real. Este libro es para usted si necesita una comprensión fundamental del trabajo de Elastic Stack en las áreas de computación distribuida y procesamiento de datos en tiempo real.

A continuación se proporcionará la estructura del libro sobre un pasaje sobre la agregación.

Estructura del libro


El Capítulo 1 "Introducción a Elastic Stack" presenta los componentes principales de Elastic Stack, explica su papel en la estructura general, describe el propósito de cada componente. Este capítulo también analiza la necesidad de una búsqueda y análisis distribuidos y escalables que se logra con Elasticsearch. Al final, hay una guía para descargar e instalar Elasticsearch y Kibana para que pueda comenzar con estas herramientas.

El Capítulo 2, “Introducción a Elasticsearch”, le presenta los principios clave del motor de búsqueda Elasticsearch, que es la base de Elastic Stack. Se familiarizará con conceptos como índices, tipos, nodos y clústeres. También aprenderá a usar la API REST para realizar operaciones básicas.

El Capítulo 3, "La búsqueda es importante", se centra en los métodos de búsqueda proporcionados por Elasticsearch. Aprenderá los conceptos básicos de análisis de texto, tokenizadores, analizadores y características de búsqueda relevante. Este capítulo también proporciona ejemplos prácticos de búsquedas relevantes.

El Capítulo 4, "Análisis de datos con Elasticsearch", habla sobre los diferentes tipos de agregación. Incluye ejemplos que lo ayudarán a comprender mejor los principios del análisis de datos. Aprenderá a usar diferentes tipos de agregaciones, desde simples hasta complejas, para navegar por grandes conjuntos de datos. Después de leer este capítulo, sabrá cuándo y qué opción de agregación es mejor usar.

El Capítulo 5, Análisis de registros, proporciona información sobre la necesidad de usar Logstash, su arquitectura, instalación y configuración. Elastic 5 proporciona una herramienta de nodo de ingesta que puede reemplazar la configuración de Logstash. Al leer este capítulo, aprenderá a crear contenedores con el nodo de ingesta elástica.

El Capítulo 6, “Diseño de contenedores con Logstash”, le brinda una comprensión básica de Logstash, que le permite identificar dinámicamente datos de varias fuentes y normalizarlos utilizando los filtros que seleccione. Aprenderá cómo tener una amplia gama de filtros pone a Logstash a la par con otros marcos de procesamiento de transmisión en tiempo real y casi en tiempo real sin escribir código. También se le presentará la plataforma Beats y el componente FileBeat utilizado para transportar archivos de registro (archivos de registro) desde máquinas remotas.

El Capítulo 7, “Visualización de datos en Kibana”, muestra cómo puede usar Kibana para visualizar y presentar de manera impresionante sus datos. Un ejemplo de un conjunto de datos simple describe la creación de visualizaciones en un par de clics.

El Capítulo 8, Elastic X-Pack, habla sobre la extensión Elasticsearch. En este momento, ya aprenderá Elasticsearch y sus componentes clave para crear contenedores de datos y podrá conectar extensiones para resolver problemas específicos. En este capítulo leerá cómo instalar y configurar los componentes de X-Pack en Elastic Stack, aprenderá los conceptos básicos de seguridad y monitoreo, y aprenderá cómo agregar varias notificaciones.

El Capítulo 9, "Poner la pila elástica en el trabajo", ofrece recomendaciones para poner el complejo de la pila elástica en operación comercial. Recibirá recomendaciones sobre cómo implementar su aplicación y cambiar la configuración estándar de acuerdo con los requisitos de la operación. También aprenderá a usar los servicios en la nube de Elastic Cloud.

El Capítulo 10 "Creación de una aplicación para analizar datos de sensores" describe la creación de una aplicación para analizar y procesar datos de varias fuentes. Aprenderá a modelar datos en Elasticsearch, crear contenedores de datos y visualizarlos en Kibana. También aprenderá cómo usar de manera efectiva los componentes de X-Pack para garantizar la seguridad y el monitoreo de sus contenedores, recibir notificaciones de varios eventos.

El Capítulo 11, Monitoreo de la infraestructura del servidor, muestra cómo usar Elastic Stack para configurar el monitoreo en tiempo real para servidores y aplicaciones que se construyen completamente en Elastic Stack. Conocerá otro componente de la plataforma Beats: Metricbeat, que se utiliza para monitorear servidores / aplicaciones.

Agregaciones de los valores de suma, promedio, máximo y mínimo.


Encontrar la suma de un campo, un valor mínimo o máximo, o un promedio es una operación bastante común. En SQL, una consulta para calcular la suma es la siguiente:

SELECT sum(downloadTotal) FROM usageReport; 

Por lo tanto, la suma del campo downloadTotal se calculará para todas las entradas de la tabla. Para hacer esto, revise todos los registros en la tabla o todos los registros en el contexto seleccionado y agregue los valores de los campos seleccionados.

En Elasticsearch, puede escribir una consulta similar utilizando la agregación de suma.

Cantidad agregada


Aquí le mostramos cómo escribir una agregación simple de la cantidad:

 GET bigginsight/_search { "aggregations": { 1 "download_sum": { 2 "sum": { 3 "field": "downloadTotal" 4 } } }, "size": 0 5 } 

  1. Los agregados o agregaciones en el nivel superior deben servir como envoltorio para la agregación.
  2. Dale un nombre a la agregación. En este caso, agregamos la cantidad en el campo downloadTotal y seleccionamos el nombre apropiado download_sum. Puedes llamarla como quieras. Este campo es útil cuando necesitamos encontrar esta agregación específica en los resultados de la respuesta.
  3. Hacemos la agregación de la suma, por lo tanto, se aplica el elemento de suma.
  4. Queremos agregar términos por el campo downloadTotal.
  5. Especifique size = 0 para evitar que los resultados sin procesar entren en la respuesta. Solo necesitamos resultados de agregación, no resultados de búsqueda. Como no especificamos ningún elemento de consulta de alto nivel, la consulta funcionará con todos los documentos. No necesitamos documentos sin procesar (o resultados de búsqueda) en la respuesta.

La respuesta debería verse así:

 { "took": 92, ... "hits": { "total": 242836, 1 "max_score": 0, "hits": [] }, "aggregations": { 2 "download_sum": { 3 "value": 2197438700 4 } } } 

Entenderemos los parámetros principales de la respuesta.

  1. El elemento hits.total muestra la cantidad de documentos que coinciden con el contexto de la solicitud. Si no se especifica ninguna consulta o filtro adicional, se incluirán todos los documentos en el tipo o índice.
  2. Por analogía con la solicitud, esta respuesta se coloca dentro de la agregación para su presentación en este formulario.
  3. La respuesta de la agregación que solicitamos se llama download_sum, por lo tanto, obtenemos nuestra respuesta de la agregación de la cantidad dentro del elemento con el mismo nombre.
  4. El valor real se muestra después de aplicar la cantidad de agregación.

Las agregaciones de valores medios, máximos y mínimos son muy similares. Los consideraremos brevemente.

Agregación promedio


La agregación del promedio encuentra el valor promedio para todos los documentos en el contexto de la solicitud:

 GET bigginsight/_search { "aggregations": { "download_average": { 1 "avg": { 2 "field": "downloadTotal" } } }, "size": 0 } 

Las diferencias notables de la agregación de la cantidad son las siguientes.

  1. Elegimos otro nombre, download_average, para que quede claro que esta agregación está diseñada para calcular el valor promedio.
  2. El tipo de agregación a realizar es avg en lugar de sum, como en el ejemplo anterior.

La estructura de la respuesta es idéntica a la respuesta de la subsección anterior, pero en el campo de valor veremos el valor promedio de los campos solicitados.

Las agregaciones de los valores mínimos y máximos son similares.

Agregación mínima


Encuentre el valor mínimo del campo downloadTotal en todo el índice / tipo:

 GET bigginsight/_search { "aggregations": { "download_min": { "min": { "field": "downloadTotal" } } }, "size": 0 } 

Agregación de valor máximo


Encuentre el valor máximo del campo downloadTotal en todo el índice / tipo:

 GET bigginsight/_search { "aggregations": { "download_max": { "max": { "field": "downloadTotal" } } }, "size": 0 } 

Estas son agregaciones muy simples. Ahora veamos agregaciones más complicadas de estadísticas y estadísticas avanzadas.

Agregaciones de estadísticas y estadísticas avanzadas.


Estas agregaciones calculan algunos valores estadísticos comunes dentro de una sola consulta y sin realizar consultas adicionales. Debido al hecho de que las estadísticas se calculan de una vez y no se solicitan varias veces, los recursos de Elasticsearch se guardan. El código del cliente también se vuelve más fácil si está interesado en varios tipos de dichos datos. Eche un vistazo a un ejemplo de agregación de estadísticas.

Agregación de estadísticas


La agregación de estadísticas calcula la cantidad, el promedio, el máximo, el valor mínimo y el número total de documentos en una ejecución:

 GET bigginsight/_search { "aggregations": { "download_stats": { "stats": { "field": "downloadTotal" } } }, "size": 0 } 

Solicitar estadísticas sobre la estructura es similar a otras agregaciones métricas que ya conoce; No pasa nada especial aquí.

La respuesta debería verse así:

 { "took": 4, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "download_stats": { "count": 242835, "min": 0, "max": 241213, "avg": 9049.102065188297, "sum": 2197438700 } } } 

Como puede ver, la respuesta con el elemento download_stats contiene el total, mínimo, máximo, promedio y total. Esta conclusión es muy conveniente, ya que reduce el número de solicitudes y simplifica el código del cliente.

Eche un vistazo a la agregación de estadísticas avanzadas.

Agregación de estadísticas avanzadas


La agregación de estadísticas extendidas devuelve un poco más de estadísticas además de la opción anterior:

 GET bigginsight/_search { "aggregations": { "download_estats": { "extended_stats": { "field": "downloadTotal" } } }, "size": 0 } 

La respuesta se verá así:

 { "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 } } } } 

En la respuesta también obtienes la suma de los cuadrados, la discrepancia, la desviación estándar y sus límites.

Agregación de poder


El recuento de elementos únicos se puede hacer mediante la agregación de potencia. Esto es similar a buscar un resultado de consulta, como se muestra a continuación:

 select count(*) from (select distinct username from usageReport) u; 

Determinar la potencia o el número de valores únicos para un campo en particular es una tarea bastante común. Por ejemplo, si tiene una secuencia de clics (secuencia de clics) de varios visitantes a su sitio, es posible que desee saber cuántos visitantes únicos hay en el sitio en un día, semana o mes seleccionado.

Veamos cómo encontrar la cantidad de visitantes únicos que utilizan los datos de tráfico de red disponibles:

 GET bigginsight/_search { "aggregations": { "unique_visitors": { "cardinality": { "field": "username" } } }, "size": 0 } 

La respuesta de agregación de potencia se ve igual que en otras agregaciones métricas:

 { "took": 110, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "unique_visitors": { "value": 79 } } } 

Ahora que hemos descubierto los tipos más simples de agregaciones, podemos considerar algunas agregaciones segmentarias.

Sobre los autores


Pranav Shukla es el fundador y director de Valens DataLabs, ingeniero, esposo y padre de dos hijos. Arquitecto de big data y programador profesional que utiliza lenguajes de programación basados ​​en JVM. Pranav ha estado desarrollando aplicaciones empresariales para empresas y nuevas empresas Fortune 500 durante más de 14 años. Su especialización principal es la creación de aplicaciones escalables basadas en datos basadas en JVM, Java / Scala, el ecosistema Hadoop, Apache Spark y bases de datos NoSQL. Desarrollando activamente en áreas relacionadas con la organización de big data, análisis y aprendizaje automático.

Pranav fundó Valens DataLabs para ayudar a otras compañías a usar datos para aumentar su competitividad. Valens DataLabs se especializa en crear una nueva generación de aplicaciones en la nube para trabajar con big data y tecnologías web. El trabajo de la compañía se basa en el uso de prácticas flexibles, los principios de manufactura esbelta, desarrollo basado en pruebas y comportamiento, integración continua y despliegue continuo de sistemas de software sostenibles.

Sharat Kumar M. N. recibió una maestría en ciencias de la computación de la Universidad de Texas, Dallas, EE. UU. Ha trabajado en la industria de TI durante más de diez años, actualmente ocupa el puesto de desarrollador de soluciones de Oracle para Elasticsearch, es partidario de Elastic Stack. Un orador ávido, ha hablado en varias conferencias de ciencia y tecnología, incluido el Oracle Code Event. Sharat - Elastic Certified Instructor (Elastic Certified Instructor) - uno de los pocos expertos técnicos en el mundo a quien Elastic Inc. otorgó el derecho oficial a realizar capacitación "de los creadores de Elastic". También es un entusiasta del aprendizaje automático y la ciencia de datos.

Sobre el editor de ciencias


Marcelo Ochoa trabaja en el laboratorio de la Facultad de Ciencias Exactas de la Universidad Nacional del Centro de Buenos Aires (Argentina). Es CTO de Scotas (www.scotas.com), que se especializa en soluciones pseudo-en tiempo real utilizando las tecnologías Apache Solr y Oracle. Marcelo logra trabajar en la universidad y participar en proyectos relacionados con Oracle y las tecnologías de big data. Anteriormente, trabajó con bases de datos, tecnologías web y Java. En el mundo XML, Marcelo es conocido como el desarrollador de DB Generator para el proyecto Apache Cocoon. Participó en la creación de proyectos de código abierto como DBPrism, DBPrism CMS y Restlet.org, donde trabajó en Oracle XDB Restlet Adapter, que es una alternativa a la escritura de servicios web REST nativos dentro de la base de datos JVM.

Desde 2006, ha estado participando en el programa Oracle ACE, y recientemente se unió al proyecto Docker Mentor.

»Se puede encontrar más información sobre el libro en el sitio web del editor
» Contenidos
» Extracto

Cupón de 25% de descuento para vendedores ambulantes - Elasticsearch

Tras el pago de la versión en papel del libro, se envía una versión electrónica del libro por correo electrónico.

Source: https://habr.com/ru/post/451750/


All Articles