Informes de MongoDB
Crear Analyzer y Informes interactivos desde MongoDB ..
Steel Wheels Inc tiene información de pedidos de clientes almacenada en 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 los informes los documentos anidados y las matrices.
Pentaho Analyzer
Deberás configurar la conexión de datos 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 al trabajar con MongoDB. Esto incluye crear índices apropiados en MongoDB para respaldar tus consultas de informes y estructurar cuidadosamente tus pipelines de agregación para asegurar una recuperación eficiente de datos. También podrías considerar usar el 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 cargue datos desde diferentes archivos en tu sistema de archivos, y luego los cargue 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é iniciado y en ejecución.
cd
cd /opt/pentaho/server/pentaho-server/
sudo ./start-pentaho.shAsegúrate de que Pentaho Data Integration esté iniciado y en ejecución.
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 desde 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é iniciado y en ejecución. El Hypersonic Database Server - SteelWheels - es un servicio integrado.
Asegúrate de que Pentaho Data Integration esté iniciado y en ejecución.
Crear una nueva transformación

El paso Table Input lee información de una base de datos conectada usando sentencias SQL. Las 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 diálogo de configuración.
Establece la propiedad Step Name como Select Customers.
Antes de que podamos obtener datos de la base de datos Hypersonic SteelWheels, tendremos que crear una conexión JDBC hacia ella.
Haz clic en el botón New al lado del desplegable 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, debes verificar doblemente los detalles de conexión.
Haz clic en OK para volver al paso Table Input.
Ahora que tenemos una conexión válida configurada, somos capaces de 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 llenará 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 MongoDB en esta sección. Asegúrate de que la opción Use Field Name esté configurada en No para cada campo, así:
x
Al hacer clic en Preview document structure, verás un ejemplo de cómo será el documento cuando se inserte en la colección Customers de MongoDB.
Haz clic en el botón OK para finalizar 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 PDI.
Linux
Asegúrate de que el servidor Pentaho esté iniciado y en ejecución. El Hypersonic Database Server - SteelWheels - es un servicio integrado.
Asegúrate de que Pentaho Data Integration esté iniciado y en ejecución.
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. Luego, 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 finalizar 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 segmentar' el conjunto de datos necesitaremos crear esquemas OLAP (acrónimo de Online Analytical Processing) para Pentaho basados en MongoDB.
Pentaho usa el motor ROLAP (acrónimo de Relational Online Analytical Processing), llamado por Mondrian para convertir consultas MDX (acrónimo 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 tendremos solo un cubo..!
x
x
x
x
Linux
Abre la aplicación Schema Workbench. Con Schema Workbench abierto, configuremos la conexión a la base de datos MongoDB.
En el menú principal, selecciona Options -> Connection, e introduce 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 sobre el objeto Schema y selecciona Add Dimension.
Añade una tabla a la jerarquía haciendo clic derecho y seleccionando Add Table.
Después de seleccionar el objeto table añadido, 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, introduce los siguientes detalles:
Añade un nuevo nivel y define el mes; introduce los siguientes detalles:
A continuación, añade 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?
