Informes de MongoDB
Crear analizadores e informes interactivos desde MongoDB ..
Steel Wheels Inc tiene información de pedidos de clientes almacenada en un MongoDB.
Pentaho Data Integration
Para hacer el caso de uso más interesante, vamos a crear algunas canalizaciones en Pentaho Data Integration, que cargarán archivos, migrarán tablas, etc., a un MongoDB que se ejecuta en Docker.
Pentaho Interactive Reporting
El proceso comienza de manera similar estableciendo la conexión con MongoDB. En Interactive Reporting, puedes crear informes arrastrando y soltando campos de tus colecciones de MongoDB directamente en el lienzo del informe. Primero necesitarás crear una capa de metadatos que traduzca la estructura de documentos de MongoDB a un formato estilo relacional con el que Pentaho pueda trabajar. Esto implica definir cómo deben representarse en tus informes los documentos y arreglos anidados.
Pentaho Analyzer
Deberás configurar la conexión de datos de MongoDB en el servidor Pentaho configurando el conector de MongoDB. Una vez conectado, tendrás que crear un esquema Mondrian que mapee tus colecciones y campos de MongoDB a un modelo multidimensional que Analyzer pueda entender. El esquema define dimensiones, medidas y jerarquías basadas en la estructura de datos de MongoDB.
Para ambas herramientas de informes, es importante tener en cuenta que la optimización del rendimiento es crucial cuando se trabaja con MongoDB. Esto incluye crear índices apropiados en MongoDB para soportar tus consultas de informe y estructurar cuidadosamente tus pipelines de agregación para asegurar una recuperación de datos eficiente. También puede que quieras considerar el uso del framework de agregación de MongoDB para preagregar datos para informes complejos.
x
x
Para esta opción, te guiaremos a través de la creación de una transformación que carga datos desde diferentes archivos en tu sistema de archivos, y luego los carga en una colección de MongoDB. Cada uno de estos archivos contiene una clave que podemos usar para unir datos en PDI antes de enviarlos al paso MongoDB Output.
Linux
Asegúrate de que el servidor Pentaho esté en funcionamiento.
cd
cd /opt/pentaho/server/pentaho-server/
sudo ./start-pentaho.shAsegúrate de que Pentaho Data Integration esté en funcionamiento.
cd
cd ~/Pentaho/design-tools/data-integration
./spoon.shCrear una nueva transformación

Selecciona la pestaña Design en la vista del lado izquierdo.
x
x
x
x
En esta transformación transferirás datos de un RDBMS de ejemplo a una base de datos MongoDB.
Los datos de ejemplo se llaman SteelWheels y están disponibles en el servidor Pentaho, ejecutándose en el Hypersonic Database Server.
Linux
Asegúrate de que el servidor Pentaho esté en funcionamiento. El Hypersonic Database Server - SteelWheels - es un servicio embebido.
Asegúrate de que Pentaho Data Integration esté en funcionamiento.
Crear una nueva transformación

El paso Table Input lee información desde una base de datos conectada usando sentencias SQL. Sentencias SQL básicas pueden generarse automáticamente haciendo clic en el botón Get SQL select statement.
Selecciona la pestaña Design en la vista del lado izquierdo.
Desde la carpeta de la categoría Input, encuentra el paso Table Input y arrástralo y suéltalo en el área de trabajo en la vista del lado derecho.
Haz doble clic en el paso Table Input para abrir el cuadro de configuración.
Establece la propiedad Step Name en Select Customers.
Antes de que podamos obtener cualquier dato de la base de datos Hypersonic de SteelWheels, tendremos que crear una conexión JDBC hacia ella.
Haz clic en el botón New junto al pulldown Database Connection. Esto abrirá el cuadro de diálogo Database Connection.
Introduce los siguientes detalles:
Puedes probar la conexión haciendo clic en el botón Test en la parte inferior del cuadro de diálogo. Deberías obtener un mensaje similar a Connection Successful. Si no, entonces debes verificar detenidamente los detalles de la conexión.
Haz clic en OK para volver al paso Table Input.
Ahora que tenemos una conexión válida configurada, podemos obtener una lista de clientes de la base de datos SteelWheels. Copia y pega el siguiente SQL en el área de texto de la consulta:
Haz clic en el botón Preview y verás una tabla con los detalles de los clientes.
x
Este paso escribe datos a un MongoDB colección.
Bajo la pestaña Design, desde la carpeta de la categoría Big Data, encuentra el paso MongoDB Output y arrástralo y suéltalo en el área de trabajo en la vista del lado derecho.
Crea un Hop desde el paso Table Input hasta el paso MongoDB Output.
Haz doble clic en el paso MongoDB Output.
Introduce los siguientes detalles:
Ahora, definamos la estructura de los documentos de MongoDB. Selecciona la pestaña Mongo document fields.
Haz clic en el botón Get fields, y la lista de campos se poblará con los campos de la base de datos SteelWheels en el flujo ETL.
Por defecto, los nombres de columna en la base de datos SteelWheels están en mayúsculas. En MongoDB, estos nombres de campo deberían estar en camel case. También puedes editar manualmente los nombres de las rutas de los documentos de MongoDB en esta sección. Asegúrate de que la opción Use Field Name esté establecida en No para cada campo, así:
x
Al hacer clic en Preview document structure, verás un ejemplo de cómo se verá el documento cuando se inserte en la colección Customers de MongoDB.
Haz clic en el botón OK para terminar la configuración de MongoDB Output.
EJECUTAR
x
x
Solo por interés, exploremos el uso del framework de agregación de MongoDB en el paso MongoDB Input. Crearemos un ejemplo simple para obtener datos de una colección y mostrarte cómo puedes aprovechar el framework de agregación de MongoDB para preparar datos para el flujo de PDI.
Linux
Asegúrate de que el servidor Pentaho esté en funcionamiento. El Hypersonic Database Server - SteelWheels - es un servicio embebido.
Asegúrate de que Pentaho Data Integration esté en funcionamiento.
Crear una nueva transformación
Selecciona la pestaña Design en la vista del lado izquierdo.
Desde la carpeta de la categoría Big Data, encuentra el paso MongoDB Input y arrástralo y suéltalo en el área de trabajo en la vista del lado derecho.
Haz doble clic en el paso para abrir el diálogo MongoDB Input.
Establece el nombre del paso en Select 'Baane Mini Imports' Orders.
Selecciona la pestaña Input options. Haz clic en el botón Get DBs y selecciona la opción SteelWheels para el campo Database. A continuación, haz clic en Get collections y selecciona la opción Orders para el campo Collection.
Selecciona la pestaña Query y luego marca la opción Query is aggregation pipeline. En el área de texto, escribe la siguiente consulta de agregación:
Desmarca la opción Output single JSON field.
Selecciona la pestaña Fields.
Haz clic en el botón Get Fields y obtendrás una lista de campos devueltos por la consulta.
Puedes previsualizar tus datos haciendo clic en el botón Preview.
Haz clic en el botón OK para terminar la configuración de este paso.
x
Queremos añadir un paso Dummy al flujo. Este paso no hace nada, pero nos permitirá seleccionar un paso para previsualizar nuestros datos. Añade el paso Dummy desde la categoría Flow al espacio de trabajo y nómbralo OUTPUT. 4. Crea un hop entre el paso Select 'Baane Mini Imports' Orders y el paso OUTPUT. 5. Selecciona el paso dummy OUTPUT y previsualiza los datos. 19
x
Para 'cortar y trocear' el conjunto de datos necesitaremos crear esquemas OLAP (abreviatura de Online Analytical Processing) para Pentaho basados en MongoDB.
Pentaho utiliza el motor ROLAP (abreviatura de Relational Online Analytical Processing), llamado por Mondrian para convertir consultas MDX (abreviatura de Multidimensional Expressions) en consultas SQL.
Comencemos con un esquema Mondrian 3.x usando Schema Workbench. Primero crearemos una dimensión compartida, date. Una dimensión compartida puede ser referenciada en diferentes cubos. Sin embargo, en este caso particular, no es necesario tener una dimensión compartida porque solo tendremos un cubo..!
x
x
x
x
Linux
Abre la aplicación Schema Workbench. Con Schema Workbench abierto, vamos a configurar la conexión a la base de datos MongoDB.
En el menú principal, selecciona Options -> Connection, e ingresa los siguientes detalles:
Haz clic en el botón Test y deberías obtener un cuadro de mensaje de éxito. Luego haz clic en el botón OK.
Dimensión Fecha
En el menú principal, ve a File -> New -> Schema.
x
Selecciona el objeto Schema y establece Orders como el nombre del campo.
Haz clic derecho en el objeto Schema y selecciona Add Dimension.
Agrega una tabla a la jerarquía haciendo clic derecho y seleccionando Add Table.
Después de seleccionar el objeto table agregado, selecciona la opción -> date para el campo name.
En la jerarquía por defecto (New Hierarchy 0), haz clic derecho y selecciona Add Level.
Definamos el año para este nuevo nivel, ingresa los siguientes detalles:
Agrega un nuevo nivel y define el mes; ingresa los siguientes detalles:
A continuación, agrega un nuevo nivel y define el día:
Selecciona el objeto hierarchy, elimina el nombre por defecto (New Hierarchy 0), y selecciona date para el campo primaryKey.
A continuación, selecciona el objeto dimension, y para el campo name, establece: date.
En el campo type, selecciona TimeDimension.
Finalmente, en el campo caption, establece Date.
x
x
x
x
x
x
x
x
¿Te fue útil?
