我正在开发一个报告作为其业务重要部分的交易平台。
设置如下: SQL OLTP数据库(大约200个表) - 记录数量相当少。 (20,000记录了最大的表 - 但每周都在增长) 对于报告服务,SQL视图用于查询实时事务数据库。根据数据仓库方法的精神,想象一下视图的结果集是非规范化的。然后将这些数据集传递给第三方报告平台(如Tableau,Power Bi或SiSense),它们将这些数据集投入Cubes(可能是一些柱状结构,如mono db,hadoop等)。从那里开始生成报告。
当前的挑战。 SQL视图(大约8个)。是巨大的,很难维护。举个例子,其中一个视图输出100个字段。但是这些字段中的每一个都是具有复杂CASE语句,嵌套IF语句,内联函数以及其他内容的计算字段,这使得该视图大到700行sql代码。我从花药员工那里继承了这些,现在,遗憾,我必须维护它们。 由于数据每周增加数百条记录(通过迁移和事务),并且视图中的字段数也会增长(每周几个),因此多维数据集构建需要更长时间。举个例子,几个月前我们设置了重建的立方体,用10分钟刷新数据(花了5分钟)。目前需要12-15分钟才能建成,所以我们每30分钟设置一次。可以想象,随着数据和字段数量的不断增长,情况会变得更糟;我们需要尽可能多的数据。
唯一的好处是,一旦构建了多维数据集,报告就会快速加载,因为它们是从第三方平台中提取的,所以这里不用担心。
我的想法 我想摆脱这些观点,这样我就可以简化维护过程,并且至少可以保持多维数据集重建的持续时间。
选项:
问题: 我应该采取什么方法? 上面3中的任何一个都有意义吗? 当然,我也对其他想法或建议感兴趣。
谢谢!
答案 0 :(得分:0)