jueves, 10 de octubre de 2019

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 realmente es gratis para siempre o simplemente “gratis”. En este articulo explicaré las configuraciones y los pasos necesarios para obtener una instancia gratis de la base de datos Autónoma que ofrece Oracle en la nube.
Empecemos por la definición que nos presenta Oracle:

La base de datos autónoma de Oracle Cloud Infrastructure es un entorno de base de datos preconfigurado totalmente administrado con dos tipos de carga de trabajo disponibles, procesamiento de transacciones autónomas y almacén de datos autónomo. No necesita configurar ni administrar ningún hardware, ni instalar ningún software. Después del aprovisionamiento, puede escalar el número de núcleos de CPU o la capacidad de almacenamiento de la base de datos en cualquier momento sin afectar la disponibilidad o el rendimiento. La base de datos autónoma maneja la creación de la base de datos, así como las siguientes tareas de mantenimiento:

  • Copia de seguridad
  • Parcheo
  • Actualización
  • Afinación

Lo primero que haremos es entrar a la página https://www.oracle.com/cloud/free/#always-free y pulsar el botón Start for free. 
Nos redireccionará al formulario de registro en donde ingresaremos nuestro correo electrónico y el país de residencia, pulsamos el botón Next. 
En el siguiente formulario nos pedirá detalles de la cuenta a crear, seleccionamos Personal Use e ingresamos el nombre para la Cloud Account (aquí Oracle valida la disponibilidad del nombre, por lo cual debe ser único). Seleccionamos una Region de las disponibles actualmente:

North America
US East (Ashburn)
US West (Phoenix)
Canada South East (Toronto)
Europe
Germany Central (Frankfurt)
UK South (London)
Switzerland North (Zurich)
Asia-Pacific
India West (Mumbai)
South Korea Central (Seoul)
Australia East (Sydney)
Japan East (Tokyo)
Latin America
Brazil East (Sao Paulo) 
Además, debemos ingresar información personal como nombre, dirección y teléfono celular al cual nos llegara un código de confirmación después de pulsar el botón Next: Verify Mobile Number.
Este código de confirmación lo debemos ingresar en el siguiente formulario y pulsar el botón Verify Code.
El siguiente paso será ingresar una contraseña para la cuenta, pulsamos el botón Next: Payment Information. 
En la siguiente ventana Oracle nos notifica que NO aplicará ningún cargo a menos que hagamos un upgrade de nuestra cuenta. Pulsamos el botón Add Credit Card Details.
Ingresamos los datos de nuestra tarjeta bancaria, marcamos la casilla Complete y pulsamos el botón Complete Sign-Up.
A continuación, se iniciará el proceso de creación de nuestra nueva cuenta.  
Después de unos minutos nos llegará un correo electrónico indicando que ya podemos ingresar a nuestra cuenta. Pulsamos el botón Sign In to Oracle Cloud.
Ahora procederemos a crear la base de datos, pulsamos el link Create a database (notemos que tiene la etiqueta Always Free Elegible).
Escribimos el nombre de la base de datos, seleccionamos Transaction Processing como el tipo de workload y Serverless como el tipo de deployment.
Tenemos dos tipos de workloads:
  • Transaction Processing configura la base de datos para una carga de trabajo transaccional, con tendencia hacia grandes volúmenes de acceso aleatorio a datos.
  • Data Warehouse configura la base de datos para un soporte de decisión, con tendencia hacia grandes operaciones de escaneo de datos.
Y dos tipos de deployments:
  • Serverless aprovisiona y administra solo la base de datos autónoma, mientras que Oracle maneja las tareas de implementación y administración de la infraestructura.
  • Dedicated Infrastructure tiene uso exclusivo de la infraestructura y el hardware de Exadata, ofrece una arquitectura de base de datos multitenant, lo que le permite crear y administrar múltiples bases de datos autónomas dentro de un único sistema.

No olvidemos marcar la opción Always Free, lo cual nos dará 1 CPU y 20 GB de almacenamiento.

Por último, ingresamos una contraseña para el usuario ADMIN, seleccionamos el tipo de licencia License Included y pulsamos el botón Create Autonomous Database.
Se iniciará el proceso de creación de la base de datos y en pantalla podremos ver la información general.
Después de unos minutos el proceso terminara indicando que la base de datos esta lista.
Pulsamos el botón Service Console, en la nueva ventana seleccionamos Development y después SQL Developer Web.

Ingresamos con el usuario ADMIN.
Ejecutamos una prueba: select * from dual y vemos que se ejecuta correctamente. 

Conclusión

Esta oferta se compone de una prueba gratuita que nos permite explorar una amplia gama de productos de Oracle Cloud y un conjunto de ofertas Always Free que nunca caducan. Adicionalmente este periodo de prueba nos proporciona $300 en créditos en la nube que son válidos por 30 días.

Con nuestra cuenta tenemos acceso a:
  • Compute (hasta 2 instancias)
  • Autonomous Database (hasta 2 bases de datos)
  • Load Balancing (hasta 1 balanceador de carga)
  • Block Volume (hasta 100 GB)
  • Object Storage (hasta 20 GB)

Al ser una prueba gratuita, nuestra base de datos está limitada a 1 CPU, almacenamiento de hasta 20 GB y el Auto scaling esta deshabilitado, lo cual indica que si la carga de trabajo aumenta los recursos asignados a nuestra base de datos NO aumentaran automáticamente, esta característica esta habilitada en la suscripción de pago, pero para ser honestos esto es mas que suficiente para realizar pruebas de concepto o incluso demostraciones a nuestros clientes.


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.

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...