Archivo

Archivo del autor

Uso de servicios REST y ficheros complejos con ODI 12c (II)

odirwsEn la primera parte de este post vimos como realizar una petición vía REST Webservice a la API de Geocoding de google con ODI 12c, a partir de una dirección almacenada en una tabla en nuestra BD Oracle.

En esta segunda parte veremos como acceder al fichero de respuesta obtenido en la primera parte y actualizar la tabla original con las coordenadas UTM contenidas en el fichero JSON, para lo que deberemos:

  • Crear un fichero XSD que defina la estructura del fichero JSON
  • Configurar la topología física para el acceso al fichero JSON
  • Desarrollar un mapping que lea el fichero JSON y actualice la tabla, y un package que coordine la ejecución

Para comprender mejor los pasos que vamos a seguir en el package, sería interesante primero dar un vistazo rápido al capítulo de la descripción general del funcionamiento del procesamiento de ficheros complejos, en la documentación oficial de ODI 12c. Dicho documento queda resumido en el siguiente esquema, y descibre como el fichero complejo (JSON en nuestro caso) es traducido y cargado al vuelo por el driver en un esquema de BD, que será con el que trabajaremos en realidad (aunque de manera transparente).

ODI_JSON_CFD_Process

A nivel de topología necesitamos definir dentro la tecnología “Complex File” un DataServer (al que llamamos Coordenates) y un modelo físico (al que también llamamos Coordenates) como se aprecia en la siguiente captura:

ODI_JSON_TOPOLOGIA

Utilizaremos el botón “Edit nXSD” para invocar un asistente que nos ayudará con la creación del fichero nXSD que define la estructura del fichero JSON a procesar.

Leer más…

Categorías:Business Analytics Etiquetas: , , ,

Uso de servicios REST y ficheros complejos con ODI 12c (I)

odirwsHace unos días me encontré frente a una tabla de direcciones con coordenadas UTMS en la que faltaban las coordenadas de diez registros de entre más de tres mil. Iniciar el proceso para que los usuarios afectados actualizasen los datos de los registros de su responsabilidad llevaría inevitablemente cierto tiempo hasta su resolución, así que decidí echar mano de Google.
Rápidamente identifiqué la API necesaria (Geocoding) y elegí el formato  para la respuesta. Verifiqué el funcionamiento con una invocación manual, exploré el fichero .json de respuesta (> 6Kb) y hallé los 50 bytes con los datos que buscaba. Los comprobé con la función inversa, introduciendo las coordenadas obtenidas en Google Maps, que me ubicó en la dirección original. Veamos un ejemplo:

https://maps.googleapis.com/maps/api/geocode/json?address=Aragó+180,+Barcelona&key=************************

Tras esta verificación pensé: ya sólo me faltan nueve. Así que siendo pragmático, hice unos cuantos cut&paste y completé en unos minutos las coordenadas de los diez registros. Pero me quedé con una inquietud: ¿qué habría ocurrido si en lugar de sólo diez hubieran habido más de tres mil registros sin coordenadas?
La respuesta fue clara: automatizarlo con ODI. Y así fue como se originó la decisión de escribir este post, ilustrando la solución a dos necesidades bastante cotidianas:

  • Utilizar un servicio REST para obtener datos de la web
  • Procesar un fichero JSON

Tanto el orden de las necesidades como “el sentido” del flujo de datos pueden variar, así como su relación con alguna de las tablas en BD (que en nuestro caso, será una tabla con direcciones), no obstante espero que el ejemplo sea suficientemente ilustrativo.
Una segunda motivación para este post es la “actualización de conocimientos”. Estas dos tareas ya eran posibles con ODI 11g, pero veremos que ODI 12c simplifica su ejecución y a la vez nos ayuda a conservar los desarrollos más ordenados.

Utilizar un servicio REST para obtener datos externos

La llamada es sencilla, la API sólo requiere dos parámetros:

  • la dirección buscada (formateando adecuadamente los espacios, numeración y comas)
  • la clave de desarrollador para poder utilizar la API (que es constante)

Quizá lo más complicado sea parsear la respuesta, pues hay cierta redundancia de datos, y utilizar el formato XML en lugar de JSON tampoco variaría mucho. Así pues, iremos por partes: primero obtendremos los datos de la respuesta del servicio y después procesaremos la respuesta (fichero .json).
Para configurar el servicio, lo primero que necesitamos crear es un “Data Server” al que llamaremos “GoogleGeocod”, que apuntará a la URL del endpoint del servicio REST: https://maps.googleapis.com.
Acto seguido, crearemos un esquema físico bajo el nuevo servicio:

ps_geocode

Leer más…

Twitter en cuadros de mando OBIEE 12c

febrero 24, 2016 2 comentarios

twitterIntrodujimos en este post anterior las enormes posibilidades que abrían las funcionalidades de Advanced Analytics de OBI EE 12c, y más concretamente, EVALUATE_SCRIPT que permite invocar scripts de desarrollo propio y capturar sus resultados para mostrarlos en nuestros análisis.

Vamos a profundizar un poco más en esta funcionalidad con un ejemplo concreto y muy interesante que nos va a permitir visualizar en nuestro cuadro de mando OBI “qué se cuece en la olla de twitter”.

Mediante un simple desarrollo, podremos introducir un texto (podría ser una marca, un artículo, …), capturar los comentarios en twitter (on-line) y visualizarlo en forma de wordcloud.

dashboard_tweeter

Esta sencilla aplicación, añade mucho dinamismo a nuestros cuadros de mando, sin gran esfuerzo, pues nos apoyamos en librerías R ya existentes.

En este caso, utilizamos un package llamadoo twitteR de Jeff Gentry (disponible en GitHub, donde encontraremos documentación e información de trouble shooting, y en los repositorios CRAN).

Vamos a profundizar un poco más en cómo se hace…

Leer más…

Categorías:Business Analytics Etiquetas: , ,

¿Por qué OBIEE no aparece en el Cuadrante Mágico de Gartner 2016 para BI-Analytics?

Para sorpresa de muchos, en el último Cuadrante Mágico para Plataformas Analíticas y de Business Intelligence de Gartner (febrero 2016), la consultora ¡ha dejado a Oracle Business Intelligence (OBI) fuera! No tan sólo del cuadrante de líderes, donde solía (y debería) estar, sino que lo ha excluido completamente del cuadrante…

Chocante, tras la amenaza del año pasado, en que Gartner situó a OBI en el límite inferior de los líderes, y tras los esfuerzos y el salto hacia adelante realizado por Oracle con OBI 12c y su profunda renovaciónen cuanto a visualización, usabilidad, capacidad analítica, arquitectura y facilidad de administración.

En avanttic pensamos que, si bien Gartner habrá tomado esta decisión objetivamente según sus criterios de evaluación, dichos criterios pueden haber obviado algunas de las realidades y necesidades de la informática corporativa y de las fortalezas de la plataforma analítica de Oracle, por lo que vamos a intentar ponerlas en valor y tranquilizar así a todo aquel que se haya extrañado de la exclusión de OBI este año.

Gartner_Analytics_2016

El artículo de Gartner especifica concretamente en el caso de Oracle que:

Oracle has dropped from the Magic Quadrant entirely, because it has been slow to respond to the shift in market dynamics and does not have a product offering with enough market traction that meets the modern platform criteria established this year.

Y si revisamos el Inclusion Criteria de Gartner, entenderemos un poco más la ausencia de Oracle:

Products that require significant IT involvement, either internal or external to the platform, to load and model data, create a semantic layer, build data structures as a prerequisite to using the BI Platform or are IT developer-centric platforms focused on building analytic applications do not meet the criteria of a modern BI and analytics platform and were not evaluated further for inclusion.

Las soluciones de Oracle para Business Intelligence y Business Analytics se ajustan bastante a los criterios de “no inclusión” del informe. A nuestro criterio, son justamente las características que permiten construir soluciones de inteligencia de negocio de tipo corporativo:

  • Capa de metadatos: como garantía de calidad de los datos en un sentido amplio, contemplando características tan críticas como la veracidad (“fuente única de verdad”) o la trazabilidad (determinar mediante la integración entre OBI y ODI cómo se ha calculado una métrica).
  • Seguridad corporativa (incluso a nivel de fila).
  • Plataforma abierta: federación de múltiples orígenes de datos y tecnologías, integración con otros paquetes analíticos (como R).
  • Completitud: satisfacer también las necesidades de reporting y alertas.
  • Arquitectura: cloud-híbrido, alta disponibilidad.
  • Soporte de primera clase 24×7.

Por contra, de la mano de soluciones de BI de tipo autoservicio, en las que no haya un mínimo data management, las organizaciones podrían correr el riesgo de sufrir una regresión en la calidad de los datos y volver a una etapa anterior a la “fuente única de verdad”.

Leer más…

Troubleshooting instalación Plug-in BI Publisher para Office

avt_troubleshooting

BI Publisher es una herramienta de reporting potente y flexible que ofrece diferentes maneras de diseñar plantillas de informes. En función del objetivo del informe, nos resultará más interesante utilizar un tipo de plantilla u otro.

Si necesitamos un desarrollo rápido o los requerimientos son básicos y nos interesa más obtener los datos con poco esfuerzo que la vistosidad del formato, la opción más productiva es utilizar la plantilla interactiva con el diseñador on-line. Por el contrario, si los requerimientos de formato son complejos o el aspecto visual debe ser más elaborado, nos decantaremos por una plantilla .RTF, para lo que necesitaremos tener instalado en nuestro equipo MS-Word con el plug-in de BI Publisher.

Desde mi experiencia, hasta la versión 2007 de MS-Office esta tarea no acostumbraba a plantear mayores dificultades, pero a partir de la versión 2010… se complicó.

La intención de este post es compartir cómo podemos resolver algunos de los problemas derivados de la instalación del plug-in, que, aunque finaliza sin errores, nos dejará en alguna de las siguientes situaciones:

  • La pestaña “BI Publisher” no se muestra en el menú de Excel o Word (aunque está instalado)
  • El plug-in no se ha instalado realmente
  • No están instaladas en el sistema librerías utilizadas por el plug-in

Es este post vamos a utilizar la versión 2013; puede haber alguna diferencia con la 2010, pero en líneas generales… nos debería servir como guía.

Antes de abordar las soluciones a los problemas comentados, una recomendación inicial:

Ineludiblemente, debemos instalar el plug-in de acuerdo a la versión (32/64 bits) de Office que tengamos instalada, y se ha mostrado menos conflictiva la versión de Office 32bits que la de 64bits (en la que hemos observado algún resultado híbrido: Excel de 64 bits –cómo se espera-, pero al instalar el plug-in de 64 bits para Word, el instalador aborta indicando que debemos instalar la versión para Office de 32 bits –a pesar de que Word reporta ser de 64bits-).

El problema de más fácil resolución es cuando la instalación se ha completado pero el plug-in “BI Publisher” no se muestra en el menú.

Tanto puede ocurrir con Excel como con Word. En ambos casos habilitaremos manualmente la pestaña a través del menú “Archivo > Opciones

PDis_11

Leer más…

Categorías:Business Analytics Etiquetas: , ,

OBI 12c – Advanced Analytics con R

diciembre 23, 2015 Deja un comentario

RlogoEntre las características destacadas de la recientemente liberada versión 12.2.1 de Oracle Business Intelligence están las nuevas funcionalidades de Advanced Analytics.

Esta nueva característica de OBI nos permite la utilización de 3 tipos de función, de los cuales, veremos detalladamente cómo utilizar el último, ya que nos abre unas posibilidades de expansión y customización ¡enormes!

  • Funciones internas del producto, como por ejemplo TRENDLINE, que mide un conjunto de datos en el tiempo para representar una gráfica con una línea que marca la tendencia de los datos analizados.
  • Funciones externas, como por ejemplo CLUSTER o OUTLIER (disponibles tanto para usuarios de Answers como de Visual Analyzer) que utilizan el motor de R externo que haya sido configurado (necesariamente), bien sea la redistribución de R u ORE (Oracle R Enterprise). La función lógica de SQL externo se encarga de proporcionar al motor R los datos, para que ejecute la función y devuelva los resultados.
  • Scripts (en realidad, una función externa específica llamada EVALUATE_SCRIPT) que diferenciamos del caso anterior ya que nos permite ejecutar no únicamente funciones predefinidas, sino scripts de desarrollo propio (que, por ejemplo, apliquen un modelo R construido por nosotros).

La función EVALUATE_SCRIPT tiene la siguiente sintaxis:

EVALUATE_SCRIPT( <script_file_path>, <column_name>, <options>, [<runtime_binded_column_options>] )

script_file_path: Indica la ruta al fichero de script .XML (relativa a una variable del sistema, filerepo, que apunta al directorio donde deberíamos ubicar todos nuestros scripts).

column_name: indica el nombre de la columna en la que se devolverá el resultado.

options: cadena que contienen los parámetros que espera el script en forma de pares de valores separados por “;”. Cuando el parámetro deba tomar el valor de una de las columnas seleccionadas en el answer, lo indicaremos como %n (n indica el n-éssimo parámetro de la lista de parámetros a continuación).

runtime_binded_column_options: lista de parámetros de longitud variable, formada por los nombres de columnas seleccionadas en el answer y que deseamos pasar al script como parámetros.

Para utilizar un script R desde OBI 12c deberemos seguir los siguientes pasos:

  1. Desarrollar la función R con la funcionalidad deseada.
  2. Definir el script .XML que actuará de interface entre OBIEE y la función R. En él se definen los parámetros de entrada y salida de nuestra función.
  3. Diseñar un answer, seleccionando las columnas de dimensión y métricas necesarias para alimentar a nuestro script. A continuación añadimos una nueva columna de fórmula, desde la que invocamos la función EVALUATE_SCRIPT.
  4. Visualizar el resultado. Para ello, utilizamos una Narrative View en la insertamos el siguiente código (asumiendo que la función EVALUATE_SCRIPT estaba en la 4 columna de nuestro answer).

imgcode

Leer más…

Liberado OBIEE 11.1.1.9, versión terminal de OBI 11g

OBIEE11119Hace pocos días (14/05/15) que Oracle ha liberado la versión 11.1.1.9 de OBIEE a través de OTN (y próximamente en e-delivery para producción).

Han pasado cerca de dos años desde que se liberara la versión anterior (11.1.1.7)… y un par de semanas desde que Mark Rittman escribiera un tweet acerca de esta circunstancia (¿casualidad? ;-))… y se deduce de alguna nota en Support (Doc ID 1996367.1) que será la versión terminal de OBI 11g.

Tras una rápida lectura de la documentación, destacamos algunas de las mejoras que ofrece la nueva versión:

  • Ampliación del soporte para Oracle 12c (BD In-memory, Exadata y In-memory en Exadata y EHCC -compresión columnar híbrida-)
  • Acceso a orígenes de datos Hyperion Planning
  • Añade Cloudera Impala a las BD soportadas
  • Definir formatos personalizados para exportar Cuadros de mando a Excel
  • Mejoras en la exportación a Excel/PDF (por fin se podrá cambiar la orientación !!!)
  • Mejoras en Aggregate Persistance y Summary Advisor
  • Posibilidad de utilizar HTML5 en gráficos y gauges en lugar de flash !!!
  • Integra Mobile Aplication Designer en la instalación estándar del producto

Y algunas características o funcionalidades que desaparecen:

  • Soporte para plataformas Windows 32 bits
  • Las BI Publisher Desktop Tools no soportan MS-Office 2013 (!!!)

Con similar discreción (y menos notas en support), ha sido publicada también en OTN la versión 11.1.1.9 de ODI, con un par de nuevas funcionalidades y un companion CD con los Aplication Adapters for Hadoop.

Con esto podremos entretenernos… hasta la llegada de OBI 12c, que esperamos sea próxima.