美文网首页玩转大数据大数据大数据&云计算
如何 ETL 才算做到好棒棒?(Q) 问问题

如何 ETL 才算做到好棒棒?(Q) 问问题

作者: datadam | 来源:发表于2019-07-27 02:17 被阅读0次

    说来惭愧,写本篇的当下距离开篇已经三年有余了。工作虽无闲暇,繁忙却积累了一点一滴,一直想要分享。

    数据仓库的核心是ETL。启程转合,本篇负责丢问题:如何做好大家的 ETL(数据抽取转换加载)根据本人慵懒程度阅读互动热度,后续再来分篇能拖就拖详细作答。😀

    能看得懂问题且想互动的朋友敬请留言,我会更有动力加速续篇的。-- datadam


    开篇我们提到 ETL 的本质,就是 1. 逐一筛选数据源(胡萝卜和雪梨开箱)定量提取该次处理需要的数据(只要今期的到货)2. 清洗有问题的数据(清洁水洗),添加业务逻辑转换(去皮去核打汁加水)3. 加载至门别类好的维度和事实数据表(按量封箱上架)

    有相对 SQL 基础的朋友们一定都熟悉这里类比的一些实例:1. 到哪个数据源找胡萝卜或雪梨 - 数据库A表X 或是 数据库B表Y;表实体的关系是一对多或是多对多;选取最近N天内的数据;2. 把数据源中应该是日期却储存为字符的数据转化成日期;左外连接的左表是主体通常是交易表,右表是辅助表通常是属性表,基于既定的业务键做连接可以确保数据返回的性能效率;3. 找出业务主键作比对以更新或新增;业务逻辑转换后有新的粒度,也要重建业务主键以加载至维度和事实数据表。


    这些都是  ETL 的基本。每个环节可以再局部作放大,便可以列举以下几点思考:

    数据剖析Data Profiling

    多个数据源中都有疑似你要的数据,如何可以分别它们的相同与不同以确认最后使用哪一组或是多组呢?

    如果现有的数据源中并没有你需要的数据,如何能够补足缺失的关系以连接相应的信息呢?

    数据一致 Data Consistency

    抽取是找一个业务日期还是找一个系统时间做选取好?选取几天才算合适呢?

    预备分段(Staging)的开始,何时需要考虑多个数据源的更新同步?

    如何处理数据源中已经消失的数据,标记删除或是直接删除有什么不同?

    更新和新增相对比较直接,但删除应该怎样从数据源延续到维度表/事实表?

    模型设计 Model Design

    维度表和事实表应该怎么界定,如何定位粒度大小?

    需求变更,何时需要考虑建立新的事实表?

    相关文章

      网友评论

        本文标题:如何 ETL 才算做到好棒棒?(Q) 问问题

        本文链接:https://www.haomeiwen.com/subject/yjsjrctx.html