Mostrando las entradas con la etiqueta Integracion. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Integracion. Mostrar todas las entradas

miércoles, 25 de septiembre de 2019

Conectando Google BigQuery desde MuleSoft

Este articulo explicará los pasos y las configuraciones a seguir para conectarnos a Google BigQuery desde MuleSoft, usando el conector de Base de Datos.

BigQuery es un almacén de datos en la nube, altamente escalable y rentable, con un motor de BI en memoria y machine learning integrado.

Mulesoft es un framework de mensajería ESB (Enterprise Service Bus) escalable y distribuible que puede manejar interacciones con servicios y aplicaciones que usan distintas tecnologías de transporte y mensajería.


CONFIGURAR UNA CUENTA DE GOOGLE

Lo primero que haremos es configurar una cuenta de Google para poder usar BigQuery, entramos a la siguiente liga http://console.cloud.google.com y accedemos con nuestra cuenta de Google.


En el menú de la parte izquierda seleccionaremos las opciones IAM y administración -> Cuentas de servicio y crearemos un proyecto pulsando el enlace CREAR.

Ingresamos el nombre del proyecto: BigQuery, y pulsamos el botón CREAR.
                                


Crearemos una cuenta de servicio pulsando el botón + CREAR CUENTA DE SERVICIO.

Ingresaremos el nombre: mulesoft, y pulsaremos el botón CREAR.

Nos solicitará los permisos/rol que le otorgaremos a esta cuenta, seleccionaremos Administrador de BigQuery y pulsaremos el botón CONTINUAR.

El siguiente paso es la creación de la clave privada, seleccionamos JSON y pulsamos el botón CREAR.

Crearemos una carpeta (Mulesoft_Bigquery) de preferencia en el escritorio, para guardar el archivo de clave y demás archivos que usaremos posteriormente.

El archivo de clave contendrá los campos: project_id y client_email, entre otros, los cuales usaremos más adelante para configurar la conexión.

Ahora en el menú principal seleccionaremos la opción BigQuery.

En la parte izquierda seleccionamos nuestro Id de proyecto (bigquery-253315) y pulsamos el botón CREAR CONJUNTO DE DATOS.

Ingresamos el ID: usuarios, y pulsamos el botón Crear conjunto de datos.

En la parte izquierda de la pantalla expandimos bigquery-253315 -> usuarios, y pulsamos el botón CREAR TABLA.

Ingresamos el nombre de la tabla: usuarios, y agregamos los campos como se muestran en la imagen: id, nombre, apellido_paterno, apellido_materno, edad y genero. Pulsamos el botón Crear tabla.

Con el Editor de Consultas podremos ejecutar select * from usuarios.usuarios para validar la existencia de la tabla, donde usuarios.usuarios hace referencia a Conjunto de Datos.Tabla

Si queremos agregar información a la tabla usando insert into usuarios.usuarios values ("1", 'Luis Alberto', 'Juarez', 'Juanico', 33, 'masculino') nos aparecerá el error: Billing has not been enabled for this Project.

Para solucionar este problema entramos a la URL que nos indica el mensaje de error (https://console.cloud.google.com/billing) y pulsamos el botón Añadir cuenta de facturación.

Ingresamos los datos de facturación que se solicitan (nombre, dirección, tarjeta de débito/crédito, etc.) y pulsamos el botón de Iniciar prueba gratuita.

De vuelta en el Editor de Consultas, pulsamos el botón ACTUALIZAR que se encuentra en la parte superior derecha de la pantalla, con esto ya podremos ejecutar el insert.







DESCARGAR JDBC DRIVERS DE GOOGLE BIGQUERY

Entramos a la URL: 
https://cloud.google.com/bigquery/providers/simba-drivers/ y pulsamos el link JDBC 4.2-compatible. Guardamos el archivo en nuestra carpeta Mulesoft_Bigquery.

Descomprimimos el archivo SimbaJDBCDriverforGoogleBigQuery42_1.2.1.1001.zip y el contenido será similar a como se muestra a continuación.


CREAR FLUJO EN ANYPOINTSTUDIO

Abrimos AnypointStudio y creamos un nuevo proyecto con el nombre BigQuery.

Arrastramos nuestro archivo de clave bigquery-253315-79479f43a3c4.json a nuestro proyecto Mule en la carpeta src/main/resources. Seleccionamos la opción Copy files y pulsamos el botón OK.


Ahora necesitaremos la ubicación local de este archivo en nuestro proyecto. Para esto pulsaremos el botón derecho sobre el archivo json y elegiremos la opción Properties. Copiaremos la ubicación ya que la necesitaremos más adelante, debe ser algo similar a:
C:\Users\Luis\AnypointStudio\workspace\bigquery\src\main\resources\bigquery-253315-79479f43a3c4.json



Agregaremos el archivo de clave al path pulsando el botón derecho sobre el archivo y seleccionando la opción Build Path -> Add to Build Path.

Ahora debemos ejecutar los mismos pasos para todos los archivos jar contenidos en la carpeta que descomprimimos SimbaJDBCDriverforGoogleBigQuery42_1.2.1.1001, seleccionamos y arrastramos todos los archivos jar a la carpeta src/main/resources, eligiendo la opción Copy files.

Agregamos esos archivos jar la Build Path pulsando el botón derecho y seleccionando del menú las opciones Built Path -> Add to Build Path.

Veremos que los archivos jar se mueven a la carpeta llamada Referenced Libraries.

Ahora construiremos un flujo que se conectará a BigQuery y consulte los registros de la tabla usuarios. Para esto arrastraremos un conector HTTP a nuestra área de trabajo y pulsamos el símbolo + (Add) frente al campo Connector Configuration para agregar la configuración de nuestro HTTP Listener, dejamos los valores por default (Host: All Interfaces [0.0.0.0] y Port: 8081). Este conector será la interfaz expuesta/servicio que consumiremos más adelante.

Seleccionamos el conector HTTP y configuramos los campos Path: /read, Allowed Methods: GET

Abrimos el archivo mule-app.properties y agregamos las propiedades: project_id, client_email, pvt_key_path y driver_class_name= com.simba.googlebigquery.jdbc42.Driver

Recordemos que los valores de project_id y client_email los obtendremos de nuestro archivo clave json.
El valor para pvt_key_path es la ubicación del archivo clave que obtuvimos anteriormente (C:/Users/Luis/AnypointStudio/workspace/bigquery/src/main/resources/bigquery-253315-79479f43a3c4.json)

Nota: Debemos cambiar las diagonales invertidas “\” por diagonales hacia adelante “/”.

Ahora agregamos un conector de Base de Datos y pulsamos el símbolo + (Add) frente al campo Connector configuration. Seleccionamos Generic Database Configuration y pulsamos el botón OK.


En el campo URL colocaremos la siguiente cadena:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=0;ProjectId=${project_id};OAuthServiceAcctEmail=${client_email};OAuthPvtKeyPath=${pvt_key_path};

En el campo Driver Class Name colocaremos el texto: ${driver_class_name}

Donde:


  OAuthType=0, indica que el driver usara autenticación service-based.
  ProjectId=${project_id}, se llenará con el valor de la propiedad project_id definida en el archivo de propiedades.
 OAuthServiceAcctEmail=${client_email}, se llenará con el valor de la propiedad client_email definida en el archivo de propiedades.
 OAuthPvtKeyPath=${pvt_key_path}, se llenará con el valor de la propiedad pvt_key_path definida en el archivo de propiedades.

Pulsamos el botón Test Connection para probar la conexión hacia BigQuery, nos mostrara un mensaje de éxito. Pulsamos los botones OK para cerrar estos mensajes.

Dentro de la configuración del conector de Base de Datos seleccionaremos Operation: Select, Type: Dynamic y Dynamic query: select * from usuarios.usuarios

Al final de nuestro flujo colocaremos un Transform Message, para transformar el resultado de la Base de Datos de Java a json.


%dw 1.0
%output application/json
---
payload


Pulsamos el botón derecho dentro del área de trabajo y seleccionamos la opción Run project bigquery.

Validamos que en la consola se muestre el mensaje de despliegue correcto.


Desde Postman probaremos el servicio enviando una petición GET: http://localhost:8081/read
Veremos que la respuesta es el contenido de la tabla usuarios.

De igual forma podríamos implementar las operaciones de Insert, Update o Delete sobre la tabla.



CONCLUSIÓN

Como pudimos observar, la configuración de la conexión hacia Google BigQuery es relativamente sencilla usando el conector a Base de Datos que proporciona Mulesoft junto con el driver JDBC propio de BigQuery. Con esto podemos crear nuestra propia API y exponer las funcionalidades específicas que necesitemos realizar sobre la Base de Datos.

domingo, 12 de agosto de 2018

Tendencias en Tecnologias de la Información 2018

Escribo este post con la finalidad de compartir un resumen sobre un artículo publicado por MuleSoft que me pareció muy interesante: Top 10 IT trends shaping 2018, en este articulo detallan los resultados de una encuesta realizada a 650 empresas líderes en el uso de tecnología en países como Estados Unidos, Reino Unido, Alemania, Holanda, Australia, Singapur y China. Esto con el fin de identificar las tendencias en Tecnologías de la Información que marcaran el 2018 y muy probablemente los años siguientes.




INTRODUCCIÓN

Para sobrevivir en la economía digital, las organizaciones necesitan ser más ágiles; deben desarrollar y lanzar nuevos productos y servicios rápidamente, tan pronto como el mercado los exija. Ya no se trata del grande comiendo el pequeño; ahora es sobre el rápido comiendo al lento.

Para asegurarse de que sigan siendo competitivas, las compañías están trabajando en iniciativas de transformación digital, por ejemplo: mejorar la eficiencia en que su equipo de TI trabaja, transformando las experiencias e interacciones de sus clientes, y aumentando su eficiencia comercial. Pero para muchas organizaciones, todavía hay grandes barreras que les impiden alcanzar la transformación digital, por ejemplo: integración, falta de recursos y desalineación entre TI y el resto del negocio.


ENCUESTA


Casi tres cuartas partes (74%) de los responsables de la toma de decisiones de TI están llevando a cabo iniciativas de transformación digital, con un 23% más planeando hacerlo en los próximos tres años.
¿Actualmente su empresa está llevando a cabo iniciativas de transformación digital?


Los encuestados tenían muy claro cuáles eran los objetivos que querían alcanzar con la transformación digital. Citaron el aumento de la eficiencia operativa de TI (83%), mejorar la experiencia del cliente (71%) y el aumento de la eficiencia comercial (70%), como sus mejores tres objetivos para la transformación digital.

¿Cuáles son los objetivos que más te gustaría lograr con tus iniciativas de transformación digital en tu organización?
Para lograr estos objetivos, los encuestados identificaron una serie de iniciativas específicas que querían lograr. La modernización de sistemas legados, integrando aplicaciones SaaS, e invertir en aplicaciones móviles, lo cual no es nada sorprendente dado los objetivos populares de aumentar la eficiencia y mejorar la experiencia del cliente.

¿Cuáles son las iniciativas más importantes en las que trabajará para alcanzar los objetivos comerciales de su organización?
Llevar a cabo estas iniciativas de transformación digital no es fácil para las organizaciones ya que enfrentan una serie de barreras culturales y tecnológicas. Restricciones de tiempo (43%), Desalineación empresarial y de TI (42%) e Infraestructura y sistemas heredados (38%) fueron citados como las tres principales barreras para la transformación digital.

¿Cuáles de los siguientes son los tres mayores desafíos para lograr la transformación digital dentro de su organización?
Esta presión para transformar llega en un momento en que los presupuestos de TI se han mantenido relativamente estático, pero se le pide simultáneamente a TI que entregue más proyectos al negocio.

¿Cómo cambiará su presupuesto de TI durante el próximo año?
 Los encuestados identificaron que un gran obstáculo para la transformación digital es la integración.

¿Cuántas aplicaciones individuales diferentes crees que están en uso en tu organización?

 ¿Qué porcentaje de estas aplicaciones integra o conecta actualmente su organización?

Como era de esperar, la gran mayoría (93%) admiten que su proceso de desarrollo de aplicaciones podría ser más eficiente.

¿Cree que el proceso de desarrollo de aplicaciones de su organización podría ser más eficiente?
¿Qué porcentaje de los componentes de software internos de su organización (código, API, plantillas de mejores prácticas) están disponibles para que los desarrolladores los reutilicen?

Una estrategia enfocada al uso de APIs es fundamental para prosperar en la actual economía digital. Ampliando las capacidades de la empresa al convertirse en una plataforma digital permite a las organizaciones aumentar sus ganancias dramáticamente.

¿Qué resultados comerciales obtuvo su organización al aprovechar las APIs?


TENDENCIAS EN TECNOLOGÍAS DE LA INFORMACION 2018

Cuando se le preguntó a los encuestados sobre las áreas tecnológicas en las que actualmente invierten o planean invertir: big data/analytics (57%) e Internet of Things (52%) fueron las principales áreas de enfoque, seguidas por una estrategia de múltiples Nubes (44%) y AI/aprendizaje automático (43%). 

El gran enfoque en big data y análisis es comprensible, ya que será clave para obtener valor de las iniciativas IoT y AI en el futuro.


¿En cuál de las siguientes tecnologías está planeando invertir tu organización?




CONCLUSIÓN

En un tiempo en que los presupuestos y los recursos siguen siendo ajustados, está claro que el enfoque anterior de TI tratando de entregar todos los proyectos en sí no funcionará para el ritmo acelerado de cambio. Los responsables de la toma de decisiones nos dicen que sus cargas de trabajo están aumentando, sus presupuestos y los recursos solo están subiendo ligeramente.

Los responsables de la toma de decisiones de TI saben que la transformación digital no es solo una cuestión de comprar software nuevo y esperar que resuelva todos los problemas; el número de aplicaciones que están integrando y los enfoques de integración tradicionales están simplemente creando nuevos problemas. Los responsables de TI que invierten en API, software reutilizable, y formas más eficientes de desarrollar aplicaciones sugieren que están pensando en nuevas soluciones a estos desafíos.



Oracle Autonomous Database Gratis

Recientemente Oracle anuncio la disponibilidad de su Autonomous Database gratis de por vida, por lo cual me di a la tarea de ver si realm...