精华内容
下载资源
问答
  • 详解BI项目中的ETL

    2010-01-08 19:23:43
    L是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合...通常情况下,在BI项目ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关接到BI项目的成败。
  • 大数据简历--项目描述,里面有三个大数据的项目描述,可以帮助大家写大数据项目的简历。
  • ETL工作经验分享(1)

    千次阅读 2020-06-14 20:59:41
    如果能够对设计模式有深入的了解,将是进一步提升的基础,但是近些年面临的问题是,大型且完整的ETL项目变得逐渐减少,未来可能走向精细化,小型化的道路。 当大部分公司完成了ETL的基础建设,将是漫长的维护过程。...

    前言

    刚刚结束一段时长一年的工作,去年七月份入职一个世界五百强公司,为客户提供互联网技术服务。单从企业的资历来说,历史悠久,分公司林立,但是不同位置的分公司各分其职。我的公司算是其中提供基础技术支持的分公司,从详细设计做到结合测试,偶尔会涉及本番测试。从技术上讲就是传统认识当中的外包公司,但是公司本身规模较大,技术方向也非常多,同样也面对很多问题,比如没有核心产品,没有TOP-V设计,对NEW-IT的转型缓慢。我相信这些问题如果在公司上层的决策中会有一个相对完美的解决方案。

    从职工的角度来讲,外企带来的是稳定的工作机会,相对平等的薪资待遇,没有严重剥削劳动力的现象,没有996高强度的消耗,需要的就是外语能力绝对的过关。

    公司文化非常open和多元,能容纳不同的思维和个性的人,注重个人品质,正直,诚实,相互尊重。

    我在这样的公司中的一个项目组中担任ETL相关的工作,这接近一年时间的工作,有一些技术上和工作中的经验和感受想记录一下,分享一下。

     

    ETL浅谈

    之前写过一篇文章介绍过一些唾手可得的ETL介绍,大家可以先简单了解一下。

    实际上ETL技术是一项很好入门的技术,相对来说门槛并不高,要求你对SQL熟练掌握,数据库清晰的了解。具体的工作要求可以参看各大公司的招聘要求,基本就是ETL开发过程中需要的基本技能。

    上面的是华为招聘的BI工程师岗位,面向的是拥有五年以上经验的BI工程师。至于刚进入工作岗位的小白来说,技能要求相对会降低。

     

    基础的数据库能力是必不可少的,SQL结构化查询语言是必会不可的基础中的基础。关于常用的ETL软件与工具,在进入工作岗位中,会在日常实践中快速学会,普遍来讲3到4个月,刚毕业的毕业生就可以着手ETL的开发。

     

    ETL工程师是典型的“越老越值钱”,真正能设计出好的ETL工作流的工程师,对整个业务数据有非常好的了解,能够综合考虑当前的数据和最终终端呈现出报表的结果,做出一个最良好的设计。这一点是非常难以做到的,需要长期的项目经验积累。

    这一点zhihu有位答友写的很好。

    ETL绝对是越老越牛逼的一个领域,但是你要做到四点:

    1、至少有比较强的业务学习能力,对所在的领域及其数据有所了解。这是这个领域重要的护城河。

    2、熟悉ETL的方法论,这个方法论基本我没有找到过很好的书,但是ETL大师曾经的几次交流,已经足以应付很多项目,如果还有自己更多的总结,那么绝对也能成为大师。这是另一个重要的护城河。

    3、ETL是可以创造“人月神话”的,也就是只要你的技术逻辑思维好,了解了ETL本质的精髓,一个毕业生团队半年就可以成为很强的战斗力。他们能否超越你,取决于前两点,但是如果你规则定好,他们大部分人永远都知其然不知其所以然。

    4、用ETL的思维可以创造神奇,让他们程序员们要干上1个月才能解决的问题,在你这里1天就可以有结果。同时还能彻底改变你对数据处理这个领域的观点。



    作者:決題達零(瑞理)
    链接:https://www.zhihu.com/question/316809572/answer/629615456
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    从我个人经历来看,短时间的ETL工作只能是非常浅层的理解,最多算作一个熟练工,BI架构师之路异常的漫长。如果能够对设计模式有深入的了解,将是进一步提升的基础,但是近些年面临的问题是,大型且完整的ETL项目变得逐渐减少,未来可能走向精细化,小型化的道路。

    当大部分公司完成了ETL的基础建设,将是漫长的维护过程。想做好ETL必须对数据有很好的sense,同时精通各种数据清洗方法,数据流的分析,同样也离不开对实际问题的建模,不然ETL将无疑于数据库,单纯变成了一个取数据的系统。

    我认为实际工作中需要特别注意的有几点内容:

    1. 明确数据从哪里来,经过几层,要流到哪里去,最终要呈现一个什么样的图表和数据表现。
    2. 明确日常使用的工具的基本特性和使用方法。
    3. 什么是事实表,什么是维度表,什么是attribute什么是metric。
    4. 如何设计工作流,理解数据表如何结合,如何取到想要的数据。

    ETL是个很传统的技术了,相对已经非常成熟,需要长时间积累才能提升到较高的水平。

    笔者仅仅一年的经验而已,经验未免有失偏颇,希望读者可以辩证看待,多多交流。

    展开全文
  • 交通路网数据自动化ETL项目介绍 这是最近一年内一直没有脱手的一个项目。只是最近有了一定的想法心得,在此记录一下。 项目概述 交通路网数据自动化ETL项目主要为了方便路网可视化部分提取所需要的数据。 最初的...

    交通路网数据自动化ETL项目介绍
    这是最近一年内一直没有脱手的一个项目。只是最近有了一定的想法心得,在此记录一下。

    1. 项目概述
      交通路网数据自动化ETL项目主要为了方便路网可视化部分提取所需要的数据。
      最初的数据是从各个厂商的摄像头传入的,然后由另一个公司(合作伙伴)将最初的数据传入kafka中,然后再由kafka传入impala中。
      我所做的工作便是从impala中定期提取数据到数据库中,并且对这些数据进行处理转换为我们前端路网可视化所需要的数据。这个看似简单的任务,却让我崩溃了很久。这也算是我自己第一次在真实需求场景下做的一个ETL处理系统。数据处理完毕后存入数据库,类似于一个小型的数据仓库。
    2. 使用工具概述
      ·talend
      talend是由JAVA编写的一款自动化ETL工具,使用这款工具可以通过可视化界面创建数据处理任务,涵盖了多种基本数据库以及流式数据库的数据导入和处理。
      ·Quartz
      定时任务框架,在项目中主要使用Quartz框架将为任务设定时间。
    3. 主要实施方案
      主要的实施方案为先通过talend创建一个从搭建好的impala中将数据导入到数据库中的作业,再将该作业导出为java项目进行二次开发。所需要进行的数据处理全部在Postgresql数据库中设置触发器处理。
      整体思路为:从impala中将数据导出,导出完成后将触发触发器自动将数据进行处理。生成额外的功能表。
      详情请见接下来慢慢道来
    展开全文
  • 上网查了下,相关的ETL工具中还有很多,较为出色的如Datastage、Powercenter、ODI、DecisionStream等,但这些工具价格不菲,要说服公司采购几十万上百万的ETL工具是几乎不可能的,如是找到了一款纯JAVA开发的基于...
    

    1  总体设计

    1.1 总体设计

    • 所有的数据源都将在ETL中配置数据源连接,分别建立好数据转换包处理各自同步、清洗业务,相关的规则都配置到ETL转换包中

    • 展示平台仅有一些最终统计数据展示报表(尽可能不出现多个地方配置规则)

    • 第三方系统将通过一个web service服务器接口获取到数据中心的信用信息

    • 运政等公司内部系统则可以直接连接中心数据库交换信用有关的数据

       

       

    1.2 中心数据库与各业务数据库关系图

    • 关于信用相关的表,三个库(中心库、内部系统库1、内部系统库2)都一样的表结构(接口表除外:未经处理与外部数据源结构一致的表,参见数据中心总体结构设计),只是在记录上,中心库最全,内部系统库1、内部系统库2分别只包含自己的部分。

    • 关于接口表,内部三个系统之间表结构可以省去接口表部分,即直接进行业务表之间的同步。

       

       

     

    1.3 Kettle ETL工具分析  

     

    • Kettle介绍:是一款国外开源的ETL工具,纯java编写,可以在WindowLinuxUnix上运行,数据抽取高效稳定,采用LGPL授权协议的自由软件,开发出来的新软件可以是私有的而不需要是自由软件,即可以放心自由地使用。

    • 流程执行示例:

      作业调度示例(些作业中会执行上图中的转换任务,并设置为每分钟执行一次,并重复执行)::

      部署示例:

       

    2  中心数据中总体结构设计

    上图中,以user表为例,其中橙色部分为ETL处理过程序,其主要流程是:

    1. 首先在中心数据库中建立一个名为“XXX_interface的表,它与外部的数据表结构保持一致,接收到的数据记录会首先放入到这个表中,主要是方便追溯统计

    2. ETL工具将采用增量同步方式从外部表获取自上次同步后的所有数据,会按原数据不作处理地同步到接口表中(如果为主键冲突则例外处理),并记录这个过程中同步时间戳,状态态信息(如异常、同步的记录数量)

    3. 紧接着,将会从接口表到正式表的同步,这时会对数据按照制定的规则做清洗、汇总,输出则是:正式的数据记录;过程中的状态(异常等)、时间戳信息;汇总情的更新(如一些中间结果汇总表在相关子表变化后也需要做增量同步)

    4. 将加入汇总处理部分。

    3  子系统/模块设计

    3.1 数据过滤、清洗过程设计

    初设中的数据质量要求,可以大体总结为:

    1. 设置上限和下限,如果超过则记录为问题数据;

    2. 趋势分析,即当数据发现最近连续7个点上升或连续7个点下降将视为异常

       

      数据流向分支,即对一个数据集进行条件判断,条件成立时会流到某一去处,不成立的一批数据会到另一个出处:


       

    3.2 关键指标报警设计

    件邮发送,但发现错误时

     

    报警邮件邮件示例

     

    3.3 同步日志、状态表设计

    统一为一张表来记录所有过程中,各种状态值,见数据库设计。

     

    3.4 增量同步

    • 对于较小的表进行全表对比

    • 对于较大的表进行时间戳同步,但要注意的是完备性方面,时间戳方式不能捕获DELETE操作,需要结合其它方式一起使用

     

     

    4  运行设计

    • 支持多种操作系统运行,只需安装好jre运行环境即可。部署过是:直接将一个文件包复制到服务器,在服务器上让包中的一个批处理执行文件每次开机时自动执行即可(在windows下是一个.bat文件,在linux下是一个.sh文件),该批处理将会执行相关的作业调度程序包,作业调度包中包括了实际ETL过程。

    • 以配置文件方式修改实际生产环境与测试环境的参数(如WebServices url、数据库链接等),方便在开发测试环境与正式生产环境之间切换。

    • ETL包在运行过程,需要不断维护升级,可以通过停止服务并覆盖相应的作业或ETL包,再次启动即可。

    5  系统数据结构设计系统数据结构设计

    6  系统出错处理设计

    6.1 设计要求

    由于ETL服务在任意时刻都可以出现各种异常,所以保证:

    • ETL服务在任意时刻都可以停止,在重新启动后仍能正常完成“打断的工作

    • 并且可以重复地执行而不会产生冲突和不一致性的数据

    • 足够的错误信息,快速的定位错误点,快速的修改问题

       

    6.2 设计策略

    • 同步过程状态做好记录,按增量同步的方式进行;

    • 同步过程状态与数据表的相关操作写在一个存储过程中,并采用事务处理;

    所有的作业、包、存储过程都有异常处理,并都有相应的记录方式,作业和包的异常主要记录到文本日志和邮件中,而存储过程则记录到数据库日志表中。
    
    展开全文
  • etl大概描述:用来将数据从数据源端抽取,转换,加载到目的端的过程。一般而言etl有实时etl和离线etl,这个项目介绍的是离线etl项目,代码中没有配置远程提交集群,如需集群运行需要自行打包代码提交到集群。
  • ETL】开发过程描述

    千次阅读 2010-09-04 20:16:00
    ETL 设计的详细文档 a) Velocity b) 源对目标的映射 c) 业务规则转换 ( 字段级 ) d) 清洗规则定义 D. 测试文档 a) 单元测试文档 b) 集成测试文档 E. ...

    A. 数据源分析文档(前期的分析)

    a) 源的表

    b) 每个表字段属性

    c) 记录数

    d) 数据质量分析

    B. 目标的文档

    a) 源的表

    b) 每个表字段属性

    c) 建议采用建模工具Sybase PowerDesigner CA Erwin

    d) DBA 参与目标表的设计:

    e) 目标表的设计:

    Ø         维表和事实表的开始时间和结束时间。

    Ø         事实表的约束

    Ø         索引影响性能

    n         Disable

    n         Delete

    n         Enable

    n         Create

    n         Loader

    f) 维表是否要保留所有的历史记录?

    n         要历史数据:主键,开始和结束时间。

    n         不要的:保持最近的

    n         缓慢变化维

    C. ETL 设计的详细文档

    a) Velocity

    b) 源对目标的映射

    c) 业务规则转换(字段级)

    d) 清洗规则定义

    D. 测试文档

    a) 单元测试文档

    b) 集成测试文档

    E. 开发人员要维护的文档

    a) Mapping 的设计文档:

    (1) Mapping 的名字,功能描述

    (2) 每个组件的名字,用途描述,实现功能,技巧。 特殊复杂转换描述。

    b) Workflow 流程设计文档

    c) 设计变更文档

    d) 对数据量的估算文档(源、中间过程及目标)

    l         每天的增量

    l         条数,每条的长度

    l         作业的复杂程度评估

    l         Session 运行的经验值(如果跟开发环境不一致,没有太大的参考价值)

    l         Lookup 等组件占用内存的估算。

    l         设计到性能的每个组件的描述:lookup 个数,关联的字段数。

     

    展开全文
  • 博文目录0. Oracle基础环境准备创建表空间(参考)拓展表空间... ETL项目开发 0. Oracle基础环境准备 创建表空间(参考) # EDW_ETL_DAT 。创建时指定temporary表示创建临时表空间 DROP [temporary] TABLESPACE EDW_E...
  • 经典ETL例子

    2012-07-30 10:06:21
    经典ETL,此ETL产生日期条数,如:2012-08 到 2013-02 则会生成7个月的明细,2012-08,2012-09,2012-10....一直到2013-02
  • ETL项目 团队成员:凯莉·格randint,曹一飞 数据集概述 迪士尼Plus电影/电视节目数据集:( ) 数据集元数据: 来源: : 收集方法:带有omdbapi的Python 数据集所有者:Raphael Fontes 建立日期:2020-04-14 ...
  • 文件:“ ETL项目报告.pdf”(整个过程的描述) 文件:“ main.ipynb”(包含我们所有代码的Jupyter笔记本) 文件:“ schema.sql”(显示PostgreSQL中表模式的文档) 文件:“ README.md”(此文件) 会员 ...
  • ETLetl简介

    千次阅读 2018-09-26 22:37:29
    ETL是数据抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)的过程。是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到...
  • ETL介绍

    2018-01-21 15:09:18
    ETL介绍 1.数据来源:  用户行为数据  业务数据  数据采集(爬虫)  日志文件 2.处理 数据抽取:把不同的数据源数据抓取过来,存到某个地方 数据清洗:过滤那些不符合要求的数据或者修正数据之后再进行...
  • 微博数据ETL 项目角色: 核心研发 开发组人员: 3 工作内容: 通过javase解析、结构化源数据并load到hive数据仓库中,并使用hivesql、数据分析函数进行活跃度、影响力排行等分析工作。   一、项目简介: 这个...
  • ETL-Project:项目二-源码

    2021-03-07 08:27:41
    ETL项目 ETL项目提案 团队成员: 拉斐尔·塞拉诺(Raphael Serrano) 斯沃巴比卡耶娜 托马斯·梅纳(Thomas Maina) 戴安娜·麦登科(Diana Madonko) 项目概况 我们感兴趣的问题是探索世界各地已出版的书籍和...
  • 前言 ...今天主要先描述ETL工具的通用功能。 一、连接 任何ETL工具都应该有能力连接到类型广泛的数据源和数据格式。对于最常用的关系型数据库系统,还要提供本地的连接方式(如对于Oracle...
  • ETL和ELT ETL是Extract、Transfrom、Load即抽取、转换、加载三个英文单词首字母的集合: E:抽取,从源系统(Souce)获取数据; T:转换,将源系统获取的数据进行处理加工,比如数据格式转化、数据精度转换、数据...
  • ETL详解

    千次阅读 2018-08-23 20:38:02
    ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。 ETL负责将分布...
  • 通常情况下,在BI项目ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败。   ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候我们也是从...
  • 里约热内卢的美景 指令 # set PWD variable (Windows users only): $ $env :PWD= $PWD # up! $ docker-compose up -d --build # update images $ docker-compose run app modules/update_images.py ...
  • ETL开源项目-Kettle

    2010-11-25 06:50:55
    说到ETL开源项目,Kettle当属翘首,因此,偶决定花点时间了解一下。  项目名称很有意思,水壶。按项目负责人Matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。呵呵,外国人都很有联想力。 ...
  • ETL的简单理解

    2020-03-21 16:58:24
    ETL的简单理解 ETL(数据仓库技术) E(Extract抽取)T(Transform转换)L(load加载) ...我们的实时项目之中需要分许哪些指标 流量分析(新增,pv(浏览量),uv(网站独立访客),事件分析(浏览,包括,点赞,评论,分享,关注)) 活动...
  • ETL-设计开发过程的总述

    千次阅读 2019-09-04 16:49:16
    ETL的主要作用:数据的获取、清洗的一致性、用于展现的发布、ETL环境的管理, 在所有的设计ETL模型的时候,所有...可以开始ETL的建设,需要考虑一下ETL工具的选择,对于一个大型的项目有一个ETL去管理,对后期新...
  • ETL日志的分级 在数据项目中,ETL日志分为三个级别,分别是: 调度级别,主要是ETL调度器所产生的日志,这部分日志主要依赖ETL调度器,大多数情况下,不会发生错误,例如现在比较流行的Azkaban ETL级别,ETL运行...
  • ETL的经验总结

    2017-04-18 12:39:13
    ETL的考虑     做数据仓库系统,ETL是关键的一环。说大了,ETL是数据整合解决方案,说小了,就是倒数据的工具。回忆一下工作这么些年来,处理数据迁移、转换的工作倒还真的不少。但是那些工作基本上是一次性...
  • ETL_FOR_INSERT_DATA-源码

    2021-02-26 13:45:07
    项目描述 在这个项目中,我必须使用Postgres建模数据,并使用Python构建和ETL管道。 在数据库方面,我必须为“星型模式”定义事实和维度表以得到特定的关注。 另一方面,ETL管道将使用Python和SQL将位于两个本地...
  • ETL面试题集锦

    千次阅读 2019-01-29 18:03:00
    它对ETL项目组的作用是什么? 答:逻辑数据映射(Logical Data Map)用来描述源系统的数据定义、目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或Excel的格式...
  • ETL流程

    2019-08-08 13:51:06
    ETL流程: 可以把ETL分为五个阶段,按照开发的顺序分: 1)准备阶段: 根据需求定义映射关系,产出物为《ETL映射文档》。 分析数据源质量,针对数据源中有问题的数据制定数据抽取原则,产出物为《数据源质量分析...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,485
精华内容 3,794
关键字:

etl项目描述