Wcf 报表应用程序中的数据库抽象
在报表应用程序中,是否可以抽象报表逻辑和数据库架构细节 我有一个Reporting Services应用程序,它具有相当复杂的报告逻辑,我正在尝试将该应用程序迁移到其他一些数据库。(为相同目的而构建但由不同软件公司开发的数据库。)Wcf 报表应用程序中的数据库抽象,wcf,architecture,reporting-services,reporting,abstraction,Wcf,Architecture,Reporting Services,Reporting,Abstraction,在报表应用程序中,是否可以抽象报表逻辑和数据库架构细节 我有一个Reporting Services应用程序,它具有相当复杂的报告逻辑,我正在尝试将该应用程序迁移到其他一些数据库。(为相同目的而构建但由不同软件公司开发的数据库。) 在中间使用Web服务/WCF层是明智的决定吗?还可以考虑哪些选项?在一般情况下,很难做到一刀切,但您可以尝试以下选项之一: 在数据库架构上构建一些视图,并 编写针对的报告存储过程 那些这意味着您在底层数据库模式中具有一定的灵活性,并且可以将视图用作抽象层 建立某种数
在中间使用Web服务/WCF层是明智的决定吗?还可以考虑哪些选项?
在一般情况下,很难做到一刀切,但您可以尝试以下选项之一:- 在数据库架构上构建一些视图,并 编写针对的报告存储过程 那些这意味着您在底层数据库模式中具有一定的灵活性,并且可以将视图用作抽象层
- 建立某种数据仓库 平台,并编写一个ETL流程 从各种数据源填充它。这更灵活,但构建起来更费劲,而且只能在定期刷新后才能工作。如果您的应用程序可以接受这种延迟程度,那么我建议数据仓库系统是更好的方法 数据仓库的关键优势在于,它针对报告进行了优化,并且在所有数据源之间具有一致的接口—您可以将它们整合到一个具有一个模式的单个数据库中。这些报告是根据该模式开发的。添加新系统是通过编写ETL流程来填充仓库来实现的;无论数据源如何,报告都会继续工作
如果您想调查市场上的其他EII系统,请参阅关于EII和其他EII工具供应商的各种文章目录。我同意NXC的数据仓库建议:
- 如果这是一项一次性工作,则不会,但由于它是一个“报告应用程序”,您的许多报告很可能适合OLAP范式
- 这显然是一项可以完成的任务,因为市场上有许多成功的OLAP查询工具,其复杂程度各不相同
- OLAP模式,例如标准,被设计为易于查询。它们本质上是平面的,事实表以非常简单的方式使用简单的键连接到一个或多个维度表
- 人们希望对报告执行的操作类型是可预测的:筛选、排序、分组、添加或删除列、导出到CSV等
- 通过生成的报告,您将获得很好的灵活性—探索各种关系数据的能力非常令人上瘾
- 一旦您编写了查询工具,它就可以移植,以便与任何其他星型模式一起重用——不错李>
- “是否可以抽象报告逻辑和数据库架构细节?”-是的,OLAP架构正是为了实现这一点-它们使所有数据符合标准化架构。当然,这会将业务逻辑转移到ETL层,但我认为这就是它的归属
因此,您需要使用这种方法进行ETL—一种选择是进行某种形式的ETL,但在实践中,我发现编写ETL脚本与诱骗ROLAP设置的良好性能一样容易。我认为这个答案通常会反过来咬到您,但我知道其他人喜欢,就是从每个数据库生成XML格式的数据。这将以大多数产品都可以轻松处理的形式为您提供一组一致的数据
如果执行此操作,请确保将在其上运行的XPath查询将是快速的。此外,星型模式非常宽容源数据的精确基数。它们非常扁平,因此很容易将任意关系和层次映射到一组合理选择的维度。