Integración de Elasticsearch con MS SQL, Logstash y Kibana

MS SQL Server mantiene los datos en forma relacional o incluso en forma multidimensional (a través de SSAS) y ofrece varias funciones de búsqueda listas para usar a través de...

Introducción

MS SQL Server mantiene los datos en forma relacional o incluso en forma multidimensional (a través de SSAS) y ofrece varias funciones de búsqueda listas para usar a través de Full Búsqueda de texto (FTS).

Sin embargo, la función de búsqueda de las aplicaciones del mundo moderno tiene muchas complejidades. Las especificaciones de búsqueda son híbridas y las consultas exigen búsquedas a gran escala en conjuntos de datos masivos. Se requiere una mejor solución para realizar un nivel tan avanzado de búsquedas y ahí es donde Elasticsearch llama la atención de los expertos en tecnología.

Elasticsearch es un servicio REST HTTP sustancial que permite escalar operaciones incluso hasta miles de consultas por segundo. Sus características, como el marco de facetas y agregación, también ayudan a resolver muchos problemas relacionados con el análisis de datos. Por lo tanto, la integración de Elasticsearch con cualquier base de datos relacional puede resultar un poderoso valor agregado para la aplicación.

¿Cómo podemos integrar Elasticsearch con MS SQL?

Todo el proceso de integración de MS SQL y Elasticsearch junto con el motor de recopilación de datos y análisis de registros, Logstash, plataforma de análisis y visualización, Kibana se describe aquí en cinco pasos simples.

Paso 1: configuración del entorno

Encuentre las instrucciones para configurar el entorno de integración con sus propósitos (cuando corresponda):

  • Descargue e instale Java utilizando la URL https://java.com/es/descargar - Establezca la ruta de Java en la variable Path Environment y establezca JAVA_HOME en \ “C:\Archivos de programa\Java\jre1.8.0_151"

Propósito: Elasticsearch proporciona una API de Java y ejecuta todas las operaciones de manera asincrónica utilizando el objeto del cliente. El objeto de cliente puede ejecutar de forma acumulativa todas las operaciones de forma masiva. La API de Java se utiliza para ejecutar todas las API en Elasticsearch.

Propósito: Dado que Elasticsearch está desarrollado en Java, necesitamos instalar el controlador JDBC para conectarnos con SQL Server

  • Extraiga el controlador a "C:\Program Files".

  • Copie sqljdbc_auth.dll de "C:\Program Files\sqljdbc_6.0\enu\auth\x64" y péguelo en la ubicación "C:\Program Files\Java\jre1. 8.0_151\bin".

Propósito: Esto autorizará a Java a acceder al controlador JDBC

  • Agregue "C:\Program Files\sqljdbc_6.0\enu\auth\x64" a la ruta de la variable de entorno.

Variable de entorno Java{.img-responsive}

Propósito: las variables de entorno se configuran para habilitar procesos como:

  • Permitir el acceso a las herramientas de línea de comandos
  • Permitir que otras herramientas interactúen con los SDK más fácilmente

Paso 2: Configuración de Elasticsearch

Encuentre instrucciones para realizar la configuración de Elasticsearch:

Finalidad: Para instalar servicios, en nuestro caso necesitamos que Logstash esté instalado como servicio.

Paso 3: configuración de Logstash

Encuentre instrucciones para realizar la configuración de Logstash:

Propósito: Logstash permite que la aplicación recopile datos de diferentes sistemas. Además, normaliza diferentes esquemas. Le permite mantener los datos recopilados de varios sistemas en un formato común. Como resultado:

  • Puede interactuar con los datos recopilados de diferentes sistemas simultáneamente. Además, puede comparar conjuntos de datos o incluso ver cómo se influyen entre sí.

  • Las herramientas de visualización como Kibana y los motores de análisis como Elasticsearch pueden aprovechar al máximo los datos complejos.

  • Agregue jre7 y jre8 a "C:\Program Files\sqljdbc_6.0\enu" usando la URL http://www.java2s.com/Code/Jar/s/Downloadsqljdbc420jar.htm

  • Cree un archivo con el nombre logstash.conf, agregue este archivo en la carpeta "logstash/bin".

  • Abra el símbolo del sistema con derechos de administrador, vaya a la carpeta "nssm\win64" y escriba nssm install Logstash

nssm install Logstash{.img-responsive}

  • Navegue a la carpeta Logstash y proporcione el argumento de la siguiente manera:

instalador del servicio nssm Logstash{.img-responsive}

Dependencia de Logstash del instalador del servicio nssm{.img-responsive}

  • Abra logstash.conf usando el Bloc de notas (o cualquier otro editor de texto) y agregue la siguiente configuración:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
input {
    jdbc {
        # SqlServer jdbc connection string to our database, employeedb
        #  "jdbc:sqlserver://HostName\instanceName;database=DBName;user=UserName;password=Password" 
        jdbc_connection_string => "jdbc:sqlserver://localhost\SQLExpress;database=employeedb;user=sa;[correo electrónico protegido]"
        # The user we want to execute our statement as
        jdbc_user => nil
        # The path to our downloaded jdbc driver
        jdbc_driver_library => "C:/Program Files/sqljdbc_6.0/enu/jre8/sqljdbc42.jar"
        # The name of the driver class for SqlServer
        jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
        # Query for testing purpose
        statement => "SELECT * from employee"
    }
}
output {
    stdout { codec => json_lines }
}
  • Navegue a la carpeta bin de Logstash desde el símbolo del sistema y proporcione el comando "logstash -f logstash.conf". Debería devolver el resultado de la consulta:

Resultado de consulta de Logstash{.img-responsive}

Paso 4: Configuración de Kibana

Encuentre instrucciones para crear una configuración para Kibana:

  • Descarga Kibana y Descomprime en C: unidad.

  • Vaya a la carpeta de Kibana "C:\kibana-5.6.4-windows-x86\config", elimine el icono '#' de kibana.yml para descomentar las propiedades de Kibana

Configuración de Kibana{.img-responsive}

  • Instalar Kibana usando NSSM

nssm install Kibana{.img-responsive}

  • Navegue a la carpeta Kibana como se menciona a continuación:

servicio de instalación de nssm Kibana{.img-responsive}

Dependencia de Kibana del instalador del servicio nssm{.img-responsive}

Para verificar si Kibana está instalado o no, explore la URL del host local: [http://localhost:5601/app/kibana#/management/kibana/index?_g=( )](http://localhost:5601/app /kibana#/management/kibana/index?_g=(%20))

Paso 5: Conexión de Elasticsearch con la aplicación

Instale el complemento de Nest para utilizar Elasticsearch en Visual Studio. Para habilitar las operaciones de la base de datos a través de Elasticsearch, también se requiere adjuntar el complemento ElasticsearchCRUD mediante la URL https://www.nuget.org/packages/ElasticsearchCRUD/. Descargue los archivos DLL y proporcione una referencia.

Conclusión

En este artículo, describí el proceso sistemático de integración de Elastic Stack (Elasticsearch, Logstash y Kibana) con la base de datos MS SQL para aprovechar al máximo los conjuntos de datos. También he tratado de compartir el propósito de cada acción donde sea aplicable.

Sin embargo, estos pasos no se limitan necesariamente a la base de datos MS SQL. Siempre que descargue los controladores relevantes, puede integrar Elasticsearch con cualquier otra base de datos siguiendo el mismo procedimiento.

Debido a sus capacidades excesivas de gestión de datos, creo que Elasticsearch tiene el potencial para hacer frente a los desafíos de la era moderna de la erupción de datos. No es de extrañar que la clientela de alto nivel, incluidos Netflix, Uber, Dell, BBC, LinkedIn y eBay, lo esté aprovechando. Sin embargo, todavía está en una fase joven y mucho mejor está por venir.

Sobre el Autor

Mayank Gaur es ingeniero de software sénior en Tecnologías Azilen y tiene alrededor de 5 años de experiencia junto con conocimientos distintivos sobre .Net y SQL Server. Mayank tiene habilidades adecuadas para convertir ideas en realidad junto con una actitud orientada a la solución.