Inteligencia Geoespacial

Por Juan Vicenteño, Francisco González y Carlos Alvaro
Publicado en marzo 2013

La inteligencia de negocios es un proceso mediante el cual los datos se convierten en información valiosa para la toma de decisiones dentro de una organización, sin embargo llega el momento en que las tablas y gráficas no son suficientes para poder contar con toda la información necesaria para elegir la siguiente mejor acción en la compañía; es cuando la integración con otros sistemas, en este caso, con Sistemas de Información Geoespacial, toma mucha importancia.

En las siguientes páginas, se estará hablando de la integración de Oracle Business Intelligence 11g, la herramienta insignia para inteligencia de negocios de Oracle, con Oracle Spatial, la utilería que permite almacenar y consultar datos espaciales dentro de la base de datos Oracle. Dicha integración se logró a partir de una prueba que se preparó y está basada en dos ambientes virtualizados para su mejor comprensión.

El primer ambiente consiste de una máquina virtual que tiene como sistema operativa Windows XP SP3 de 32 bits con 3.5GB en memoria RAM. En este ambiente se encuentra una base de datos Oracle, la cual tiene cargados los datos geoespaciales que se utilizaron para la prueba. El Segundo ambiente, está virtualizado también, y tiene como sistema operativo, Oracle Enterprise Linux 5, en este ambiente es donde se encuentra la instalación de Oracle Business Intelligence y su respectivo Oracle Weblogic Server Standard Edition.

Los datos espaciales que se utilizaron pertenecen a Nave, ahora parte de Nokia, y para poder utilizar dichos datos es necesario adquirir la licencia correspondiente por parte de ellos. Inicialmente, Nave nos proporcionó un dump de Oracle, (*.dmp), este archivo fue cargado directamente a la base de datos, y lo que contiene es:

  • Mapa Base de Norteamérica
  • Capa de Nivel Socioeconómico para México
  • Capa de Densidad Poblacional para México
  • Capa de Patrones de Tráfico para la Ciudad de México
  • Información de ubicación de diversos comercios en México (bancos y retailers para la prueba)

Cada una de estas capas se almacenó dentro de la base de datos espacial. Cabe destacar que específicamente el tipo de datos que guarda esas ubicaciones se llama SDO_GEOMETRY.

Una vez que los datos estuvieron cargados, lo que se procedió a hacer fue a crear un modelo de datos de Oracle BI. Este modelo de datos, es un modelo bastante sencillo, con una tabla de hechos y un par de catálogos. No estaremos tocando a fondo la construcción del modelo, ya que no es el objetivo de este documento, lo que si hay que resaltar es que hay una llave llamada POI_ID en la tabla de hechos y en los catálogos, habrá que tomarla en cuenta a lo largo del artículo, ya que esta llave servirá más adelante para ligar la tabla de hechos con las capas geoespaciales y poder así pintar en un mapa los puntos de interés (POI_ID = Point Of Interest ID).

Habiendo creado el modelo de datos en Oracle BI Administration Tool, es necesario comenzar a darle formato a las diferentes capas geoespaciales que se vayan a utilizar en Oracle BI, por eso haremos uso de un par de herramientas: Oracle MapBuilder y Oracle MapViewer.

1. Creación de las capas geoespaciales

Oracle MapBuilder es un cliente que se conectará a la base de datos en donde residen los datos espaciales y nos permitirá modelar el mapa base, así como las diferentes capas aplicándoles diferentes estilos y temas para su correcta visualización. Oracle MapViewer es otra herramienta, la cual se ejecuta sobre un servidor de aplicaciones (WebLogic) y lo que permite es la visualización de los mapas en Oracle BI, entonces veámoslo como un flujo, en el que a través de MapBuilder creo las capas y a través de MapViewer le permito a Oracle BI visualizar dichas capas.

El cliente de Oracle MapBuilder es posible descargarlo del sitio de Oracle y se ejecuta un archivo con extensión *.jar, este archivo abrirá una pantalla como la siguiente:

Archivo ejecutable de Oracle MapBuilder
Imagen 1. Archivo ejecutable de Oracle MapBuilder

Habrá que agregar la conexión a la base de datos que se estará utilizando, es decir el repositorio espacial, en este caso aquella base que reside en el ambiente de Windows XP. Probar la conexión.

Agregando la conexión desde Oracle MapBuilder
Imagen 2. Agregando la conexión desde Oracle MapBuilder

Una vez que Oracle MapBuilder se conecte a este repositorio, estará trayendo las tablas que existen en la base de datos, entonces lo primero que haremos será crear capas. Una capa no es otra cosa más que una forma de visualizar datos, podemos tener diferentes tipos de capas, de acuerdo a los tipos de datos que se quieran ver: población, nivel socioeconómico, tiendas, bancos, tráfico, etc.

Las primeras capas que estaremos haciendo, son aquellas que no necesitan tener una relación con los datos, éstas son las capas de densidad poblacional, nivel socioeconómico y patrones de tráfico. Al mencionar que no tienen relación con los datos, lo que se quiere decir es que estas capas se estarán pintando en el mapa independientemente de los datos que se tengan en la tabla de hechos. Por mencionar un ejemplo: puedo pintar lo que cada una de las sucursales vende y encima coloco la capa de densidad poblacional, la capa de densidad no cambiará si los datos de ventas cambian, por eso es que estas capas no requieren de relación alguna con la tabla de hechos.

Para hacer una nueva capa, habrá que abrir la carpeta Metadata que se encuentra del lado izquierdo, luego la carpeta “Themes” y finalmente “Geometry Themes”, dar click derecho y seleccionar “Create Geometry Theme”.

Temas Geométricos en Oracle MapBuilder
Imagen 3. Temas Geométricos en Oracle MapBuilder

Esto abrirá un wizard, hay que seguir las instrucciones de este wizard y en la segunda pantalla, en donde nos pide los datos de creación de la capa, asignar un nombre, una descripción, y aquí se elige la tabla en donde se encuentran los datos espaciales, en este caso estamos creando la tabla de densidad poblacional, los datos correspondientes se encuentran en la tabla “AGEBS”, la columna espacial que se utiliza (la columna que contiene el dato espacial) es “GEOM”.

Wizard de Creación de Tema geométrico
Imagen 4. Wizard de Creación de Tema geométrico

Proseguir con el wizard y seleccionar el tema que mejor se adecúe a nuestra consulta. Dar click en preview y visualizar la capa. Guardar.

Definición de temas geométricos en MapBuilder
Definición de temas geométricos en MapBuilder
Imagen 5. Definición de temas geométricos en MapBuilder

Previsualización de la capa de Densidad de Población
Imagen 6. Previsualización de la capa de Densidad de Población.

Una vez creada la capa de densidad poblacional, quedan pendientes las otras capas. Crearemos la capa de patrones de tráfico y de niveles socioeconómicos y posteriormente haremos las capas que sí requieren de estar relacionadas con la tabla de hechos.

Para crear la capa de patrones de tráfico y de niveles socioeconómicos, habrá que efectuar los mismos pasos que para la capa de densidad, sin embargo las tablas de origen son las que cambiarán de la siguiente forma:

Capa de Patrones de Tráfico

  • Tabla base: TRAFFICPATTERNS
  • Geometry Column: GEOLOC
  • Columna para definir estilo: DIRECTION
  • Estilo aplicado: ORA_TRAFFICPATTERNS

Previsualización de la capa de Patrones de Tráfico
Imagen 7. Previsualización de la capa de Patrones de Tráfico.

Capa de Niveles Socioeconómicos

  • Tabla base: NSE_DF
  • Geometry Column: GEOM
  • Columna para definir estilo: NSE_CARTO
  • Estilo aplicado: ORA_NSE_DF

Previsualización de la capa de Niveles Socioeconómicos
Imagen 7. Previsualización de la capa de Niveles Socioeconómicos.

Una vez terminadas las capas de niveles socioeconómicos, densidad de población y patrones de tráfico, proseguimos a crear aquellas capas que sí estarán ligadas a la tabla de hechos. Estaremos creando 6 capas adicionales, tres de ellas serán de bancos en México y las otras tres serán de 3 de los retailers más importantes:

  • Bancos
          o BBVA Bancomer
          o Santander
          o HSBC
  • Retailers
          o Wal*Mart
          o Superama
          o Oxxo

Para crear estas capas, se seguirá el mismo procedimiento que se utilizó para crear las primeras, la diferencia será que en estas se tendrá que definir una llave de capa o “Layer Key”.

Empezaremos con los bancos. Ir a Geometry Themes y dar click derecho, seleccionar Nuevo tema. El wizard para la creación de temas se abrirá, habrá que asignarle Nombre y Descripción y seleccionar la tabla correspondiente (Para Bancos: NTC_MAP_POI_BUSINESS, para Retailers: NTC_MAP_POI_SHOP) y en Spatial Column seleccionando la columna GEOMETRY.

Siguiendo los pasos del wizard, habrá que seleccionar un estilo a aplicar, en este caso queremos identificar los Retailers y Bancos y las ventas que se hacen a través de éstos, por tal motivo es necesario definir Markers (marcadores para puntos en un mapa), en este caso estos markers ya están definidos con el logo de los bancos y de los retailers respectivamente. En caso de querer dar de alta un nuevo marker, habrá que ir a la carpeta Styles>Markers y crearlo ahí.

Lo importante al momento de estar definiendo este tipo de capas es que al finalizar de crearlas, habrá que ir a la sección Advanced, que se encuentra del lado izquierdo de cada capa bajo la pestaña “Editor”. En esta sección de Advanced, se definirá la llave con la que se ligará con el modelo previamente creado de Oracle BI. En el campo llamado Key Column, habrá que seleccionar POI_ID, (que se definió con anterioridad en Oracle BI Administrator).

Definición en Oracle Mapbuilder, de la llave de capa
Imagen 8. Definición en Oracle Mapbuilder, de la llave de capa.

Capas de Bancos

  • Tabla base: NTC_MAP_POI_BUSINESS
  • Geometry Column: GEOMETRY
  • Columna para filtrar: NAME (‘BBVA Bancomer’, ‘Santander’, ‘HSBC’)
  • Estilo aplicado: Dependiendo del Banco se aplica el logo correspondiente.

Previsualización de la capa de Bancos HSBC
Imagen 9. Previsualización de la capa de Bancos HSBC.

Previsualización de la capa de Bancos BBVA Bancomer
Imagen 10. Previsualización de la capa de Bancos BBVA Bancomer.

Previsualización de la capa de Bancos Santander
Imagen 11. Previsualización de la capa de Bancos Santander.

Capas de Retailers

  • Tabla base: NTC_MAP_POI_SHOP
  • Geometry Column: GEOMETRY
  • Columna para filtrar: NAME (‘WalMart Supercenter, ‘Oxxo, ‘Superama)
  • Estilo aplicado: Dependiendo del Retailer se aplica el logo correspondiente.

Previsualización de la capa de Retailers WalMart
Imagen 12. Previsualización de la capa de Retailers WalMart.

Previsualización de la capa de Retailers Oxxo
Imagen 13. Previsualización de la capa de Retailers Oxxo.

Previsualización de la capa de Retailers Superama
Imagen 14. Previsualización de la capa de Retailers Superama.

2. Definición del Datasource en Oracle MapViewer

Una vez finalizadas las capas que se utilizarán en Oracle BI, habrá que hacer que la capa de presentación de éste último sea capaz de visualizar las capas geoespaciales recién creadas. Para poder lograr esto será necesario accesar a Oracle MapViewer a través de: localhost:puerto/mapviewer, en donde el puerto es usualmente el que se utiliza para accesar a la capa de presentación de Oracle BI, en nuestra prueba este puerto es el 7001.

Dar de alta la fuente de datos en Oracle MapViewer
Imagen 15. Dar de alta la fuente de datos en Oracle MapViewer.

Se accesa a la página con las credenciales de Weblogic Server, una vez dentro habrá que ir a Admin en lado superior derecho. Ya que se esté autenticado como administrador, hay que agregar una nueva fuente de datos, esto se hace dando click del lado izquierdo en ‘Datasources’, habrá que definir manualmente la conexión hacia la base de datos donde residen los datos espaciales y las capas que generamos con anterioridad. Una vez definida esta conexión, Oracle BI será capaz de visualizar las capas que hemos creado.

3. Asociación en Oracle BI

Finalmente para poder visualizar las capas geoespaciales dentro de Oracle BI, habrá que autenticarnos dentro de Presentation Services, e ir directamente a la sección ‘Administration’ en el lado superior derecho. Una vez dentro de esta página, habrá que dar click en ‘Manage Map Data’ para administrar los datos espaciales que queramos que aparezcan en Oracle BI.

Oracle Business Intelligence
Imagen 16. Oracle Business Intelligence.

Dentro de esta sección es en donde se dan de alta las capas y los mapas base en Oracle BI. Habrá que dar de alta las capas que utilizaremos, por lo tanto dar click en ‘Layers’ y seleccionar el botón de Importar Capas que se encuentra en la parte superior derecha.

Agregando nuevas capas a los mapas dentro de OBIEE
Imagen 17. Agregando nuevas capas a los mapas dentro de OBIEE.

Se abrirá un Menú preguntando qué capa es la que se quiere importar, en el Menú, seleccionar la fuente de datos que se dio de alta en Oracle MapViewer, en este caso OBIEE_NAVTEQ_TELEFONICA. Al seleccionar esta fuente de datos, aparecerán las capas que se crearon dentro de este esquema: Bancos, retailers, niveles socioeconómicos, densidad de población y patrones de tráfico.

Importación de Capas
Imagen 18. Importación de Capas.

El siguiente paso consiste en seleccionar la capa que se agregará. Elegir la capa, y al momento de seleccionarla, elegir la llave de esa capa. Esta llave es la que previamente se pidió que se tuviera, de modo que los datos espaciales puedan ser ligados a los datos de negocio.

Vinculación de capas: datos geoespaciales con datos de negocio
Imagen 19. Vinculación de capas: datos geoespaciales con datos de negocio.

Una vez que se hayan agregado las capas que se requiera visualizar, el siguiente paso consiste en agregar un mapa base o mapa fondo. Este mapa también lo provee Nave, y es el mapa que estará en la capa más baja, es decir el mapa que siempre visualizará el usuario y sobre el cual se colocarán las capas que se agregaron en el paso anterior. Para agregar este mapa, será necesario ir a Background Maps y seleccionar el mapa que se desee agregar como fondo.

Importación de Mapas de fondo o Background maps
Imagen 20. Importación de Mapas de fondo o Background maps.

Hasta ahora, contamos con mapas base y capas de negocio, las cuales se encuentran ligadas a los datos transaccionales. Lo último que se tiene que hacer, es crear el mapa y ordenar las capas, así como ajustar el zoom de cada una de éstas. En la pestaña de mapas fondo, dar click en el signo “+” para agregarle capas a este mapa fondo. Añadir las capas que se crearon con anterioridad, así como el nivel de zoom en el cual las capas serán o no visibles en el mapa. Al finalizar dar click en OK.

Ordenamiento  de capas y previsualización del mapa
Imagen 21. Ordenamiento de capas y previsualización del mapa.

Hagamos una prueba para comprobar que en efecto la integración se haya hecho de manera correcta. Para hacer esta prueba, será necesario crear un nuevo reporte, elegir campos que hayan sido ligados con datos geoespaciales. En nuestra prueba, los campos que seleccionamos fueron Id, Nombre, Monto y Transacciones. La columna que tiene ligados datos geoespaciales es Id. Por default la vista que genera es una tabla, entonces habrá que agregar una vista de Mapa.

Agregando una vista de mapa en OBIEE
Imagen 22. Agregando una vista de mapa en OBIEE.