Pregunta

La compañía para la que trabajo produce un sistema de gestión de contenido (CMS) con diferentes complementos de publicación para publicar, comercio electrónico, impresión en línea, etc. Ahora estamos en proceso de agregar "módulo de informes" y necesito investigar qué estrategia debe debería ser seguido. El "módulo de informe" se conoce como Inteligencia de negocios, o bi.

Se supone que el módulo puede rastrear las descargas de elementos, ejecutar búsquedas y producir varios informes. En realidad, no es tan importante qué tipo de datos se están agitando, ya que a largo plazo, podríamos querer poder impulsar lo que creemos que se necesita y sacar un informe de ello.

En términos generales, tenemos dos opciones.

Opción 1 es escribir una solución basada en Apache Solr (específicamente, usando https://issues.apache.org/jira/browse/solr-236). Pros de este enfoque:

  • Free / Open Source / buena calidad
  • Usamos Solr/Lucene en otro lugar, por lo que conocemos el dominio bastante bien
  • Flexibilidad total sobre lo que se está indexando, ya que podríamos tomar datos entrantes (en formato XML), empújelo a través de XSLT y alimentarlo a Solr
  • Flexibilidad total de cómo mostrar los resultados de búsqueda. Similar al paso anterior, podríamos tener una plantilla de búsqueda XSLT personalizada y mostrar los resultados de nuevo en cualquier formato que creamos que es necesario
  • Nuestros desarrolladores frontend son competentes en XSLT, por lo que ajustar este mecanismo para un cliente diferente debería ser relativamente fácil
  • Solr ofrece búsqueda en tiempo real / texto completo / facetado que son absolutamente necesarios para nosotros. Un prototipo rápido (basado en SOLR, 1M Records) pudo entregar resultados de búsqueda en 55ms. Nuestro máximo estimado de registros es aproximadamente 1 mil millones de filas (esto no es mucho para la aplicación de BI típica) y si es peor, siempre podemos mirar a Solrcloud, etc.
  • Hay compañías que hacen cosas muy similares usando Solr (léxico de panal, por ejemplo)

Contras de este enfoque:

  • Solr-236 podría o no ser estable, además, aún no está claro cuándo/si se lanzará como parte del lanzamiento oficial
  • Posiblemente habría algunas cosas que tendríamos que escribir para que funcionen algunas características bi específicas. Esto suena un poco como reinventar la rueda
  • El mayor problema es que no sabemos lo que podríamos necesitar en el futuro (como la integración con alguna pieza de software BI, exportación a Excel, etc.)

opcion 2 es hacer una integración con una pieza gratuita o comercial de software BI. Hasta ahora he mirado Wabit y echaré un vistazo a Qlikview, posiblemente otros. Pros de este enfoque:

  • No es necesario reinventar la rueda, el software es (con suerte) probado y probado
  • Nos ahorraría tiempo, podríamos gastar en resolver problemas en los que nos especializamos

Contras:

  • Como somos una tienda de Java y nuestra solución es multiplataforma, tendríamos que eliminar muchas opciones que están en el mercado
  • No estoy seguro de cuán flexible puede ser el software BI. Tomaría tiempo realizar algunas ofertas de BI para ver si pueden hacer una indexación flexible, búsqueda en tiempo real / texto completo, resultados totalmente personalizables, etc.
  • Me dijeron que las ofertas de código abierto de BI no son lo suficientemente maduros, mientras que los bis comerciales (SAP, otros) cuestan fortunas, sus licencias comienzan desde decenas de miles de libras/dólares. Si bien no estoy en contra de la elección comercial per se, se sumará al precio general que fácilmente puede ser demasiado grande
  • No estoy seguro de qué tan bien se hace que BI funcione con datos sin esquema

Definitivamente no soy el mejor candidato para encontrar la opción de integración más apropiada en el mercado (principalmente debido a la ausencia de conocimiento en el área de BI), sin embargo, se debe tomar una decisión rápidamente.

¿Alguien ha estado en una situación similar y podría aconsejar sobre qué ruta tomar, o incluso mejor, aconsejar sobre posibles pros/contras de la opción #2? El mayor problema aquí es que no sé lo que no sé;)

¿Fue útil?

Solución

He pasado algún tiempo jugando con ambos Qlikview y Wabit, y, tengo que decir, estoy bastante decepcionado.

Tenía la expectativa de que toda la industria de BI en realidad tiene algo de ciencia bajo ella, pero por lo que descubrí que esto es solo una mera palabra de moda. Este artículo de MSDN En realidad fue un ojo abridor. Todo el negocio de BI consiste en tomar datos de esquemas bien normalizados (lo llaman Oltp), ponlo en esquemas menos normalizados (Olap, copo de nieve- o tipo estrella) y crear índices para cada aspecto que desee (la jerga de la industria para esto es cubo de datos). El resto es solo algunos secuencias de comandos para obtener los gráficos bonitos.

Ok, sé que estoy simplificando demasiado las cosas aquí. Sé que podría haberme perdido muchos aspectos diferentes (¡buenos informes? ¿Exportar a Excel? ¿Predicciones?), Pero desde el punto de vista de la informática, simplemente no puedo ver nada más allá de un índice de base de datos aquí.

Me dijeron que algunas herramientas de BI admiten la compresión. Lucene también lo apoya. Me dijeron que algunas herramientas de BI son capaces de mantener todo el índice en la memoria. Para eso hay un caché de Lucene.

Hablando de los dos candidatos (Wabit y Qlikview): el primero es simplemente inmaduro (tengo docenas de excepciones al tratar de salir de lo que se sugirió en su demostración), mientras que el otro solo funciona debajo de las ventanas (no muy agradable pero muy agradable, pero Podría vivir con eso) y la integración probablemente requeriría que escriba un poco de VBScript (¡qué aviso!). Tuve que pasar un par de horas en los foros de Qlikview solo para obtener un control de rango de fechas simple funcionando y falló porque la edición personal que tenía no admitía proyectos de demostración descargables disponibles en su sitio. No me malinterpreten, ambos son buenas herramientas para lo que se han construido, pero simplemente no veo ningún punto de integración con ellos, ya que no ganaría mucho.

Para abordar (discutible) Inmaturado de SOLR, definiré una API abstracta para poder mover todos los datos a una base de datos que admite consultas de texto completo si algo sale mal. Y si es peor, siempre puedo escribir cosas sobre Solr/Lucene si lo necesito.

Otros consejos

Si realmente estás en un escenario donde no estás Seguro que no sabes Creo que es mejor explorar una herramienta de código abierto y evaluar su utilidad antes de sumergirse en su propia implementación. Bien podría ser que el uso de la solución de código abierto lo ayudará a cristalizar aún más su propia comprensión y características requeridas.
Había trabajado anteriormente con una solución de código abierto llamada Pentaho. Sentí seriamente que entendí mucho más aprendiendo a usar las características de Pentaho para mi final. Por supuesto, como es el caso de trabajar con la mayoría de las soluciones de código abierto, Pentaho parecía ser un poco intimidante al principio, pero logré obtener un buen control en un mes. También trabajamos con Kettle ETL herramienta y Monedriano Cubos, que creo que la mayoría de las herramientas serias de BI en estos días se basan en la parte superior.
Anteriormente, todos estos componentes eran independientes, pero, fuera de la tardía, creo que Pentaho tomó posesión de todos estos proyectos.

Pero una vez que esté seguro con lo que necesita y lo que no, sugeriría construir una herramienta de informes básica en la parte superior de una implementación de Mondrian. Personalizar una herramienta sofisticada de código abierto puede ser un gran problema. Además, hay licencias para tener cuidado. Creo que Pentaho es GPL, aunque es posible que desee verificar eso.

Primero debe dejar en claro qué deben mostrar sus informes. ¿Qué característica de informes necesita? ¿Qué formatos de salida quieres? ¿Quieres mostrarlo en el navegador (HTML) o como PDF o con un visor interactivo (Java/Flash)? ¿Dónde están los datos (base de datos, Java, etc.)? ¿Necesita informes ad-hoc o solo algunos informes codificados? Estas son solo algunas preguntas.

Sin respuestas a esta pregunta, es difícil dar una recomendación real, pero mi recomendación general sería Informes claros de I-Net (solía llamarse I-Net Crystal-Clare). Es una herramienta Java. Es una herramienta comercial, pero el costo es más bajo como SAP y CO.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top