曾经用过的etl,设计回顾

ETL:Extract/Transformation/Load:用户从数据源抽取出所需要的数据,经过数据清洗,转换,最终按照预先定义好的数据仓库模型,将数据内容加载到数据仓库中去。

 

第一篇中说到基层党建指挥平台

这上面基本都是统计,刚开始我们是直接SQL查询,但是那样工作量比较大,开发周期比较长,并且高峰期时会造成数据库压力大,后来我们总结发现基本所有的查询都是查询本级及下级-这一篇说到本级及下级,套路都差不多,虽然我们可以便捷地查出本级已下级,但仍然会面对繁琐的SQL,于是我们架构师那边研发了etl工具,这个工具帮助我们做累加,当前节点会有两个数量,一个是自己的统计数,一般叫count,一个是它本级和下级的统计数,一般叫total

接下来简单说下过程,整个流程是这样的:

1.数据清洗

我们这里,清洗并没有做很多处理,就是在查询中根据业务情况做一些过滤,不算是真正意义上的清洗

2.数据转换

这里就涉及到了我们etl核心-累加过程

将查询的数据作为参数返回累加后的结果

累加计算

当前节点的数量计算

父节点的累加计算

 比如节点a的父节点是b,b的总数=a的数量+b自己的数量,假设b的父节点是c,c的总数=b的总数+c自己的数量。这一块是挺巧妙的,有时间可以参照涉及深入下

3.数据加载

查询统计表的数据计算对应结果组装成对应结构插入到mongo中成为Mongo归档数据

上面流程图中的3个步骤都是通过xxljob每天定时执行,xxljob引入在有说到。

说起来我们架构师还是挺厉害的,负责架构和基础设施的搭建,考虑方案、技术选型研究和落地、改造优化等,在他的带领和我们的配合下,我们平台架构在逐渐演进中,希望这些总结能让自己多少学到一些东西,在以后的工作中能够应用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值