Inicio > Business Analytics > Twitter en cuadros de mando OBIEE 12c

Twitter en cuadros de mando OBIEE 12c

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…

Antes de empezar, hay unos prerrequisitos que debemos satisfacer:

  • Librerías utilizadas (dependencias) por el package twitteR, que deberán ser instaladas por un administrador del sistema.
  • Considerar que el acceso a twitter se realiza a través de https (sobre todo si estamos tras un proxy).
  • Necesitaremos una cuenta de desarrollo en twitter para poder autenticar (y configurar la autenticación de manera que no sea requerida a cada ejecución).

Resueltas estas cuestiones específicas para acceder a twitter con esta librería R, debemos enfrentarnos a la configuración del script .XML de OBIEE para invocar a la función, que es el foco principal de este post.

No hay mucha documentación al respecto, por lo que reproducimos el script que hemos utilizado y comentamos su estructura, que básicamente, consta de cuatro bloques: Inputs, Outputs, Options y Scriptcontent.

obiee.TwitteR

nyear
NO
1
NO

nyear

vizpath
varchar(200)

buscar

paleta

# — Inicializamos Directorio …  y paleta (parámetro seleccionado en Dashboard)
imgdir=”/app/oracle/biee/user_projects/domains/bi/custom_wls_apps/analyticsRes”
dirlen=nchar(imgdir)
fpath=tempfile(tmpdir=imgdir,fileext=”.png”)
imgpath=paste(“/analyticsRes/”,substr(fpath,dirlen+2,dirlen+200),sep=””)

# — Cuerpo de nuestra función —
library(tm)
library(wordcloud)
library(twitteR)

api_key # Dará problemas al ejecutar si no esta inicializada la autenticación Twitter (se queda esperando respuesta usuario!!!)
setup_twitter_oauth(api_key, api_secret, access_token, access_token_secret)

vTweets # — Iniciamos la captura del gráfico, visualizamos el wordcloud y finalizamos la captura —
png( fpath, width = 1024, height = 840 )
mypalette # — Retorno de la funcion —
o

 

Los 3 primeros bloques del script están asociados con los 2 últimos parámetros de la llamada a la función EVALUATE_SCRIPT: <options> y <runtime_binded_column_options>

EVALUATE_SCRIPT( ‘filerepo://obiee.TwitteR.xml’,  ‘vizpath’,

 ‘nyear=%1;buscar=@{P_TEXTO_BUSCAR}{OBIEE};paleta=@{P_PALETA}{Greens}’,

“Time”.”T05 Per Name Year”)

 

  • Input. Este bloque corresponde a las columnas de datos seleccionadas por el answer, y constituyen un dataframe (parámetro “df” de nuestra función). Al parecer es obligatorio, se utilicen o no sus datos (normalmente se usarían, pero en nuestro caso no recuperamos datos del DWH sino que los introducimos en un prompt del dashboard). Tantas columnas como declaremos en la sección INPUT, tantas columnas tendrá nuestro dataframe, y a tantas columnas deberemos asignar valores. Para ello, utilizaremos el parámetro “options”; en nuestro ejemplo, hay sólo una columna: “nyear”, que sería el nombre por el que referenciaremos la columna del dataframe en el script R. Asignamos valor con =%1, es decir, el primer valor que aparezca en la lista variable de parámetros <runtime_binded_column_options> (el último parámetro de EVALUATE_SCRIPT), en nuestro ejemplo “Time”.”T05 Per Name Year”.
  • Output. Este bloque identifica los parámetros de salida de nuestra función R. En nuestro ejemplo sólo nos interesa el path a la imágen del WordCloud, pero a modo de “plantilla” conservamos un parámetro tanto en INPUT como en OUTPUT, que podría ser actualizado por nuestra función.
  • Options. En ocasiones, como en nuestro ejemplo, desearemos pasar “parámetros globales” al script R, es decir, no formarán parte del data frame, no se repetirán n veces por cada fila de datos que haya seleccionado nuestro answer. Los campos declarados en esta sección aparecerán también en el parámetro “options” de la llamada a la función EVALUATE_SCRIPT y serán los parámetros de 2 a n de la función R que declaremos en SCRIPT.
  • Script. Nuestra función propiamente dicha. Comentar sobre esta parte dos puntos: parámetros de entrada y el retorno. El primer parámetro de INPUT será siempre un dataframe (que recibirá los datos de las columnas seleccionadas en el answer que hayan sido asignadas a los parámetros definidos en la sección INPUT). A continuación tantos parámetros cómo hayamos definido en OPTIONS. Finalizaremos la función devolviendo los resultados obtenidos. Al parecer, el primer parámetro de retorno también debe ser un dataframe (es así en ¿todos? los ejemplos de la aplicación de demostración) y deberán coincidir en número con los declarados en la sección OUTPUT. En nuestro ejemplo, devolvemos un dataframe copia del recibido como entrada, al que hemos concatenado una columna final con el nombre del fichero de imagen generado por la función wordcloud.

 

Os dejamos en el siguiente enlace el contenido íntegro del script obiee.TwitteR.anonym-xml que había quedado cortado en el post.

Categorías:Business Analytics Etiquetas: , ,
  1. AIS
    marzo 17, 2016 en 09:17

    ¿Podrían adjuntar en la publicación el contenido completo del fichero obiee.TwitteR.xml?

    • Joan Massegú
      marzo 22, 2016 en 21:49

      Hola Ruben,

      añadimos el contenido íntegro del fichero como adjunto en un enlace al final del post para evitar que se repita el problema
      (quedó cortado en varios trozos por alguno de los carácteres que debió cerrar algún tag de manera inesperada),
      será suficiente eliminar la extensión .docx.

      Joan.

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: