zoukankan      html  css  js  c++  java
  • 数据仓库-ETL

    ETL这个过程可以说下整套数据流程下来最枯燥也是最耗时间的流程,但是也是最重要的。很多时候我们不缺数据,缺的是好数据,而ETL的结果则导致下游成员的数据质量。

    ETL是贯穿数仓的整个环节,不是说只是在某一个地方才使用的。ETL工作的实质就是从各个数据源提取数据,对数据进行转换,并最终加载填充数据到数据仓库维度建模后的表中。只有当这些维度/事实表被填充好,ETL工作才算完成

    简单介绍下ETL的几种相关工具:

    数据抽取工具:Kafka  , Flume

    数据清洗:Hive  ,  tez  ,  spark , storm

    其它工具

    数据存储:hadoop、hbase,ES、redis

    任务管理:azkaban、oozie

    数据同步:datax、sqoop

    1.什么是ETL

    ETL:抽取、转换、加载

     1. 抽取(Extract)

    数据仓库是面向分析的,而操作型数据库是面向应用的。但是不是所有用于支撑业务系统的数据都有拿来分析的必要。因此,该阶段主要是确定需要从应用数据库中提取的数。

    具体开发过程中,开发人员可能会发现某些ETL步骤和数据仓库建模后的表描述不符。这时候就要重新核对、设计需求,重新进行ETL。

    数据抽取是指把ODS源数据(用户访问日志,操作日志,业务日志,监控日志...等各种日志)抽取到DW中,然后处理成展示给相关人员查看的数据

    抽取频次:

    通常如果可以的话,能增量就增量抽取,不能再考虑全量。例如订单的话一般需要全量抽取(由于量级比较小,而且订单状态会变化)

    如果没有特殊要求可以一天一次,但是需要避开拉去日志的高峰期

    对于有实时性要求的日志,可以一小时一次,或者直接使用kafka等相关工具收集,需要考虑到系统能否承受

    2. 转换(Transform)

    转换步骤主要是指对提取好了的数据的结构进行转换,以满足目标数据仓库模型的过程。此外,转换过程也负责数据质量工作,这部分也被称为数据清洗。

    通常做法:空值处理,验证数据正确性;主要是把不符合​业务含义的数据做一处理,规范数据格式(比如把所有的日期都格式化成yyyy-MM-dd HH:mm:ss),

    数据标准统一(比如男女,不能用01.02表示)

     3. 加载(Load)

    加载过程将已经提取好了,转换后保证了数据质量的数据加载到目标数据仓库。加载可分为两种L:首次加载和刷新加载。其中,首次加载会涉及到大量数据,而刷新加载则属于一种小批量的加载。数据拉取,清洗完之后,就需要展示了。一般是把清洗好的数据加载到mysql中,然后在各系统中使用,或者使用Tableau,FinBI等第三方服务直接给相关人员展示

  • 相关阅读:
    MySQL 数据库中 ceil()、floor()、round()、trunc() 函数用法
    BUG 的几种状态
    MySQL 数据库基本知识点
    测试用例设计方法之等价类和边界值
    时间同步(NTP/PTP)技术原理介绍
    智慧校园网络架设GPS北斗时钟同步系统
    制药行业SCADA系统架设NTP时钟服务器(网络时间服务器)
    关于M1 Mac如何设置打开终端的快捷键
    关于M1Mac每次都要执行source ~/.bash_profile后,配置的环境变量才生效
    关于Mac M1版安装中国蚁剑
  • 原文地址:https://www.cnblogs.com/codewan/p/10862678.html
Copyright © 2011-2022 走看看