Herramienta de Reporting y Bi en General

Archivo para la Categoría "BI"

Tips para fechas

Buenas a todos hace mucho que no escribo en el blog y es por que he estado muy ocupado cambiando de países cosas del trabajo, me he decidido empezar a escribir algunos post que os pueden ser interesantes :D .

Una de las cosas que siempre me da problemas es el tiempo saber la semana, restar días o meses ese tipo de cosas, porque es cierto que en PDI por ejemplo hay pasos para ello (la calculadora por ejemplo) pero y esto es importante me he dado cuenta que no siempre son en formatos internacionales o eso me han dicho mis jefes de proyecto.

Para ello he creado una librería con cosas que he ido haciendo y que he pillado de varios sitios con cosas esta en mi repositorio de githib es GPL se puede modificar y mejorar.

Por otro lado también os dejo aquí una formula de sql MySQL:

SELECT year(CURDATE()) anio

, month(CURDATE()) mes
, mod(month(CURDATE())+10, 12) 2mes_ant
, case when month(CURDATE()) in (1,2) then year(CURDATE())-1 else year(CURDATE()) end anio_2mes_ant
FROM DUAL

 

Entrevista Jose Carlos Cortizo

 

Después de una entrevista con un crack ahi va otra de otro crack jose carlos cortizos , es forma parte de la gente Brainsins y su famoso sistema de recomendación, le hemos preguntado sobre sistemas de recomendaciòn,Opensource, BI y como siempre nos ha dado respuestas interesantes espero que os guste. Espero opiniones para la siguiente entrevista opiniones..

  • ¿Cómo explicarías que es data mining en 140 caracteres?

El análisis (utilizando técnicas de IA, estadística, etc.) de grandes cantidades de datos para extraer conocimiento útil para alguna empresa, actividad o persona.

  • ¿Dónde esta el límite de los sistemas de recomendación (es/será “posible” un recomendador que se ajuste en un índice aceptable a mis gustos)?

Muchos sistemas de recomendación ya se ajustan muy bien a los gustos de los usuarios, aunque hay cuando se diseña un sistema de recomendación hay que tener mil variables en mente. Es decir, un sistema de recomendación no es mejor porque todo lo que me recomiende esté 100% alineado con mis gustos, ya que en ese caso no me estaría sorprendiendo ni aportando valor. Por ejemplo, si Netflix me recomienda solo películas que, debido a que todas me interesan mucho, ya las conozco, entonces las recomendaciones no me aportan valor ninguno.

Una buena recomendación tiene que tener en cuenta varios aspectos fundamentales:

* El interés para el usuario (personalización)
* Los aspectos temporales (en algunos dominios las novedades aportan más valor, en otros dominios hay que potenciar la larga cola de productos aunque tengan más tiempo en el mercado)
* La diversidad que está relacionada con la serendipia. El sistema de recomendación ha de sorprendernos (gratamente), para poder ofrecer recomendaciones de calidad. Si me he leído “Canción de Hielo y Fuego”, que me recomiendes “El Señor de los Anillos” seguramente no me aporte valor, porque ya conoceré ese libro, pero si me recomiendas “Jonathan Strange & Mr. Norrell”, un libro también fantástico pero menos conocido, me estarás aportando el gran valor de descubrir un libro que no conocía pero me puede fascinar. Hay que tener en cuenta que las recomendaciones han de servir para descubrir información relevante, y descubrir siempre supone asumir riesgos.
* El contexto en el que estoy buscando información también es muy importante. Hay que tener en cuenta que los sistemas de recomendación ofrecen recomendaciones en función de mi comportamiento en un sitio, y ese comportamiento no siempre es el mismo, ni tiene que ver con mis intereses. Por ejemplo, si estoy buscando un regalo para un amigo, toda la información que busque no tiene que ver con mis intereses, si no con los de otra persona.

En definitiva, se pueden hacer mil cosas y mejorar de mil maneras los sistemas de recomendación, pero lo que es importante es darse cuenta que la evaluación de un sistema de recomendación no ha de estar únicamente ligada a los gustos de los usuarios.

¿Qué áreas recomiendas a tus alumnos para que profundicen de cara a un futuro profesional en la ingeniería informática (y porqué)?

Para mi todo pasa por la web, ya bien sea móvil, social, o desde cualquier perspectiva. Quien no esté cerca de la web, en unos años, lo tendrá muy jodido desde la perspectiva profesional. Desde otra perspectiva, creo que a los alumnos de informática, en general, les hace falta un “baño en emprendizaje”. Es una de las salidas profesionales donde resulta más fácil montar tu propio proyecto, y donde más oportunidades de negocio existen, y curiosamente los informáticos parece que somos los que menos nos damos cuenta.

Yo ya no entiendo la informática desligada de las oportunidades de negocio, y no entiendo como en las Universidades que imparten informática, no se trata el tema de los negocios, startups, etc.

  • ¿La segunda burbuja .com para cuando?

No creo que vuelva a haber una burbuja como la que hubo en el 2000. En el último año, casi cualquier noticia relevante relacionada con alguna .com, como el IPO de Groupon, el futuro IPO de Facebook, o la compra de Instagram, hacen que todo el mundo saque el tema de la burbuja y se pregunte cuando será la siguiente. Pero ya no estamos en el 2000 y las cosas han cambiado profundamente. En el 2000 todavía no había nadie en todo el sector que siquiera hubiera demostrado tener un modelo de negocio viable y los usuarios, con suerte, se contaban por millones. Ahora estamos hablando de cientos de millones de usuarios, o en el peor de los casos, varias decenas de millones, y ya tenemos referentes de gran éxito (como Google) que han demostrado modelos de negocio más que viables.

Está claro que muchas de las empresas de las que hablamos hoy, no existirán en unos meses/años, ya que sigue siendo un sector con mucho riesgo y variabilidad, pero también hay que ver que en subsectores como el ecommerce, ya se está hablando de miles de millones de facturación al año (solo en EEUU), y que “recién llegados”, como Facebook, ya han facturado casi 4.000 millones de dólares en 2011, con casi 1.000 millones de beneficio. No creo que estos números nos digan que estamos delante de una burbuja.

  • ¿Cuanto tiempo dedicas en tu día a día a las diferentes actividades (programar, universidad, empresa, etc)?

Esta es la pregunta del millón, ya que no lo tengo realmente controlado. Pero por hacer un desglose aproximado:

* A lo que más le dedico es a temas de gestión de la empresa (organización de tareas técnicas, hablar con mis socios para reorganizar prioridades, clientes, etc.). A esto le dedico aprox unas 30 horas a la semana.
* A desarrollar le dedico menos de lo que quisiera, en torno a 15/20 horas a la semana. Y dentro de esto, desarrollos “chulos” (que no sean arreglar cosas, o hacer pequeñas adaptaciones para clientes), aproximadamente algo menos de la mitad.
* Al tema docente le dedico aproximadamente 6 horas a la semana, lo justo para las clases y organizar alguna cosa, pero como ya solo soy profesor asociado, trato de hacerlo lo mejor posible con el mínimo esfuerzo, que si no no llego.
* Y luego dedico otras 6 horas a la semana a estudiar un MBA en la EOI (es online).
* Y a “procrastinar” (donde incluyo generar contenidos en los blogs, twitter, etc.) le dedico más de lo que debiera, unas 10 horas semana, pero como soy un friki y lo disfruto, casi ni me entero.

Si fuera capaz de organizarme mejor, y tuviera menos “cambios de tercio”, seguro que optimizaría mucho los tiempos, pero bueno, poco a poco :P

  • Las 5 gemas de tu día a día: ¿que 5 tecnologías son un requerimiento para el área de data mining/recomendación? (englobando desde software hasta lenguajes)

Complicado, ya que hay que mirar mil cosas. Pero cualquier sistema de este tipo tiene que estar sustentando en una serie de principios, y podemos asociar a algunos de estos principios algunas tecnologías:

1.- Analizar adecuadamente los datos: estadística, algoritmos de aprendizaje, filtrado colaborativo, etc.
2.- Estar adaptado a las necesidades de los clientes: aquí es muy importante ofrecer datos de analítica de los resultados, así que controlar temas de analítica web es imprescindible
3.- Todas las características de un software B2B (seguridad, fiabilidad, escalabilidad, etc.): esto está relacionado con mil cosas, pero tener buenos conocimientos de administración de sistemas y configuración de los servidores que utilizas (apache, glassfish, mysql, etc.) es algo crítico

Nosotros a nivel de tecnología utilizamos: Java como lenguaje en el backend, Glassfish como servidor de aplicaciones, MySQL (sobre RDS) como Base de Datos, y para el front básicamente Zend (PHP), bastante JQuery, HighCharts para las gráficas, etc.

  • ¿Como conseguís hacer una recomendación cuando no tenéis información del usuario por que entra por primera vez?

Pues básicamente “generalizando”, y en función de qué tipo de página esté visitando, la generalización es una u otra. Por ejemplo, si llega a la home de la tienda, le podemos mostrar productos más vendidos, los últimos productos, etc. Si es en página de producto, productos similares o complementarios a los que está viendo el usuario. Desde nuestro panel de control permitimos a nuestros clientes que configuren el comportamiento de los recomendadores, ya que en cada dominio, el tipo de recomendaciones a ofrecer varía sustancialmente.

Ahora bien, en lo que hay que trabajar es en tener siempre información sobre los usuarios ;)

  • ¿Futuro de los sistemas de recomendación?

La personalización, en general, es ya una parte importante de la Web tal y como la conocemos. De hecho Facebook, Twitter, etc. han triunfado porque el elemento social les permite ofrecer una experiencia de uso personalizada para cada usuario. En sitios menos “sociales”, como las tiendas online, la personalización pasa por las recomendaciones, y otra serie de elementos, así que las tiendas que quieran cautivar a sus usuarios, necesitan instalar un sistema de este tipo.

¿Por que emprender y sabiendo que la idea es la punta de la flecha que se necesita como esqueleto además de la idea para emprender?
Yo creo que uno ha de emprender porque quiere emprender. Es decir, porque tiene ganas de sacar un proyecto adelante, de hacer crecer una idea y convertirla en algo útil para la sociedad (y si es rentable, mejor que mejor). Emprender significa riesgo, significa seguir un camino algo más complejo, y enfrentarte a mil situaciones distintas cada día, así que o estás convenido o estás jodido.

En cuanto a lo que necesitas además de la idea, yo empezaría diciendo que la idea a veces casi es lo de menos. Y espero que no se me entienda mal, las buenas ideas son muy importantes, pero si no hay un buen equipo detrás, que le eche narices al asunto, se comprometa, y desarrolle un producto que realmente sea útil a sus clientes, entonces la idea no vale nada. Además ideas buenas tenemos todos, lo realmente complicado es ejecutar las ideas. Por resumir puntos básicos:

* Un buen equipo (a ser posible perfiles complementarios, que ayuda muchísimo a tener una visión más global)
* Orientación a ventas (o resultado), ya que los técnicos solemos centrarnos en el producto, y aunque un buen producto es un requisito, todavía más es venderlo
* Pasión y ganas (para pegarse contra todo lo que vendrá en nuestra contra)

  • Tú eres profesor , como ves el panorama para tu alumnos ¿emigrar,emprender,sufrir?

Pues la cosa no es que esté muy bien, pero también ha habido momentos mucho peores. Por ejemplo, en informática ahora sigue habiendo trabajo (y mucho), mientras que después de la burbuja, no había trabajo para casi nadie en el sector, y a pesar de eso todo el mundo salió adelante. Lo que hay que hacer es ser resolutivos con la vida de uno mismo, y buscar de forma proactiva maneras de encontrar un hueco donde uno esté haciendo lo que quiere, y le permita vivir de ello. Eso se puede conseguir buscando trabajo, o montando una empresa o emigrando, dependerá de la visión de cada uno y de lo que le apetezca hacer en la vida.

Pero vamos, dentro de que las cosas no están bien, creo que tenemos la suerte de trabajar en un sector donde ahora mismo la crisis se mide en unos términos muy distintos a la de otros sectores.

  • Este es un Blog de Bi siendo tu quien me introdujo en este mundo (cosa que te doy las gracias), dinos como ves esta tecnología?

Pues como casi todas las tecnologías, el tema BI, tuvo su momento y ahora se habla bastante menos del tema. Y no es porque haya perdido importancia, si no porque los “buzzwords” se reconvierten. Ahora el tema de moda es Big Data, y hasta los que trabajan en BI prefieren hablar de Big Data. Y esto, en el fondo, es bueno, ya que el concepto sigue estando ahí y por otra parte, el que haya perdido cierto poder mediático significa que los conceptos de fondo se están integrando de forma mucho mas transversal.

Las empresas ya hablan de dashboards operativos, cuadros de mando, etc. lo que quiere decir que la necesidad la tienen, y por tanto el tema BI sigue siendo muy relevante (y lo será cada día más, según las empresas almacenen más y más información sobre su operativa).

  • OpenSource tu opinión hacia donde tiende según la vista de un profesor/emprendedor

Para empezar, mi visión global sobre el Open Source es que ha cambiado radicalmente el panorama TI C, aunque por otro lado ya se ha normalizado dentro del sector. Es decir, si hace 10 años esto parecía una batalla entre libre y propietario, ahora ves soluciones de todo tipo y no tanta polémica.

Como profesor, creo que el software libre es una herramienta perfecta para que los alumnos de carreras como informática puedan aprender de una forma práctica, contribuyendo a proyectos libres, o liberando los desarrollos que hacen. Por desgracia, todavía no tenemos esta mentalidad en España y en casi ninguna Universidad se motiva a los alumnos a que contribuyan a proyectos Open Source como una forma de aprendizaje.

Como emprendedor, creo que el Open Source ha permitido que estemos en un punto donde montar una empresa tecnológica es realmente viable. Si no fuera por los Apache, MySQL, RoR, etc. montar una startup de Internet supondría un desembolso inicial en licencias que harían inviable la mayoría de los proyectos.

No nos damos cuenta, pero a nivel económico y global, el Open Source ha contribuido de forma radical a una transformación económica a gran escala.

MySQL

Buenos días,

Adjunto a este post esta una charla sobre optimización de MySQL tanto la presentación como el vídeo.

Tambien adjunto una presentacion que se comente en la primera sobre particiones de MySQL  que siempre se nos pasan.

Futuro CE vs Presente EE guerra de Visores

Últimamente está muy en boca de todos los que seguimos en cierta medida el mundo BI el cambio/lavado de cara de el visor OLAP de Pentaho que era muy rivaival de los 70.

El visor OLAP que usa Pentaho es JPIVOT tanto en la CC como en la EE y aunque era muy estable, ya que lleva casi 10 años sin apenas cambiar, solo algunos parches para los bug, se hacía necesario un nuevo visor, se han hecho muchos intentos pero no ha había cuajado ninguno, de hecho hice una lista de algunos hace ya algún tiempo en una serie de post que  se llamaba ¿Cuál..?.

Ahora aparece Saiku que para mí es una pasada muy rudimentario pero bueno y lo espero como lluvia de mayo que saquen la GA , cosa que tardara y no se si llegara ,aunque ya he empezado a usarlo en mi particular I+D tiene grandes deficiencias pero para la gente que lo realiza y el precio es una cosa maravillosa.

Pero mi pregunta es Pentaho donde ha estado en este tiempo, pues comprado un visor muy chulo e intuitivo pero solo para la EE  aunque se suponía que seria para todos.link pero al final la política se ha impuesto a ‘SU’ modelo de negocio, que para mi, a futuro se ira poco a poco a la quiebra y se lo ha llevado a la EE. Lo que quiero decir es que el tiempo y el dinero se podía haber invertido en crear un visor con la ayuda de OLP4J y de Julian Hyde y que fuera Open Source respetando su movimiento original.

Como ya comente hace tiempo, Pentaho esta dando mas alas a la versión EE y quitando posibilidades a la versión CE, cosa que no se por que lo hace,si Pentaho esta donde esta es por ser open source y por que tiene ciertas garantias, pero parece que Pentaho ahora necesita mas cosas entre ellas que la version EE se consolide. Con lo que al final todo será Saiku vs Pentaho Analysis. Y tu ¿Qué crees?

‘Others’ google chart using the CDF

Hi all, this is my first post in English :D . i try to write  well , but i don’t know if I’ll get this :D .

Well, this is a problem, when do you use the google chart in the Dashboard ,generation with the CDF , normal if the valor is too low , don’t show , and the legend put ‘Other’ in color gray.

if you like ,you can  show them  all values, if  you add  this parameter ,  sliceVisibilityThreshold:0

chart.draw(data, {legend:'right', legendFontSize:9, width:550, height: 275, is3D: true,sliceVisibilityThreshold:0, title:'titules'});

Documentar una ETL

Una de las cosas mas importantes que hay en un proceso de BI son las ETL que en proporción de un proyecto BI cuestan alrededor de un 60% del tiempo no solo el hecho de conocer el negocio sino comprobar que no hay bucles,o silos de información , etc….

Una de las cosas que mas me enfada es cuando tienes la ETL terminada y las ejecutar y el cliente no ve la dificulta de todo el proceso pero claro es normal, la otra es cuando me dicen ¿Donde esta documentación? y claro tu te quedas un poco  O_o pues ahora ya tenemos la solución a ese problema.

kettle-cookbook

Esta ETL recorre nuestra ETL generando una documentación  sobre los trabajos en formato HTML para que así podamos navegar por ella de manera mas comoda,

Realmente útil y fácil de usar invocas el scritp y le pasas el directorio donde está tu ETL y el directorio donde quieres que te deje la documentación ahi dejo las cosas creo que se podrai hacer un script mas complejo y pasar le ese  script  o incluso un paso para asi poder  hacerlo todo de manera mas automatica

 

kitchen.bat -file:kettle-cookbook/pdi/document-all.kjb -param:”INPUT_DIR”=${ruta a la ETL} -param:”OUTPUT_DIR”=${ruta a la documentación  de la ETL}

 

 


Virtualizar Servidores

Bueno como la otra entrada anterior, voy a exponer últimamente , todo el mundo anda virtualizando  como el intento de ahorro/coste , es decir, si tenemos menos maquinas  y las virtualizamos podemos  tener mas maquinas un similares características, en el mercado hay  muchas :

  • Xen
  • Kvm
  • Vbox
  • Wmware

Como yo me enfoco mas en el software libre   pues he tirado mas por Vbox pero para ponerlo en producción no es una buena idea, ahora y gracias  a un buen amigo luiX_ (http://begnu.wordpress.com/) he empezado a pensar en usar Xen por que  se supone que es la mas estable y permite varias cosas interesantes como pasar maquinas en caliente, pero antes de nada que es Xen googleando un poco he encontrado un post muy interesante [1].

 

Xen es un hipervisor que soporta x86, x86_64, Itanium, arquitecturas ARM y puede correr GNU/Linux, Windows, Solaris y algunos BSDs como guests (huéspedes). Está apoyada por varias compañías, principalmente por Citrix, pero también utilizada por Oracle para la Oracle VM y otras. Xen puede otorgar una virtualización completa en sistemas que permitan extensiones de virtualización, pero también puede funcionar como hipervisor en máquinas que carezcan de ellos.

Al igual que Xen, KVM es el hipervisor del kernel de Linux, por lo tanto el host tiene que ser Linux, pero puede tener de guests a Linux, Windows, Solaris y BSD. Corre en sistemas con hardware x86 y x86_64 que cuente con extensiones de virtualización. Esto significa por tanto, que KVM no es la opción para viejas CPUs que fueron construidas antes de que las extensiones fueran desarrolladas, ni tampoco es útil para las nuevas (como las CPUs Intel Atom) que no cuentan con dichas extensiones. En general , no es un problema para los data centers que tienden a reemplazar el hardware cada pocos años — pero significa que KVM no es una opción para algunos nichos como el SM10000 que están intentando utilizar CPUs Atom.

Si quieres corres un host Xen, necesitas contar con un kernel soportado. Linux, no viene con soporte para correr un host Xen out-of-the-box, aunque algunas distribuciones se han estado lanzando con soporte para correr nativamente como guest desde la versión 2.6.23 (Arch, por ejemplo, cuenta con ellos en el AUR) y algo similar ocurre con Ubuntu (y deduzco también que con Debian y las demás distribuciones). Esto significa que no utilizas una distro común de Linux para correr guests Xen. En cambio, necesitas una distro que venga con soporte para Xen o compilar tu propio kernel. Lo otro, es utilizar alguna solución comercial basada en Xen como Citrix XenServer, esto por supuesto presenta el problema que muchas de estas soluciones no son completamente libres.

Recomiendo el uso de esta maquina , es un poco mas compleja que wmware que es la reina del mercado pero una vez que pasas el escalón es de una calidad asombrosa.

Buscando un poco por ahí he encontrado  una utilidad para las maquinas virtuales su nombre es Opennebula [2] , Este es un gestor de maquinas virtuales y solo soporta Xen y KVM y esta planificado para su próxima versión que soporte tambien VMware.

Características

  • Arquitectura abierta y interfaces que permiten su integración con otras herramientas de virtualizacion.
  • Framework genérico para definir nuevas policitas de emplazamiento de VMs.
  • La politica de planificamiento por defecto determina el mejor host para instalar una VM dependiendo de los requerimientos.
  • Poderoso API que permite controlar y monitorear las distintas VMs y recursos físicos.
  • Soporte de imagenes para transferir y clonar VMs , usando un componente modular que puede ser facilmente extendido y integrado con desarrollos de terceros.
  • Soporte de red habilitando la difinicion de redes virtuales.

Bueno espero que esto ayude dentro de poco iontentare colocar mis esperiencias sonre la instalacion de Pentaho,SugarCRM y Alfreso con un cherokee al frente

Actualizacion de luiX_ via twitter http://bit.ly/cBvl0L o http://bit.ly/bbZvHE

[1]http://www.glatelier.org/2010/07/kvm-o-xen-escogiendo-una-plataforma-de-virtualizacion-parte-1-2/

[2]http://dclavijo.blogspot.com/2008/12/opennebula-gestor-de-maquinas-virtuales.html

Teiid con Pentaho

Teiid es un sistema de virtualización de datos que permite a las aplicaciones utilizar los datos de múltiples y heterogéneas bases de datos.

Teiid se compone de herramientas, componentes y servicios para crear y ejecutar servicios . A través de la abstracción y la federación, y acceder a los datos integrados en tiempo real a través de fuentes de datos distribuidas sin copiar o mover datos de su sistema de registro.

 

A dia de  hoy mucha gente quiere virtualizar  servidores , bases de datos , etc.. pues con esta tecnología es posible ahi va el link con el manual http://wiki.pentaho.com//display/COM/Query+Federation+using+Teiid

 

ETL ¿Cual?

Después de ya algunos post sobre alternativas a pentaho  ahora toca el PDI o kettle. Dentro del open source siempre se habla de kettle o talent pero hay mas programas para porder realizar este procedimientos. Extract, Transform and Load (Extraer, transformar y cargar en inglés, frecuentemente abreviado a ETL) es el proceso que permite a las organizaciones mover datos desde múltiples fuentes, reformatearlos y limpiarlos, y cargarlos en otra base de datos, data mart, o data warehouse para analizar, o en otro sistema operacional para apoyar un proceso de negocio.

(more…)

PDI Book

Aqui dejo el segundo libro  este sobre PDI ese gran desconocido

Pentaho Data Integration (a.k.a. Kettle) is a full-featured open source ETL (Extract, Transform, and Load) solution. Although PDI is a feature-rich tool, effectively capturing, manipulating, cleansing, transferring, and loading data can get complicated.

This book is full of practical examples that will help you to take advantage of Pentaho Data Integration’s graphical, drag-and-drop design environment. You will quickly get started with Pentaho Data Integration by following the step-by-step guidance in this book. The useful tips in this book will encourage you to exploit powerful features of Pentaho Data Integration and perform ETL operations with ease.

Starting with the installation of the PDI software, this book will teach you all the key PDI concepts. Each chapter introduces new features, allowing you to gradually get involved with the tool. First, you will learn to work with plain files, and to do all kinds of data manipulation. Then, the book gives you a primer on databases and teaches you how to work with databases inside PDI. Not only that, you’ll be given an introduction to data warehouse concepts and you will learn to load data in a data warehouse. After that, you will learn to implement simple and complex processes.
Once you’ve learned all the basics, you will build a simple datamart that will serve to reinforce all the concepts learned through the book.

A practical, easy-to-read guide that gives you full understanding of the Pentaho Data Integration tool and shows you how to use it to your advantage to manipulate data

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.