Pregunta

En una aplicación de informes, ¿Es posible la lógica abstracta de informes y los detalles del esquema de base de datos?

Tengo una aplicación de Servicios de Información con una lógica de informes razonablemente complejo, estoy tratando de migrar la aplicación a otras bases de datos. (Bases de datos que se construyen para el mismo propósito, pero desarrollados por diferentes software-casas.)

¿Es una sabia decisión de utilizar una capa de servicios web / WCF en el medio? ¿Qué opciones más puede ser considerado?

¿Fue útil?

Solución

Sería difícil de hacer este tipo de cosas en una talla única para todos los manera en el caso general, pero se podía probar uno de estos:

  • Construir unas vistas sobre el esquema de base de datos y escribir los informes contra sprocs aquellos. Esto significa que usted tiene cierta flexibilidad en el esquema de base de datos subyacente y puede utilizar los puntos de vista como una capa de abstracción.

  • Construir una especie de almacén de datos plataforma y escribir un proceso ETL para poblarlo de las distintas fuentes de datos. Esto es más flexible pero más esfuerzo para construir y que sólo funcionará a partir de una actualización periódica. Si ese grado de latencia es aceptable para su aplicación, entonces yo sugeriría que el sistema de almacenamiento de datos es el mejor enfoque.

    La ventaja clave de un almacén de datos es que está optimizado para la presentación de informes y tiene una interfaz consistente a través de todas las fuentes de datos - que los consolidar en una sola base de datos con un esquema. Los informes se desarrollan contra ese esquema. La adición de nuevos sistemas se logra mediante la escritura de un proceso de ETL para llenar el almacén; los informes siguen trabajando independientemente de la fuente de datos.

WCF es un sistema de comunicación de red. Usted encontrará que es difícil hacer este tipo de arquitectura de manejar grandes volúmenes de datos en una base de transacción por transacción - un proceso por lotes de carga ETL sería mucho más eficiente. Sin embargo, si necesita una alimentación de tiempo real (tal vez por un sistema de planta comercial) que podría ser capaz de hacerlo con algo como esto.

Si nead una alimentación de baja latencia otro enfoque sería investigar un género de herramientas llamada de información empresarial Integración . Tal vez la herramienta más ampliamente disponible que puede hacer esto es un de datos Fuente Ver SSIS el que te da una cierta flexibilidad en las fuentes de datos arbitrarios de mapeo a un esquema coherente. No es tan sofisticado como el mejor del mercado herramientas de EII, pero se puede poner paquetes SSIS en la parte superior de la misma y utilizar como fuente los datos para los informes si necesita más para transformar los datos.

Sin embargo, nunca he construido un sistema estructurado como éste, así que no puedo dar fe de lo bien que funciona en la práctica. Me imagino que sería bastante frágiles y difíciles de descomponer en partes que pueden ser probados unidad, por lo que el desarrollo y el mantenimiento será mucho tiempo para un sistema de complejidad no trivial del todo.

Si desea investigar otros sistemas de EII en el mercado Este enlace es un directorio de varios artículos sobre EII y algunos otros proveedores de herramientas de EII.

Otros consejos

Estoy de acuerdo con la sugerencia de almacenamiento de datos de NXC:

  • Si se trata de un hecho aislado de trabajo, no, pero ya que es una "solicitud de información", es muy probable que muchos de sus informes encajará en el paradigma de OLAP.
  • Es obviamente una tarea factible, ya que hay muchas herramientas exitosas de consulta OLAP disponibles en el mercado, con diferentes Degress de complejidad
  • esquemas
  • OLAP, por ejemplo, la norma esquema en estrella, son diseñada para ser fácil de consultar. Son planos en la naturaleza, con la tabla de hechos de unirse a una o varias tablas de dimensiones utilizando claves sencillas de una manera muy sencilla.
  • los tipos de operaciones de la gente quiere hacer con los informes son predecibles: filtrar, ordenar, agrupar por, añadir o eliminar columnas, la exportación a CSV, etc.
  • .
  • obtendrá un buen nivel de flexibilidad con los informes que generan conseguir - la capacidad de explorar los datos para diversas relaciones es muy adictivo
  • una vez se escribe la herramienta de consulta, que es portátil para su reutilización con cualquier otro esquema de estrella - no está mal
  • "¿Es posible la lógica abstracta de informes y los detalles del esquema de base de datos?" - Sí, esquemas OLAP son precisamente para este - hacen todos los datos se ajustan a un esquema estandarizado. Por supuesto, esto mueve la lógica de negocio en la capa de ETL, pero yo diría que es donde debe estar.

Por lo tanto, usted está obligado a hacer ETL con este enfoque - una opción es hacer algún tipo de href="http://en.wikipedia.org/wiki/ROLAP" , pero en la práctica he encontrado que es tan fácil de escribir scripts ETL, ya que es convencer a un buen rendimiento de una instalación de ROLAP.

Una respuesta que creo que por lo general va a volver a morder en la parte trasera, pero que otros que sé como, es para producir los datos como XML de cada base de datos. Eso le da un conjunto coherente de los datos en una forma que la mayoría de los productos se pueden manejar con facilidad.

Si lo hace, asegúrese de que la consulta XPath que se ejecutará en el proceso será rápido.

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