SQL专栏
SQL数据库基础知识汇总
SQL数据库高级知识汇总
最近BI数据应用平台有个业务逻辑需要更新。原本一个小时就可以搞定的活,愣是多花了几个小时的时间。
找到原因之后狠狠的抽了自己两下(好疼),给大家复盘一下整个过程。
项目背景
BI数据应用平台主要是收集公司各个口径的一些业务数据,整理成度量值,然后显示在BI报表平台上。目前采用的技术是微软的BI功能组件,包括SQL Server 2017,SSIS,SSAS以及Power BI。同时为了兼顾部分不能及时录入系统的数据,引进了数据采集平台作为辅助手段。
需要高清大图的,在公众号内回复:BI 即可
案发起因
公司的业务部门希望将一个指标的每月汇总数调整为月度累计数,即2月的数据为1月与2月的和,3月是1月,2月,3月的和,依次类推。
案件分析
这个指标原本是从数据采集平台过来,最后进入到ODS数据仓库中的。现在调整一下的话,有两种方案,一种是写代码来实现这个月度累计的过程,一种方法是直接线下录入。为了快速应用上线,我选择第二张方法。将原本保留的备用字段直接修改为需要的指标即可。
开始工作
知道怎么做后其实就只是一个操作步骤的问题了。采集平台是一个比较方便的工具,可以解决很多因为系统没有数据又急需这个数据的问题。将采集平台上的备用字段修改完后,它会更新数据库中对应的表结构,这其实就是它比较神奇的地方了。
将采集平台上修改完后,继续在SSIS项目中修改ODS和DW中对应的数据字段。为什么要修改ODS和DW的数据字段呢?
其实也可以不作修改,但是在数据仓库中,一旦数据字段多了之后,数据源端的数据作了修改,而后面下游数据没调整。
这种情况很容易导致下游的人不知道这个数据是否被修改过,出来的数据也不知道是什么意思。所以源数据有变动,其后相关的所有表结构都需要调整。
SSIS项目修改完后,再修改SSAS中的度量值,既然是新增了一个指标,那么我们就将新增的指标作为度量值就可以了。
最后就是更新Power BI中的指标了,将新增的指标直接拖到工作区即可。
所有工作准备就绪,重新部署项目后开始跑数。
“一个错误,两个错误,三个错误......”跑完数一看历史记录,整个人都不好了。
遇到错误就得寻根溯源,查看各种报错提示信息。
报错原因
错误消息显示都和刚才进行的调整有关(这不是废话吗?)。最开始是采集平台那边报错了,随后是ODS层,最后是DW层。前前后后的几个错误都出现在SSIS数据处理阶段。
那就从最开始的采集平台开始找起吧,看了一下也没错啊,任务包可以正常执行,怎么就过不去呢?
“我去,忘了改采集平台的数据类型”。在左看右看之后才发现采集平台的备用字段,原本是VARCHAR(50)的字符类型,而我改正后的数据类型本应该是NUMERIC(20,2)的数值类型才对。因为数据类型转换失败导致抽数错误。
于是狠狠的抽了自己两下,重新修改整个流程。就这样一上午的时间就这样过去了。
总结
这其实是一个非常小的错误,小到当我发现后都觉得这是不应该发生的错误。但是它就是发生了,究其原因还是因为太过马虎,忽略了一下细节性的东西。虽然最后得以解决,但是这也再一次的警醒了我:做数据这一行切莫马虎大意,小心使得万年船!