etl报表开发是什么意思_中间表是什么?和报表有什么关系?会带来怎样的问题?又如何解决?...

在数据库中有一类用于保存中间计算结果的物理表,通常被称为“中间表”。中间表主要跟 OLAP(在线联机分析)业务有关,产生的原因主要有以下几方面。

ed7df5a7d3694fb6d31e65cc677e62ef.png


中间表来源1. 计算逻辑复杂
在 OLAP(报表或查询)业务中,有些计算逻辑很复杂,每次都从头写会导致报表开发过于繁琐,而且有的计算用 SQL 很难写出来。这时会采用中间表事先计算好,再基于预计算的中间结果开发报表。
计算逻辑复杂常见于报表业务中,以固定报表最为常见;多维分析则比较少见。2. 查询性能差
当查询涉及的数据量很大或者计算逻辑很复杂时查询性能会很差。为了提升查询性能,增强用户体验,通常会把汇总结果实现计算出来存储在中间表中。基于预汇总的中间表查询速度会快很多。
在实际业务中,大部分提升查询速度的中间表也都是为报表服务的。3.ETL 过程转存
ETL 过程也会产生中间表。ETL 过程中常常会涉及到数据库的数据,正常的 ETL 过程应当是 E、T、L 这三个步骤逐步进行,也就是先清洗转换之后再加载进数据库,最后在数据库中的只是合理的结果数据。但是,E(清洗)和 T(转换)这两个步骤中会涉及到大量数据计算,而在数据库外实施这些计算很不方便,所以实际情况就会是把涉及到的所有数据都先加载进来然后再进行清洗和转换,ETL 过程变成了 ELT 甚至 LET。事先要加载的这些数据在关系数据库中也必须以表的形式存储,这就使数据库中增加了许多并非最终需要的中间表。
如果观察一下这些跑批任务,你会发现 ETL 任务很多都是为报表业务服务的。4. 多样性数据源混合计算
另一种情况是多样性数据源造成的,这也是为数据呈现(报表查询)服务的。现代应用中的数据呈现经常会涉及数据库外的数据,目前一般的做法是把库外数据定时导入到数据库中,然后就能和数据库内的数据一起运算产生报表,否则很难实现数据库内外的数据的混合运算。这当然也会让数据库中多了一些表,而且,有些互联网上取过来的数据常常是多层的 json 或 XML 格式,在关系数据库中还要建立多个关联的表来存储,会进一步加剧中间表过多的问题。
通过列举的 4 个中间表产生的主要原因,我们发现一个共同点:中间表大部分情况都是为报表服务的。我们也知道,实际业务中的报表数量非常多,而且报表业务业务不稳定经常会新增修改报表,这会导致中间表数量不断增多。
中间表会带来哪些问题
中间表是一把双刃剑,提供很多便利的同时也会带来一些问题。
我们曾在一个运营商的报表系统中,发现了一个让人吃惊的现象。在 DB2 数据仓库中,有两万多个数据库表!经过深入了解发现,真正的原始数据表只有几百张,剩下的大量的数据库表都是为查询和报表服务的中间表。
像这种系统经过几年乃至十几年的运行,数据库中的中间表越来越多,甚至出现这种上万个的情况并不少见。大量中间表带来的直接困扰是数据库存储空间不够用,面临频繁的扩容需求。中间表对应的存储过程、触发器等等需要占用数据库的计算资源,也会造成数据库的扩容压力。
中间表过多还会带来管理方面的问题,对于成千上万张中间表想要梳理清楚恐怕是一件非常头疼的事情。
那么,是不是可以清理掉一些不用的中间表?一般的结论都是:搞不动。数据库中的中间表是不同程序员制作的,有的是综合查询系统使用,有的是报表系统使用。中间表之间还存在交叉引用,有些程序员看到有别人生成的中间表就直接使用了。有时候一些查询报表已经废弃不用了,但是对应的中间表没人敢删,因为不知道删掉之后会影响其他什么查询或者报表。
很多情况下,项目组只好为了越来越多的中间表去扩容数据库。但是数据库的扩容成本太昂贵了:不管是换更强的服务器(纵向扩容),还是增加数据库服务器的节点(横向扩容),都不便宜。
总结来说,中间表会带来管理、容量和性能三方面的问题。
如何解决中间表的问题?
可以很容易想到的方式是使用库外文件存储中间表数据,这样中间表脱离了数据库就不会对数据库再产生影响。但是,在实际应用中这种办法却很少使用。为什么呢?
我们知道,中间表是要再计算的,基于中间表查询的报表还要进行数据过滤,有的还要再次汇总,还可能涉及关联计算,这些操作在数据库里通过 SQL 完成很简单。但是文件没有计算能力,要实施这些计算只能硬编码,用 JAVA 来做,使用 JAVA 来做集合运算又非常麻烦,远没有数据库(SQL)方便。所以采用文件存储中间表的方式使用并不广泛,主要是由实现复杂度过高导致的。
那还有什么好的方式呢?使用支持文件源的报表工具
既然中间表大部分是为报表服务的,而通过将中间表外置到文件中可以解决中间表带来的这些问题,那么直接使用支持文件源的报表工具是否就可以了呢?
答案是肯定的。
我们来看一下要实现这个目标,报表工具要具备哪些能力?(1) 丰富的计算类库
要解决文本计算难的问题,报表工具要提供丰富的计算类库,除了能完成所有数据处理任务(都能算)以外,还要实现简单,这是基础,太复杂了没法用;(2) 多样性数据源接口
支持多样性数据源以后,就可以不用通过数据库中转直接读取多样性数据源数据出报表;(3) 异构数据源混合计算能力
提供多样性数据源接口后,还要能够进行异构源间的混合计算,这样就可以彻底解决掉多样性数据源带来的中间表问题;(4) 高性能
除了实现简单以外,计算性能也要有保障,从而满足前端报表查询的性能需要。
具体实现上可以在报表工具中增加计算模块来对接“库外中间表”,结构类似这样

7586801e30fbd59bd3aeae2639df9d00.png


其中库外中间数据文件可以采用本地文件,也可以使用网络或分布式文件系统,或其他数据源。
要解决中间表问题,需要报表工具强化自身的计算能力才能实现!
参考资料:
【数据蒋堂】第 14 期:计算封闭性导致臃肿的数据库
【数据蒋堂】第 15 期:开放的计算能力为数据库瘦身
有效减少数据库中间表的报表开发方法
为什么会有这么多中间表?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554407.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

追加一列 python_常用的python代码总结

使用pandas读取csv文件import pandas as pddf pd.read_csv("nodes.csv")a df.iloc[j]["x"] # 得到第j行标头为x的值 b df.loc[j]["x"] # 得到index为j的标头为x的值ids df["id"].values.tolist() # 得到标头为id的一列&#xff0c…

socketmq 设置队列大小_[译] TCP的SYN队列和Accept队列

关于两个队列首先我们必须明白,处于“LISTENING”状态的TCP socket,有两个独立的队列:SYN队列(SYN Queue)Accept队列(Accept Queue)这两个术语有时也被称为“reqsk_queue”,“ACK ba…

can总线报文是固定的吗_新能源汽车CAN总线Bus Off处理流程

CAN总线由其高可靠和实时性被广泛应用于新能源汽车、轨道交通、医疗、工程机械等行业,本文介绍CAN总线关闭对新能源汽车的功能和安全性能产生的影响,并针对工程师关注的问题,提供有效的解决方案。2020年10月28日全球汽车峰会中展示了未来新能…

java生日正则表达式_Java编程基础15——正则表达式常用工具类

1_正则表达式的概述和简单使用A:正则表达式是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的B:案例演示需求&#…

jsplumb拖线_基于jsplumb插件制作可拖拽、保存流程图、重绘保存后的流程图总结...

1.重点参考博文https://blog.csdn.net/j_bean/article/details/780926472.关键点总结1)实现可视区域图形画满后,拖动整个画布的效果a.最好不要给画图形的容器预设置很大的宽、高,这样遇到钻牛角尖的用户还是会将画布拖到边界。b.换个思维,拖动…

PP视频如何更改截图保存路径及图片类型

这篇文章主要说的是PP视频如何更改截图保存路径及图片类型,希望可以帮助大家。PP视频采用了先进的P2P流媒体播放技术,PP视频可以确保在大量用户同时观看节目的情况下,节目依然流畅清晰。PP视频是一个高品质的视频网站,PP视频依靠独…

win连接被远程计算机终止,windows系统远程连接后马上断开提示“远程计算机已结束连接”的解决方法...

原标题:windows系统远程连接后马上断开提示“远程计算机已结束连接”的解决方法此问题在远程系统是GHOST版的windowsxp和winserver2003时出现的比较普遍。现象描述:用windowsxp自带的“远程桌面”功能连接到另外一台windowsxp电脑时,在连接的…

搜狐视频怎么开启青少年模式

很多人都使用搜狐视频,播放器家园网小编给大家分享一下搜狐视频怎么开启青少年模式相关内容。搜狐视频播放器是一款深受广大用户欢迎的主流视频播放器软件,专注为用户提供在线视频播放的客户端软件,搜狐视频播放器为用户提供清晰、流畅、界面…

使用中断后不停止_乔丹体育公司构成侵权,为何又不判令彻底停止使用“乔丹”注册商标?法院解释来了...

2020年12月30日,上海二中院发布了迈克尔•乔丹姓名权纠纷案一审判决结果,引发社会各界广泛关注。现就大家关注的若干问题作如下释疑:1. 为何认定乔丹体育公司构成侵权乔丹体育公司是在明知迈克尔•乔丹具有较高知名度的情况下,仍然…

如何在家访问公司的文件服务器,企业的共享文件,该怎么高效管理?

原标题:企业的共享文件,该怎么高效管理?现在的企业基本上都有自己的文件服务器,并且会经常共享文件让局域网内用户访问。而企业的网络服务器共享文件是企业的无形资产和商业保密信息,员工也经常根据网络服务器来远程控…

roads 用户体验标准_全球领先技术加持,联发科 天玑1000+刷新5G用户体验新标准...

随着5G基站的一步步铺建,越来越多的地方都逐渐可以接收到5G信号了。这自然也催促着芯片厂商尽快推出全新的5G移动平台,比如骁龙的X55基带、华为的巴龙5000基带等。但在目前的环境下,尽管这些基带的加入让手机移动平台能够支持5G网络&#xff…

window系统服务器改名,微软:不会将 Windows Server 改名为 Microsoft Server 系统

原标题:微软:不会将 Windows Server 改名为 Microsoft Server 系统IT之家 4 月 18 日消息 外媒 MSPoweruser 报道,微软已经迅速行动,粉碎了一个传闻,此前有消息称,微软正计划将 Windows Server 更名为 Micr…

腾讯视频视频下载_如何下载腾讯视频

今天继续给大家分享腾讯视频方面的内容。一般来说vip会员可以提前点播热播剧,对于追剧党来说是非常好的,不过是否开通也要根据自己需求,毕竟价格也不低啊,而且还是有一些用户能够通过一些简单但不值得提倡的方法看遍全网vip资源电…

deebot扫地机器人使用_完美主义的双子座也选这款扫地机——小米米家扫地机器人使用心得...

赵女士是一枚85后,热爱生活、完美主义、中度洁癖。自从搬了新家后,赵女士一直想添置一台扫地机器人,一方面,孩子经常喜欢赤脚在家中玩耍,另一方面,白天上班晚上回来打扫卫生总显得有些心有余而力不足&#…

腾讯视频如何下载视频_腾讯视频如何做明星装扮

这篇文章主要说的是腾讯视频如何下载视频_腾讯视频如何做明星装扮,希望可以帮助大家。腾讯视频时刻为您推荐最新最火的视频,精彩不断随时观看。支持各种画质的下载,没网也能享受高视觉的享受,让生活的每一刻都不再枯燥!腾讯视频采…

路畅畅云固件升级教程_斐讯K2P MTK版简单几步刷入breed教程,附刷第三方固件方法...

教程适用于 K2P MTK版本(A1/A2)。教程转载自恩山1、检查路由固件版本,是否V22.8.5.189或V22.10.2.24,版本低于22.8.5.189就手动上传升级一下。2、下载辅助工具刷入breed。下载辅助工具,解压压缩文件到任意目录。解压后保留一下几个文件&#…

腾讯视频下载安装_如何上传视频到腾讯视频平台

播放器软件很多,本文小编给大家推荐腾讯视频。我们可以在腾讯视频播放器上,观看各种电视剧、电影、综艺节目等内容。里面的大部分视频都是免费的,部分独播大剧可能会存在vip收费的情况,这也是无法避免的。腾讯视频客户端是国内领先…

edtext 从右边开始输入 安卓_FreeRTOS 从入门到精通6--详解任务管理下(对比PLC,安卓)...

接着上一讲奔腾的心:FreeRTOS 从入门到精通5--详解任务管理上​zhuanlan.zhihu.com在这一讲中我将要介绍任务的运行模式,同时与可编程控制器(PLC)以及安卓系统的运行模式进行比较。我在德国读书时专业是嵌入式开发,工作…

礼物

礼物——大熊和小兔喜欢互送礼物,朋友总是这样。小兔给大熊送礼物有一个习惯—试试看。有一次,小兔送给大熊一本漫画书。 “哇,漫画书!”大熊马上接过书翻看起来。小老虎也围过来看,刚翻两页,小老虎就叫起来&#xff…

ps去水印教程_ps去水印教程,详细解析五种去水印的方法

平常我们从一些素材网站下载图片的时候,不免会带上一些水印,使图片的整体美感下降不少,今天教同学们五种去除水印的方法,相信你学习以后,有所收获,遇到喜欢的图片可以把不想要的水印去掉,不过水…