精华内容
下载资源
问答
  • ETL流程

    2021-03-18 05:45:41
    ETL流程 数据抽取(Extraction) 1.抽取的数据源类型可以分为结构化数据、非结构化数据、半结构化数据 2.数据源可以来自爬虫数据、日志数据、第三方数据、HBASE、关系型数据库 3.结构化数据一般采用JDBC、数据库日志...

    ETL流程

    数据抽取(Extraction)

    1.抽取的数据源类型可以分为结构化数据、非结构化数据、半结构化数据
    2.数据源可以来自爬虫数据、日志数据、第三方数据、HBASE、关系型数据库
    3.结构化数据一般采用JDBC、数据库日志方式(例如WAL),非|半结构化数据监听文件变动

    Tips:
    1.一般结构化的数据采用JDBC对数据库直连,消耗数据库的IO,增加数据库的负载,影响正常业务的运行,所以时间段一般在凌晨,业务量较少的一个时间段。此外,对于金融行业,一般不建议对数据库对库抽取,先是出于安全考虑,防止数据库的异常,影响业务运行,其次是直连数据库,抽取速度较为慢,因为数据库里面的IO是有限的,所以一部分要支持业务,一部分又要支持抽取,两边的速度都会变慢
    2.对于WAL日志采集,对数据库的影响是极小的,因为不走数据库的前端IO,直接从本地采集文件,但是需要对采集到的数据进行解析才能得到数据,这个过程是非人工,用工具完成,比如说Oracle提供的OGG,大部分数据库支持的CDC等
    3.对于非|半结构数据只需监听文件的变动,将变动后的数据进行抽取就行

    抽取方式

    1.数据抽取方式有全量同步、增量同步两种方式
    2.全量同步会将全部数据进行抽取,一般用于初始化数据装载
    3.增量同步方式会检测数据的变动,抽取发生变动的数据,一般用于数据更新

    数据转换(Transformation)

    1.数据转话要经历数据清洗和转换两个阶段

    • 数据清洗主要是对出现的重复、二义性、不完整、违反业务或者逻辑规则等问题的数据进行统一的处理
    • 数据转换主要是对数据进行标准化处理,进行字段、数据类型、数据定义的转换
      2.结构化数据的转换过程中的逻辑较为简单,非|半结构化数据的转换会较为复杂

    数据加载(Loading)

    将最后处理完的数据导入到对应的目标源里

    展开全文
  • ETL流程、数据流图及ETL过程解决方案 ETL实施解决方案 ETL流程设计
  • ETL_Project 天气与动物丰度的ETL流程
  • ETL流程、数据流图及ETL过程解决方案 ETL流程、数据流图及ETL过程解决方案
  • 医学和科学论文的ETL流程 paperetl是用于处理医学和科学论文的ETL库。 它支持以下来源: PDF文章 paperetl支持以下数据库来存储文章: SQLite的 弹性搜索 JSON文件 YAML文件 安装 最简单的安装方法是通过pip和...
  • informatic ETl流程

    2013-04-06 20:20:07
    Informatic ETL 的简单流程
  • 迷你吧 使用Pentaho数据集成的ETL流程。 来自MySQL数据库的数据源。 对于数据源/输入,您可以从下面的链接下载:
  • 使用ETL流程来清理和合并数据。 目标 从各自的文件中提取来自Wikipedia和Kaggle的电影数据,通过清理并将它们合并在一起来转换数据集,然后将清理后的数据集加载到SQL数据库中。 数据库中的表 “电影”表包含基于...
  • 基于过程依赖关系的ETL流程监控研究和应用,蒋常春,邹仕洪,数据集成是商业智能中的关键环节,数据集成ETL的质量和效率直接影响着数据仓库的正确性。完善的流程监控系统能及时发现ETL出现的问
  • DPTS 带有RESTFul API的基本工具,可触发/停止长时间运行的ETL流程
  • ETL概念,ETL流程

    2018-01-31 10:12:00
    ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL...

    ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败。       

      ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候我们也是从这三部分出发。数据的抽取是从各个不同的数据源抽取到ODS(Operational Data Store,操作型数据存储)中——这个过程也可以做一些数据的清洗和转换),在抽取的过程中需要挑选不同的抽取方法,尽可能的提高ETL的运行效率。ETL三个部分中,花费时间最长的是“T”(Transform,清洗、转换)的部分,一般情况下这部分工作量是整个ETL的2/3。数据的加载一般在数据清洗完了之后直接写入DW(Data Warehousing,数据仓库)中去。

      ETL的实现有多种方法,常用的有三种。一种是借助ETL工具(如Oracle的OWB、SQL Server 2000的DTS、SQL Server2005的SSIS服务、Informatic等)实现,一种是SQL方式实现,另外一种是ETL工具和SQL相结合。前两种方法各有各的优缺点,借助工具可以快速的建立起ETL工程,屏蔽了复杂的编码任务,提高了速度,降低了难度,但是缺少灵活性。SQL的方法优点是灵活,提高ETL运行效率,但是编码复杂,对技术要求比较高。第三种是综合了前面二种的优点,会极大地提高ETL的开发速度和效率。

      一、 数据的抽取(Extract)

      这一部分需要在调研阶段做大量的工作,首先要搞清楚数据是从几个业务系统中来,各个业务系统的数据库服务器运行什么DBMS,是否存在手工数据,手工数据量有多大,是否存在非结构化的数据等等,当收集完这些信息之后才可以进行数据抽取的设计。

      1、对于与存放DW的数据库系统相同的数据源处理方法

      这一类数据源在设计上比较容易。一般情况下,DBMS(SQLServer、Oracle)都会提供数据库链接功能,在DW数据库服务器和原业务系统之间建立直接的链接关系就可以写Select 语句直接访问。

      2、对于与DW数据库系统不同的数据源的处理方法

      对于这一类数据源,一般情况下也可以通过ODBC的方式建立数据库链接——如SQL Server和Oracle之间。如果不能建立数据库链接,可以有两种方式完成,一种是通过工具将源数据导出成.txt或者是.xls文件,然后再将这些源系统文件导入到ODS中。另外一种方法是通过程序接口来完成。

      3、对于文件类型数据源(.txt,.xls),可以培训业务人员利用数据库工具将这些数据导入到指定的数据库,然后从指定的数据库中抽取。或者还可以借助工具实现。

      4、增量更新的问题

      对于数据量大的系统,必须考虑增量抽取。一般情况下,业务系统会记录业务发生的时间,我们可以用来做增量的标志,每次抽取之前首先判断ODS中记录最大的时间,然后根据这个时间去业务系统取大于这个时间所有的记录。利用业务系统的时间戳,一般情况下,业务系统没有或者部分有时间戳。

    二、数据的清洗转换(Cleaning、Transform)

      一般情况下,数据仓库分为ODS、DW两部分。通常的做法是从业务系统到ODS做清洗,将脏数据和不完整数据过滤掉,在从ODS到DW的过程中转换,进行一些业务规则的计算和聚合。

      1、 数据清洗

      数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。

    不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类。

      (1)不完整的数据:这一类数据主要是一些应该有的信息缺失,如供应商的名称、分公司的名称、客户的区域信息缺失、业务系统中主表与明细表不能匹配等。对于这一类数据过滤出来,按缺失的内容分别写入不同Excel文件向客户提交,要求在规定的时间内补全。补全后才写入数据仓库。

      (2)错误的数据:这一类错误产生的原因是业务系统不够健全,在接收输入后没有进行判断直接写入后台数据库造成的,比如数值数据输成全角数字字符、字符串数据后面有一个回车操作、日期格式不正确、日期越界等。这一类数据也要分类,对于类似于全角字符、数据前后有不可见字符的问题,只能通过写SQL语句的方式找出来,然后要求客户在业务系统修正之后抽取。日期格式不正确的或者是日期越界的这一类错误会导致ETL运行失败,这一类错误需要去业务系统数据库用SQL的方式挑出来,交给业务主管部门要求限期修正,修正之后再抽取。

      (3)重复的数据:对于这一类数据——特别是维表中会出现这种情况——将重复数据记录的所有字段导出来,让客户确认并整理。

      数据清洗是一个反复的过程,不可能在几天内完成,只有不断的发现问题,解决问题。对于是否过滤,是否修正一般要求客户确认,对于过滤掉的数据,写入Excel文件或者将过滤数据写入数据表,在ETL开发的初期可以每天向业务单位发送过滤数据的邮件,促使他们尽快地修正错误,同时也可以做为将来验证数据的依据。数据清洗需要注意的是不要将有用的数据过滤掉,对于每个过滤规则认真进行验证,并要用户确认。

      2、 数据转换

      数据转换的任务主要进行不一致的数据转换、数据粒度的转换,以及一些商务规则的计算。

      (1)不一致数据转换:这个过程是一个整合的过程,将不同业务系统的相同类型的数据统一,比如同一个供应商在结算系统的编码是XX0001,而在CRM中编码是YY0001,这样在抽取过来之后统一转换成一个编码。

      (2)数据粒度的转换:业务系统一般存储非常明细的数据,而数据仓库中数据是用来分析的,不需要非常明细的数据。一般情况下,会将业务系统数据按照数据仓库粒度进行聚合。

      (3)商务规则的计算:不同的企业有不同的业务规则、不同的数据指标,这些指标有的时候不是简单的加加减减就能完成,这个时候需要在ETL中将这些数据指标计算好了之后存储在数据仓库中,以供分析使用。

    三、ETL日志、警告发送

      1、 ETL日志

      ETL日志分为三类。

    一类是执行过程日志,这一部分日志是在ETL执行过程中每执行一步的记录,记录每次运行每一步骤的起始时间,影响了多少行数据,流水账形式。

    一类是错误日志,当某个模块出错的时候写错误日志,记录每次出错的时间、出错的模块以及出错的信息等。

    第三类日志是总体日志,只记录ETL开始时间、结束时间是否成功信息。如果使用ETL工具,ETL工具会自动产生一些日志,这一类日志也可以作为ETL日志的一部分。

    记录日志的目的是随时可以知道ETL运行情况,如果出错了,可以知道哪里出错。

      2、 警告发送

      如果ETL出错了,不仅要形成ETL出错日志,而且要向系统管理员发送警告。发送警告的方式多种,一般常用的就是给系统管理员发送邮件,并附上出错的信息,方便管理员排查错误。

      ETL是BI项目的关键部分,也是一个长期的过程,只有不断的发现问题并解决问题,才能使ETL运行效率更高,为BI项目后期开发提供准确与高效的数据。

    后记

         做数据仓库系统,ETL是关键的一环。说大了,ETL是数据整合解决方案,说小了,就是倒数据的工具。回忆一下工作这么长时间以来,处理数据迁移、转换的工作倒还真的不少。但是那些工作基本上是一次性工作或者很小数据量。可是在数据仓库系统中,ETL上升到了一定的理论高度,和原来小打小闹的工具使用不同了。究竟什么不同,从名字上就可以看到,人家已经将倒数据的过程分成3个步骤,E、T、L分别代表抽取、转换和装载。

    其实ETL过程就是数据流动的过程,从不同的数据源流向不同的目标数据。但在数据仓库中,

    ETL有几个特点,

    一是数据同步,它不是一次性倒完数据就拉到,它是经常性的活动,按照固定周期运行的,甚至现在还有人提出了实时ETL的概念。

    二是数据量,一般都是巨大的,值得你将数据流动的过程拆分成E、T和L。

        现在有很多成熟的工具提供ETL功能,且不说他们的好坏。从应用角度来说,ETL的过程其实不是非常复杂,这些工具给数据仓库工程带来和很大的便利性,特别是开发的便利和维护的便利。但另一方面,开发人员容易迷失在这些工具中。举个例子,VB是一种非常简单的语言并且也是非常易用的编程工具,上手特别快,但是真正VB的高手有多少?微软设计的产品通常有个原则是“将使用者当作傻瓜”,在这个原则下,微软的东西确实非常好用,但是对于开发者,如果你自己也将自己当作傻瓜,那就真的傻了。ETL工具也是一样,这些工具为我们提供图形化界面,让我们将主要的精力放在规则上,以期提高开发效率。从使用效果来说,确实使用这些工具能够非常快速地构建一个job来处理某个数据,不过从整体来看,并不见得他的整体效率会高多少。问题主要不是出在工具上,而是在设计、开发人员上。他们迷失在工具中,没有去探求ETL的本质。可以说这些工具应用了这么长时间,在这么多项目、环境中应用,它必然有它成功之处,它必定体现了ETL的本质。如果我们不透过表面这些工具的简单使用去看它背后蕴涵的思想,最终我们作出来的东西也就是一个个独立的job,将他们整合起来仍然有巨大的工作量。大家都知道“理论与实践相结合”,如果在一个领域有所超越,必须要在理论水平上达到一定的高度.

    转载于:https://www.cnblogs.com/xk-bench/p/8390830.html

    展开全文
  • 数据仓库ETL流程整体思路具体步骤总结 整体思路 要想开发一个完整的数据仓库etl流程必须先从整个项目的结构层次入手,逐个剖析每一层的程序,在纸上画出整个的流程图,剩下的就自然而然攻克了,下面请看具体的步骤。...

    整体思路

    要想开发一个完整的数据仓库etl流程必须先从整个项目的结构层次入手,逐个剖析每一层的程序,在纸上画出整个的流程图,剩下的就自然而然攻克了,下面请看具体的步骤。

    具体步骤

    1.工具

    我们整个项目数据库用的是行云数据库,ETL工具用的是control-m,后台我用的是python语言开发的整个的流程,操作数据库是通过java程序通过jdbc连接行云数据库(此处是因为行云数据库只能通过Java程序jdbc驱动连接,一般的数据库可以通过Linux数据库客户端连接或通过python的第三方数据库模块包连接)。

    2.流程

    (1)比如先把每一层的存储过程开发出来,
    (2)通过python程序(当然也可以是shell脚本)调用Java程序连接数据库执行加载数据或者执行存储过程的语句(公共的程序可以通过输入表名称和跑批日期区分),
    (3)接下来是在control-m中通过配置shell脚本的方式将每一个表执行的程序当作一个作业配置在control-m中,
    (4)通过存储过程中的来源表名配置control-m的作业依赖触发。

    3.小结

    相信你已经基本上了解了整个数据仓库的ETL流程了,接下来还有一个关键的问题是作为一个下游系统你知道怎么传数到程序的指定目录吗?欢迎在留言区和我分享。
    在这里插入图片描述

    总结

    本文讲述了整个数据仓库的流程,给读者清晰的描绘了一个新项目应该怎么开发ETL流程,希望对读者有所帮助。

    展开全文
  • 目录ETL定义模式及比较ETL过程问题分析 现状分析ETL定义ETL定义涉及以下内容ETL定义ETL前提ETL原则ETL定义定义数据的抽取(Extract)转换(Transform)装载(Load)的过程目标数据优化以最小代价(包括对日常操作的影响和对...
  • 数据仓库ETL流程规范

    千次阅读 2010-04-02 17:00:00
     本ETL流程规范试图建立一个通用的ETL流程开发规范,针对不同项目组的实际情况,可自行进行逐步的完善和修改。 本流程应该是在需求分析阶段结束后实施。 ETL流程: 可以把ETL分为五个阶段,按照开发的顺序分:

    转:
      项目组希望我出一个ETL的规范,凭着自己的感觉和经验总结了一些步骤,我还会不断改进。
      
      本ETL流程规范试图建立一个通用的ETL流程开发规范,针对不同项目组的实际情况,可自行进行逐步的完善和修改。
      
      本流程应该是在需求分析阶段结束后实施。
      
      ETL流程:
      
      可以把ETL分为五个阶段,按照开发的顺序分:
      
      
      
      1) 准备阶段:
      
      ? 根据需求定义映射关系,产出物为《ETL映射文档》。
      
      ? 分析数据源质量,针对数据源中有问题的数据制定数据抽取原则,产出物为《数据源质量分析报告》、《问题数据处理规范》。
      
      ? 确定数据抽取的技术架构,产出物为《全量数据抽取策略》、《增量数据抽取策略》、《数据抽取中异常处理规范》。
      
      ? 确定ETL的实现方式,采用ETL工具还是自己开发代码。产出物分别是:《ETL工具使用手册》、《ETL代码开发手册》。这两个文档主要用于员工培训。
      
      2) 开发阶段:
      
      ? 根据上个阶段的产出物进行ETL的实现。
      
      3) 测试阶段:
      
      ? 测试和优化两个阶段实际上是相辅相成的,测试阶段除了要测试ETL逻辑的准确性,测试过程就可以得出ETL过程的性能结果。产出物为《ETL数据抽取测试报告》。
      
      4) 优化阶段:
      
      ? 优化涉及到ETL过程的各个部分,从数据中转区到目标区,从程序代码的优化到数据库参数的调优,从ETL抽取逻辑的优化到技术架构的优化。具体优化的建议过程见《数据仓库优化建议.doc》。
      
      5) 迁移阶段
      
      ? 我们经常碰到从一个环境迁移到另一个环境的情况,ETL迁移的过程应该放在数据仓库模型迁移后,也可以根据项目的实际情况一起进行迁移。产出物《ETL迁移文档》。
      
      关键点:
      
      ETL的重点在于元数据的管理、数据质量的管理
      
      
      
      (一) 元数据的管理对于ETL来说是非常重要的,现在有了很多元数据管理工具,但我认为最重要的也是最有效的就是从管理机制入手,建立一个有效的管理元数据的制度,虽然这个方法显得土了一点,但对于数据仓库项目来说,还是比较实际的。
      
      1) 建立ETL映射文档。ETL映射文档是元数据的主要依据,它记录数据从数据源到目标表的转换和对应关系。映射可以是一对一、一对多、多对一的。
      
      
      
      2) 建立ETL变更流程。ETL变更流程其实是与需求变更紧密结合在一起的,项目中需求的变化是很常见的,需求的变化有可能会导致ETL映射关系、以及ETL业务逻辑的变化。修改ETL映射文件和业务逻辑文件必须从文档开始,并且应该有统一的入口。修改文档应该包括:
      
      ? 版本号:
      
      ? 修改原因描述:
      
      ? 修改过程:
      
      ? 修改时间:
      
      ? 修改的影响范围:
      
      
      
      (二) 数据质量的好坏关系到项目的成败,前端的各种数据分析和展现的手段都是建立在良好的数据质量基础上的。
      
      
      
      ? 首先数据质量要从防患于未然开始。
      
      我们通过制定统一的ETL规范,严格要求ETL过程中的每一步都要按照规范制定的步骤来执行。规范的制定可以根据各个项目组的实际情况作适当的增减,但是一些原则性的步骤一定要坚持执行。规范一旦制定下来,就必须严格执行。从源头来保证数据质量的可信度。原则性的步骤包括:
      
      ü 《ETL映射文档》
      
      ü 《数据源质量分析报告》
      
      ü 《问题数据处理规范》
      
      ü 《数据抽取中异常处理规范》
      
      ? 建立数据核对和数据效验流程
      
      这部分应该是根据各个项目组的实际情况来考虑制定的。数据效验的方式有多种,常见的是通过报表数据与已有系统中的数据进行比对,比对如果出现问题,关键点在于要明确不同的原因,原因无非有几种:
      
      ü 统计口径不同
      
      ü 已有系统数据有误
      
      ü 自己的数据有误
      
      不要轻易下结论说对方的系统数据错误,如果我们前面的功夫下的足够,我们就可以根据我们上面提到的规范和文档来验证我们的数据是否正确。
      
      ? 建立数据修改流程
      
      


      
      
      
      
      
      有些错误是可以通过制定效验规则来自动进行修改的;
      
      而另一部分错误是必须有人工来判断错误原因,并且由人工或者由其他系统来修改

    展开全文
  • 数据工程实验第1版 目标是获得以下技术的经验并创建ETL流程: 阿帕奇气流 Apache Presto 阿帕奇火花 圈CI 码头工人 PostgreSQL MinIO 资源 气象数据: :
  • ETL流程概述及常用实现方法 http://blog.csdn.net/btkuangxp/article/details/48224187   目录(?)[-] 1抽取作业 1手工开发抽取作业时候的常用方法 11当数据源和DW为同一类数据库时 12当数据源和ODS...
  • ETL流程及调度设计

    2011-03-14 10:47:16
    1.1 ETL流程及调度设计(ETL Schedule)(PSP) ETL调度的目标快速见效系统要抽取39家分行四个系统的数据进行加工处理,数据从下传文件到ODS库,ODS库到LDM,再计算PI值和汇总PI,整个ETL处理过程...
  • ETL项目准则 本文档包含有关项目1的指南,要求和建议。 团队合作 由于时间紧迫,团队合作对于该项目的成功至关重要! 在项目的所有阶段都与您的团队紧密合作,以确保在本周结束时不会出现任何意外。 与单独工作相比...
  • 包含数据和代码的Web App回购以及ETL流程和部署的所有步骤 Udacity纳米级数据科学项目。 从2021年3月开始。 为什么这是一个重要的项目? 在我们所生活的大数据环境中,数据很多,但是知识却很少。 在这个项目中,我...
  • ETL流程标准化思路

    千次阅读 2010-12-27 19:40:00
    根据培训计划,以下是整理的每个ETL开发维护的每个...ETL流程可以分成五个阶段: a. 探查阶段的输入和产出 b. 开发阶段的输入和产出 c. 测试阶段的输入和产出 d. 试运行阶段的输入和产出 e. 运维阶段的输入和产出
  • 数据仓库ETL流程

    千次阅读 2019-08-02 11:07:31
    ETL过程: origin:数据来源,文件+数据库,origin->tmp(中间层) ods层:数据源层,将origin数据导入到系统的层,tmp->ods dw层:数据仓库,将ods层数据数据整合层,ods->dw dm:数据集市,支持外部...
  • 一字符集问题 字符集定义 字符集是字符 ( 包 含字母数字 符号和非打印字 符等 ) 以及所指定 的内码所组成的 特定的集合是 基于某种操作系 统平台和某种语 言集支持的语 言集的集合被称 为语言组它可 能包含一种或多 ...
  • 发货ETL ETL过程从CSV数据集中获取数据并加载到PostgreSQL数据库中 要求 PostgreSQL 13.2或更高版本。...上下文和流程决策 通过分析数据集,我看到了数据的三个维度:数据来自订单本身,托运人的数据和

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,672
精华内容 7,468
关键字:

etl流程