精华内容
下载资源
问答
  • ETL开发

    2016-01-22 16:54:00
    要进入开发阶段,了解不同的ETL产品。 整个ETL系统中,时间或更精确的,吞吐量是主要关心的内容。这种转换处理任务设计的主要目的归根结底是使得数据装载到展现表中最快并使得最终用户能快速的从这些表中得到响应。...

    要进入开发阶段,了解不同的ETL产品。

    整个ETL系统中,时间或更精确的,吞吐量是主要关心的内容。这种转换处理任务设计的主要目的归根结底是使得数据装载到展现表中最快并使得最终用户能快速的从这些表中得到响应。

    推或者拉:推,是源系统主动把文件推向ETL服务器,拉是ETL服务器主动从文件服务器上抽取文件。无论是推拉都得保证数据没有错误,传输完成,确保传输完全的一个简单的标志是使用标志(信号)文件。标志仅仅表示它相关的文件的可读性。

    预装载中的数据排序

    源数据在数据库中的时候,排序很容易通过数据库,查询数据的order by来实现,但是如果源数据来自平面文件,那么开始ETL处理之前需要一个排序的程序:在主机系统中排序

     

    使用数据库的块加载工具加速数据插入

    用排序,抽取,聚合等方法把数据源的数据尽快的加载到ETL服务器之后,你将面临把大量的必要的数据加载到数据仓库。这个时候用到了数据库管理系统中的块加载功能。在数据库交互方面,块加载器比普通的sql语句效率更高。

    Oracle 的 sql loader如何提升的性能:1 SQL Loader对表使用一个排他锁,防止其他的操作  2 在直接模式中不能强制使用数据库约束(主键和唯一键约束,外键约束等)如果发生冲突,相关的索引将处于不稳定的状态,在重建索引之前需要手动清除 3 外键约束在直接加载过程中不可用,在加载后才可以重新启用 4 在直接模式中,插入触发器在行插入时候不被启动  

    Oracle  是  sql loader    SQL Server是 BulkCopyProgram 

    尽管在使用块加载夹在数据到数据仓库之前,你必须花费更多的IO性能来将数据写到物理文件中,但是他比数据直接访问数据库并用insert语句来加载要块的多

     

    管理数据特性来提高性能

    数据库有强大的特性 如索引,视图,触发器,主外键约束等,区别于平面文件。当数据库增长时管理这些特性将消耗大量的系统资源,结果是大大降低了ETL装载过程的性能。

    提高装载性能的选项:

    1 加载数据之前去除 主外键(参考完整性)约束。在外键约束的时候,每一行加载到数据库系统的外键列的数据都要与其浮标的主键值进行比较。通过去除多外间约束的事实表中的外键约束可以大大提高性能。(当加载完数据之后启用外键约束时数据库校验表中的每一行)

    2保持数据库统计表详细到天。(数据库统计表由数据库管理系统管理,他跟踪所有表的大小,索引中唯一值的大小和数量以及其他关于数据如何有效存储在数据库中的事实,当一个sql语句提交到数据库管理系统,他使用这些统计表来判断提供请求的数据的最快的访问路径,最理想的是每次加载完之后更新统计表)加载处理是经常性的。分区存储大表能提高更新统计表的速度,因为统计表不必刷新所有的静态分区而仅仅是当前的分区

    3在数据库中重组碎片数据,当经常性的更新或者删除会使得表变成碎片,导致响应时间变慢。处理大事实表的时候,最小化发生类似碎片的一种方法是创建分区表。一般根据时间分区

     

    次序

    当加载一个数据仓库的时候,一个批处理中作业的排列次序是至关重要的,主要原因是ETL需要在数据仓库中强制参考完整性(RI)。ETL处理要避免在数据仓库中创建孤儿(外建不存在主建)

    执行参考完整性:数据仓库的数据是通过一个可控的过程-ETL系统以块的方式加载的。数据进入数据仓库的入口是可控的和可管理的环境,数据库级别的RI约束一般在数据仓库中不起作用,因为数据仓库以来ETL来保证其完整性。RI在数据仓库中一般不用的另外一个原因是这样会在数据库级最小化管理费用来增加加载性能。当数据库中的RI启用的时候,每行数据在插入之前都要测试是否符合RI,也就是每一个外建都有一个父在他所要参考的表中。数据仓库的RI比交易系统的简单,交易系统中每个表和其他的表相关,引起相关表的复杂网。在纬度的数据仓库中规则很简单:事实表的每一个外建都必须在纬度表中有一个相关的主建,纬度表中的每个主建不必再事实表中有一个相关的外建。实际上,事实可能与一个纬度中的多个记录向关联(纬度可能是雪花形)

    以下的列表提供一个对一个假设的数据集市的加载过程的顺序位置的指导。1 子维度(支架2维度3桥连接表4事实表5层次映射6聚合(缩小的)维度7聚合事实表

    子纬度: 一个子纬度,是直接将一个纬度附加到另外一个纬度上,这个时候可以叫做雪花模型。子纬度一般地一个加载到数据仓库中,因为依赖关系链始于最远的表,也就是子纬度。事实表依赖惟独,而惟独依赖子纬度。

    纬度:一旦子惟独加载了,你就可以加载惟独了,唯独需要用子惟独中的代理建来做对照,因此它可以在加载过程中插入到惟独中。纬度家在必须在继续处理之前完全成功,如果失败,调度程序必须在那个失败点上停止加载过程来阻止剩下的作业的加载。

    桥连接表:当一个事实表的记录对应多个纬度记录的时候,桥连接表位于惟独表和事实表之间,桥连接表也可以用在唯独表和多个子惟独表关系中。这些标在惟独表完成之hou事实表加载之前开始立即加载

    事实表:在这里RI是强制的,因此必须确保事实表中每一个外建都有来自相关纬度或者桥连接表的相应的主建。事实表一般在数据仓库加载中是各种表类型中最耗时的;你应该在所有与这个事实表相关的表都已经加载后才开始加载事实表。不要等到数据仓库中所有的维度表加载完成才开始进行事实表的加载。由于存储在事实表中的数据容量一般非常大,以并行处理来加载是不错的思路。调度程序应该将ETL 过程分为多个线程,这样可以同时运行并从并行处理获益。

    层次影射表:层次影射表专门设计来在惟独中的层次中来回移动。层次影射表不依赖于事实或者桥连接表(除非事实表包本身含层次)。一般来说,层次表可以紧跟在与之相关的惟独表后加载。无论层次在批处理中物理位置如何,他的成功失败都不影响这个皮处理中的其他的处理。不要因为层次影射表失败就终止已经开始的事实表的处理,影射表可以独立的重新开始任何事实表的加载。

    聚合和分组对性能的影响:聚合函数和group by语句要求数据库利用大量的临时表空间。临时表空间是DBMS管理的一个特殊的区域,用来存储需要处理的某些包含排序查询的工作表。SQL在执行它的服务器上进行处理。这就意味着如果你试图在你的抽取查询中进行数据聚合,你将很可能撑破源交易系统分配的临时表空间。当你需要建立一个聚合表时,比较好的处理是利用ETL 引擎或第三方工具的特殊功能来加快排序数据的速度。你应该使用支持增量更新到聚合的专门工具来逐步调整你的聚合。

    不要试图用带Group By 语句的SQL 在你的数据抽取查询中执行聚合。GroupBy语句用语句中所有的列来建立一个隐含排序。交易系统一般不会配置来处理巨大的排序操作,因为这样的查询可能摧毁源数据库。抽取必要的原子级数据并随后在ETL 管道中利用ETL 引擎或专用排序程序来聚合

     使用标量函数对性能的影响:函数有参数,会给查询施加压力,尤其那些必须一个字符一个字符的评估值的函数。如SUBSTR(),CONCAT(),TRIM(),ASCII().数据库在处理函数方面变得越来越好。Oracle 已经引入基于函数的索引,这样对包含基于函数约束的查询的响应时间就加快了。

     避免使用触发器

    克服ODBC瓶颈:第3 章提供深入分析开放数据库连接管理器(ODBC)的各个层。在你的ETL 引擎和数据库之间进行通信时ODBC 并不是必须的,它可以—应该—避免。ODBC 在每个SQL 语句上增加代码层。它相当于在引导一个类时使用一个转换器。这个消息最终可以通过但是这是很慢的过程。因此有时候,时间就耗费在这个转换上了。在处理中尝试获得本地驱动程序来参与在ETL 引擎和数据库之间的通信。记住,就像一条链子,它的强度取决于它的最薄弱的一环一样,ETL 只是与它的最慢的部分一样快。

     利用并行处理的优势:以并行方式处理ETL是提高性能的最强大的方法。一次同时多个操作。

     1 并行抽取查询:大多数DBMS 有并行处理查询的能力,实际上它是同样的处理同时集约的管理内存。最优化并行解决方案一般由两种技术组成—产生几个抽取查询,每个有不同范围的值,接着以数据库特定的并行查询技术来并行执行每一个处理。那些支持它的每个数据库都有它本身执行并行查询的语法。在Oracle 中,通过在建表时设置degree 参数来启用并行功能

     2 并行转换:购买一个可以进行本地并行操作的工具,手动复制一个过程,分割输入数据,然后并行执行这些过程。如果你确实有大量的数据需要放入数据仓库,顺序的处理所有的ETL操作是不够的,那就必须找到一种ETL工具,可以提供天然的并行方式处理多个操作来获得最佳的吞吐量(这里并行功能是转换引擎直接内置的,不是执行并行扩展)

    3 并行最终加载:产生sql loader多处理,每个分区一个,并且并行运行,当执行许多sql loader处理的时候,必须设计parallel的参数为true。

     

    性能问题纠错

    当发现一个奇怪的作业使得性能相当缓慢的时候,不要删除他,直接采取一种程序化的方法来找出处理中引起瓶颈的操作并标出那个特殊的操作。监视如CPU,内存,I/O和网络流量这些地方来判断任何高层次的瓶颈。如果没有任何瓶颈,那么需要深入代码分析,使用排除过程来缩小潜在的瓶颈范围。但整个SQL语句手工编写,分割会很困难,实际上所有的ETL工具都提供一种用来把处理分割成独立部分的机制以帮助判断无法预知的瓶颈。最佳策略是:从抽取开始,顺序沿着每个激素,对照,聚合,筛选等转换操作,最后测试实际数据加载到数据仓库的IO。

    可以按照下列步骤来标志出瓶颈:1 隔离并执行抽取查询 2 关闭筛选 3去掉查找 4 谨慎的排序和聚合,很多时候在数据库和ETL工具之外(操作系统中)进行排序或预先排序更快 5 隔离和分析每个计算或转换,隔离和分析每个计算或转换是检测和补救瓶颈的一个好方法 6消除更新策略 7 检查数据库IO

    增长的ETL吞吐量。ETL小组都期望有最大吞吐能力的ETL流程,为此,推荐10个规则来帮厨ETL提高水平。

    1 减少I/O ,以管道的方式处理ETL流程,保证数据从开始抽取阶段到最后装载都是在内存中处理

    2消除数据库读写,当把数据写入磁盘的时候,最好用平面文件代替数据库表

    3尽可能的过滤,尽可能的在处理的上游减少记录数目,避免不必要的数据进入数据仓库目标表

    4分区和并行,多线程并行处理,用并行DML在源系统中并行查询,用管道方式并行处理数据,分区设计,并行装载目标表

    5更新增量聚合,重构聚合对处理消极影响很大,尽量避免,只是更新

    6只抓去需要的行列,避免不需要的记录

    7块装载/减少日志,使用数据库块转换功能,减少更新操作,用删除插入代替,关闭日志,把direct设置为true

    8删除数据库约束和索引,如果必须外键,那么ETL处理之前先删除,之后在后置任务上再加上

    9消除网络拥堵。保证文件是在本地磁盘,ETL服务器放置在数据仓库服务器。

    10 让ETL系统处理工作,最小化对数据库功能依赖。避免存储过程,函数。

    转载于:https://www.cnblogs.com/zourui4271/p/5151764.html

    展开全文
  • ETL开发规范

    2018-07-03 15:28:02
    本资源是关于ETL开发工程中自己总结的开发规范,如有疑问,欢迎交流
  • Teradata ETL开发向导

    2015-09-22 23:25:24
    内部资料—— 1、 所有的Teradata ETL开发人员 2、 需要了解Teradata ETL开发过程的相关人员
  • PDI最佳实践etl开发必备手册
  • ETL开发面试

    2017-02-06 14:59:00
    ETL开发面试 ETL面试题 1. What is a logical data mapping and what does it mean to the ETL team? 什么是逻辑数据映射?它对ETL项目组的作用是什么? 答:逻辑数据映射(Logical Data Map)...

    ETL面试题

    1. What is a logical data mapping and what does it mean to the ETL team?

    什么是逻辑数据映射?它对ETL项目组的作用是什么?

    答:逻辑数据映射(Logical Data Map)用来描述源系统的数据定义、目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或Excel的格式保存如下的信息:

    • 目标表名:
    • 目标列名:
    • 目标表类型:注明是事实表、维度表或支架维度表。
    • SCD类型:对于维度表而言。
    • 源数据库名:源数据库的实例名,或者连接字符串。
    • 源表名:
    • 源列名:
    • 转换方法:需要对源数据做的操作,如Sum(amount)等。

    逻辑数据映射应该贯穿数据迁移项目的始终,在其中说明了数据迁移中的ETL策略。在进行物理数据映射前进行逻辑数据映射对ETL项目组是重要的,它起着元数据的作用。项目中最好选择能生成逻辑数据映射的数据迁移工具。

     


     

    2. What are the primary goals of the data discovery phase of the data warehouse project?

    在数据仓库项目中,数据探索阶段的主要目的是什么?

    答:在逻辑数据映射进行之前,需要首先对所有的源系统进行分析。对源系统的分析通常包括两个阶段,一个是数据探索阶段(Data Discovery Phase),另一个是异常数据检测阶段。

    数据探索阶段包括以下内容:

    1.收集所有的源系统的文档、数据字典等内容。

    2.收集源系统的使用情况,如谁在用、每天多少人用、占多少存储空间等内容。

    3.判断出数据的起始来源(System-of-Record)。

    4.通过数据概况(Data Profiling)来对源系统的数据关系进行分析。

    数据探索阶段的主要目的是理解源系统的情况,为后续的数据建模和逻辑数据映射打下坚实的基础。


     

    3. How is the system-of-record determined?

    如何确定起始来源数据?

    答:这个问题的关键是理解什么是System-of-Record。System-of-Record和数据仓库领域内的其他很多概念一样,不同的人对它有不同的定义。在Kimball的体系中,System-of-Record是指最初产生数据的地方,即数据的起始来源。在较大的企业内,数据会被冗余的保存在不同的地方,在数据的迁移过程中,会出现修改、清洗等操作,导致与数据的起始来源产生不同。

    起始来源数据对数据仓库的建立有着非常重要的作用,尤其是对产生一致性维度来说。我们从起始来源数据的越下游开始建立数据仓库,我们遇到垃圾数据的风险就会越大。


     

    4. What are the four basic Data Flow steps of an ETL process?

    在ETL过程中四个基本的过程分别是什么?

    答:Kimball数据仓库构建方法中,ETL的过程和传统的实现方法有一些不同,主要分为四个阶段,分别是抽取(extract)、清洗(clean)、一致性处理(comform)和交付(delivery),简称为ECCD。

    1.抽取阶段的主要任务是:

    • 读取源系统的数据模型。
    • 连接并访问源系统的数据。
    • 变化数据捕获。
    • 抽取数据到数据准备区。

    2.清洗阶段的主要任务是:

    • 清洗并增补列的属性。
    • 清洗并增补数据结构。
    • 清洗并增补数据规则。
    • 增补复杂的业务规则。
    • 建立元数据库描述数据质量。
    • 将清洗后的数据保存到数据准备区。

    3.一致性处理阶段的主要任务是:

    • 一致性处理业务标签,即维度表中的描述属性。
    • 一致性处理业务度量及性能指标,通常是事实表中的事实。
    • 去除重复数据。
    • 国际化处理。
    • 将一致性处理后的数据保存到数据准备区。

    4.交付阶段的主要任务是:

    • 加载星型的和经过雪花处理的维度表数据。
    • 产生日期维度。
    • 加载退化维度。
    • 加载子维度。
    • 加载1、2、3型的缓慢变化维度。
    • 处理迟到的维度和迟到的事实。
    • 加载多值维度。
    • 加载有复杂层级结构的维度。
    • 加载文本事实到维度表。
    • 处理事实表的代理键。
    • 加载三个基本类型的事实表数据。
    • 加载和更新聚集。
    • 将处理好的数据加载到数据仓库。

    从这个任务列表中可以看出,ETL的过程和数据仓库建模的过程结合的非常紧密。换句话说,ETL系统的设计应该和目标表的设计同时开始。通常来说,数据仓库架构师和ETL系统设计师是同一个人。


     

    5. What are the permissible data structures for the data staging area? Briefly describe the pros and cons of each.

    在数据准备区中允许使用的数据结构有哪些?各有什么优缺点?

    1.固定格式的文本文件。(Flat File)

    Flat File指的是一种保存在系统上的一种文本文件格式,它以类似数据库的表的方式用行和列来保存数据。这种文件格式经常用来进行数据交换。用于保存数据不太合适。

    2.XML数据集。

    多用于数据交换,用户保存数据不太合适。

    3.关系数据库的表。

    保存数据的较理想选择。

    4.独立的数据库表。

    独立的数据库表一般指建立的表和其他表没有外键约束关系。这样的表多用于数据处理。

    5.三范式或者关系型模型。

    6.非关系型数据源。

    非关系型数据源一般包括COBOL copy books、VSAM文件、Flat文件、Spreadsheets等。

    7.维度模型。

    8.原子事实表和聚集事实表。

    9.代理键查找表。


     

    6. When should data be set to disk for safekeeping during the ETL?

    简述ETL过程中哪个步骤应该出于安全的考虑将数据写到磁盘上?

    答:Staging的意思就是将数据写到磁盘上。出于安全及ETL能方便重新开始,在数据准备区(Staging Area)中的每个步骤中都应该将数据写到磁盘上,即生成文本文件或者将建立关系表保存数据,而不应该以数据不落地方式直接进行ETL。

    例如,在数据抽取阶段,我们需要连接到源系统,为了对源系统的影响尽量小,我们需要将抽取的数据保存成文本文件或者放入数据准备区的表中,这样,当ETL过程出现错误而失败时,我们就可以从这些文本文件开始ETL,而不需要再次影响源系统。


     

    7. Describe techniques for extracting from heterogeneous data sources.

    简述异构数据源中的数据抽取技术。

    答:在数据仓库项目中,需要抽取的数据经常来自不同的数据源,它们的逻辑结构和物理结构都可能不同,即称之为异构数据源。

    在对异构数据源进行整合抽取时,我们需要做的事情依次是标识出所有的源系统,对源系统进行概况分析,定义数据匹配逻辑,建立筛选规则,生成一致性维度。

    对于源数据的操作系统平台和数据平台各不相同的情况,我们需要根据实际情况来确定如何进行数据抽取,通常的方法有建立ODBC连接、定义接口文件、建立DBLINK等方法。


     

    8. What is the best approach for handling ERP source data?

    从ERP源系统中抽取数据最好的方法是什么?

    答:ERP系统的产生是为了解决企业内异构数据的整合。这个问题也是数据仓库系统面临的主要问题。ERP的解决方案是将企业内的各个应用(包括销售、会计、人力资源、库存和产品等)建立在相同的平台和相同的应用框架下,即在应用操作层将企业内的数据进行了一致性处理。而数据仓库是在应用操作层之上建立一致性的规则并进行一致性处理。目前比较流行的ERP系统有SAP、PeopleSoft、Oracle、Baan和J.D.EDwards(大部分没接触过)。

    如果企业内只有一套ERP系统,那么数据就已经是一致的了,为数据抽取提供了方便。如果企业内除了ERP外还有其他系统,则数据抽取会变得复杂。因为目前的ERP系统的数据模型都非常复杂,可能有几百几千个表,并且较难理解。直接在ERP系统上建立数据捕获和抽取是非常复杂的。最好的办法是购买能针对ERP系统数据抽取提供功能的ETL工具,将ERP内部的复杂性留给ETL厂商处理。


     

    9. Explain the pros and cons of communicating with databases natively versus ODBC.

    简述直接连接数据库和使用ODBC连接数据库进行通讯的优缺点。

    答:通常连接数据库的方式分为两类,一类是直接连接,另一类是通过ODBC连接。

    直接连接的方式主要是通过COBOL、PL/SQL、Transact-SQL等方式连接数据库。这种方式的优点是运行性能高,可以使用DBMS提供的一些特殊功能。缺点是通用性差。

    ODBC是为windows应用程序访问数据库提供的一组接口。ODBC的优点是灵活性,通过改变驱动和连接方式可以使用不同的数据库。ODBC方式的缺点是性能差。使用ODBC连接方式实现ETL的话,在ETL程序和至少要有两层,分别是ODBC Manager层和ODBC Driver层。另外,使用ODBC方式不能使用DBMS提供的一些特殊的功能。


     

    10. Describe three change data capture (CDC) practices and the pros and cons of each.

    简述出三种变化数据捕获技术及其优缺点。

    答:变化数据捕获(CDC)技术是ETL工作中的重点和难点,通常需要在增量抽取时完成。实现变化数据捕获时最理想的是找到源系统的DBA。如果不能找到,就需要ETL项目组自己进行检测数据的变化。下面是一些常用的技术。

    1.采用审计列

    审计列指表中如“添加日期”、“修改日期”、“修改人”等信息的字段。应用程序在对该表的数据进行操作时,同时更新这些字段,或者建立触发器来更新这些字段。采用这种方式进行变化数据捕获的优点是方便,容易实现。缺点是如果操作型系统没有相应的审计字段,需要改变已有的操作型系统的数据结构,以保证获取过程涉及的每张表都有审计字段。

    2.数据库日志

    DBMS日志获取是一种通过DBMS提供的日志系统来获得变化的数据。它的优点是对数据库或访问数据库的操作系统的影响最小。缺点是要求DBMS支持,并且对日志记录的格式非常了解。

    3.全表扫描

    全表扫描或者全表导出文件后进行扫描对比也可以进行变化数据捕获,尤其是捕获删除的数据时。这种方法的优点是,思路清晰,适应面广,缺点是效率比较差。


     

    11. What are the four broad categories of data quality checks? Provide an implementation technique for each.

    数据质量检查的四大类是什么?为每类提供一种实现技术。

    答:数据质量检查是ETL工作中非常重要的一步,主要关注一下四个方面。

    1.正确性检查(Corret)

    检查数据值及其描述是否真实的反映了客观事务。例如地址的描述是否完全。

    2.明确性检查(Unambiguous)

    检查数据值及其描述是否只有一个意思或者只有一个解释。例如地名相同的两个县需要加区分方法。

    3.一致性检查(Consistent)

    检查数据值及其描述是否统一的采用固定的约定符号来表示。例如币别中人民币用'CNY'。

    4.完全性检查(Complete)

    完全性有两个需要检查的地方,一个是检查字段的数据值及其描述是否完全。例如检查是否有空值。另一个是检查记录的合计值是否完全,有没有遗忘某些条件。


     

    12. At which stage of the ETL should data be profiled?

    简述应该在ETL的哪个步骤来实现概况分析?

    答:数据概况分析是对源数据内容的概况进行分析,应该在项目的开始后尽早完成,它会对设计和实现有很大的影响。在完成需求收集后就应该立即开始数据概况分析。

    数据概况分析不光是对源系统的数据概况的定量描述,而且为ETL系统中需要建立的错误事件事实表(Error Event Table)和审计维度表(Audit Dimension)打下基础,为其提供数据。


     

    13. What are the essential deliverables of the data quality portion of ETL?

    ETL项目中的数据质量部分核心的交付物有那些?

    答:ETL项目中数据质量部分的核心的交付物主要有下面三个:

    1.数据概况分析结果

    数据概况分析结果是对源系统的数据状况的分析产物,包括如源系统中有多少个表,每个表有多少字段,其中多少为空,表间的外键关系是否存在等反映源系统数据质量的内容。这些内容用来决定数据迁移的设计和实现,并提供给错误事件事实表和审计维度表需要的相关数据。

    2.错误事件事实表

    错误事件事实表及相关的一系列维度表是数据质量检查部分的一个主要交付物。粒度是每一次数据质量检查中的错误信息。相关维度包括日期维度表、迁移信息维度表、错误事件信息维度表,其中错误事件信息维度表中检查的类型、源系统的信息、涉及的表信息、检查使用的SQL等内容。错误事件事实表不提供给前台用户。

    3.审计维度表

    审计维度表是给最终用户提供数据质量说明的一个维度表。它描述了用户使用的事实表的数据来源,数据质量情况等内容。


     

    14. How can data quality be quantified in the data warehouse?

    如何来量化数据仓库中的数据质量?

    答:在数据仓库项目中,通常通过不规则数据的检测工作(Anomaly Detection)来量化源系统的数据质量。除非成立专门的数据质量调查项目组,否则这个工作应该由ETL项目组完成。通常可以采用分组SQL来检查数据是否符合域的定义规则。

    对于数据量小的表,可以直接使用类似下面的SQL完成。

    select state, count(*) from order_detail group by state

    对于数据量大的表,一般通过采样技术来减少数据量,然后进行不规则数据检测。类似SQL如下。

    select a.* from employee a, (select rownum counter, a.* from employee a) B where a.emp_id = b.emp_id and mod(b.counter, trunc((select count(*) from employee)/1000,0)) = 0

    如果可以采用专门的数据概况分析工具进行的话,可以减少很大的工作量。


     

    15. What are surrogate keys? Explain how the surrogate key pipeline works.

    什么是代理键?简述代理键替换管道如何工作。

    答:在维度表的迁移过程中,有一种处理方式是使用无意义的整型值分配给维度记录并作为维度记录的主键,这些作为主键的整型值称为代理键(Surrogate Key)。使用代理键有很多好处,如隔离数据仓库与操作环境,历史记录的保存,查询速度快等。

    同时,在事实表的迁移过程中,为了保证参照完整性也需要进行代理键的替换工作。为了代理键替换的效率高一些,我们通常在数据准备区中建立代理键查找表(Surrogate Mapping Table or Lookup Table)。代理键查找表中保存最新的代理键和自然键的对应关系。在对事实表进行代理键替换时,为了保证效率高,需要把代理键查找表中的数据加载到内存中,并可以开多线程依次替换同一记录的中的不同代理键,使一条事实记录在所有的代理键都替换完后再写如磁盘中,这样的替换过程称为代理键替换管道(Surrogate Key Pipeline)。


     

    16. Why do dates require special treatment during the ETL process?

    为什么在ETL的过程中需要对日期进行特殊处理?

    答:在数据仓库的项目中,分析是主导需求,而基于日期和时间的分析更是占了很大的比重。而在操作型源系统中,日期通常都是SQL的DATETIME型的。如果在分析时,使用SQL对这种类型的字段临时处理会出现一些问题,如效率很差,不同的用户会采用不同的格式化方法导致报表不统一。所以,在数据仓库的建模时都会建立日期维度表和时间维度表,将用到的和日期相关的描述都冗余到该表中。

    但是,并不是所有的日期都被转化为日期维度表的外键。日期维度表中的记录是有限的,有些日期如生日等可能会比日期维度表中记录的最小日期还要早,这类字段可以直接在数据仓库中保存SQL的DATETIME型。而像购买日期等与分析的业务紧密相关的通常都需要转化为日期维度表的外键,可以用日期维度表中统一的描述信息进行分析。


     

    17. Explain the three basic delivery steps for conformed dimensions.

    简述对一致性维度的三种基本的交付步骤。

    答:数据整合的关键就是生成一致性维度,再通过一致性维度将来自不同数据源的事实数据合并到一起,供分析使用。通常来说,生成一致性维度有如下三个步骤:

    1.标准化(Standardizing)

    标准化的目的是使不同数据源的数据编码方式,数据格式等相同,为下一步数据匹配打下基础。

    2.匹配(Matching and Deduplication)

    数据匹配的工作有两种,一种是将不同数据源的标识同一事物的不同属性匹配到一起,是数据更完善;另一种是将不同数据源的相同数据标识成重复,为下一步的筛选打下基础。

    3.筛选(Surviving)

    数据筛选的主要目的是选定一致性维度作为主数据(Master Data),也就是最终交付的一致性维度数据。


     

    18. Name the three fundamental fact grains and describe an ETL approach for each.

    简述三种基本事实表,并说明ETL的过程中如何处理它们。

    答:事实表从粒度的角色来划分可以分为三类,分别是交易粒度事实表(Transaction Grain)、周期快照粒度事实表(Periodic Snapshot)和累计快照粒度事实表(Accumulating Snapshot)。在事实表的设计时,一定要注意一个事实表只能有一个粒度,不能将不同粒度的事实建立在同一张事实表中。

    交易粒度事实表的来源伴随交易事件成生的数据,例如销售单。在ETL过程中,以原子粒度直接进行迁移。

    周期快照事实表是用来记录有规律的,固定时间间隔的业务累计数据,例如库存日快照。在ETL过程中,以固定的时间间隔生成累计数据。

    累积快照事实表用来记录具有时间跨度的业务处理过程的整个过程的信息。在ETL过程中,随着业务处理过程的步骤逐步完善该表中的记录。


     

    19. How are bridge tables delivered to classify groups of dimension records associated to a singlefact?

    简述桥接表是如何将维度表和事实表进行关联的?

    答:桥接表(Bridge Table)是维度建模中的一类比较特殊的表。

    在数据仓库的建模时,会遇到具有层次结构的维度表,对于这样的表有一种建模方式是建立父子表,即每条记录上包括一个指向其父记录的字段。这种父子表的建立在层级深度可变时尤其有用,是一个紧凑而有效的建模方式。但是这种建模方式也有缺点,就是用标准SQL很难对递归结构进行操作。

    与这种递归结构的父子表不同,桥接表采用不同的建模方式也可以表示这种层级结构。桥接表是建立在维度表和事实表中间的一个具有较多冗余信息的表,其中的记录包含层级结构中节点到其下面每个节点的路径。表结构如下所示:

    • 父关键字
    • 子关键字
    • 父层数
    • 层名
    • 底端标识
    • 顶端标识

    在桥接表中,节点与其下面的任意一个节点都建立一个关联记录保存在表中,即父子关系不再局限在相邻层,如第一层与第三层同样有父子关系,通过父层数可以区分相隔了几层。这样,可以通过父层数和父子关系来进行层级结构的查询。

    当然,桥接表也不是一个完备的解决方案,它只能是在某些情况下是查询变得容易。


     

    20. How does late arriving data affect dimensions and facts? Share techniques for handling each.

    迟到的数据对事实表和维度表有什么影响?怎样来处理这个问题?

    答:迟到的数据分为两种,一种是迟到的事实表数据,另一种是迟到的维度表数据。

    对于迟到的事实记录,我们可以插入到相应的事实表中。在插入的同时,还需要做一些处理。首先,对于具有SCD TYPE 2型维度的事实记录需要在插入前判断该事实记录的发生日期到目前为止,维度记录是否发生过变化,如果有变化,该事实记录需要对应到事实发生时的维度记录上。其次,在事实记录插入完成后,与该事实表相关的聚集事实表和合并事实表需要做相应的处理。

    对于迟到的维度记录,我们需要做的处理要复杂一些。首先,如果迟到的维度记录是第一次进入数据仓库中,那么需要在维度表中生成一条维度记录,并将与该维度记录对应的事实记录的外键进行更新。其次,如果迟到的维度记录是对原维度进行的修改,那么我们在维度表中生成一条新记录的同时,还需要找到维度本次变化到下次变化间的事实行,并将其维度外键更新为新加维度的代理关键字。


     

    21. Describe the different types of ETL metadata and provide examples of each.

    举例说明各种ETL过程中的元数据。

    答:元数据是ETL项目组面对的一个非常重要的主题,对于整个数据仓库项目也是非常重要的一部分。对于元数据的分类和使用没有很确定的定义。

    通常来说,我们可以把元数据分为三类,分别为业务元数据(Business Metadata),技术元数据(Technical Metadata)和过程处理元数据(Process Execution Metadata)。

    业务元数据,是从业务的角度对数据的描述。通常是用来给报表工具和前端用户对数据进行分析和使用提供帮助。

    技术元数据,是从技术的角度对数据的描述。通常包括数据的一些属性,如数据类型、长度、或者数据概况分析后一些结果。

    过程处理元数据,是ETL处理过程中的一些统计数据,通常包括有多少条记录被加载,多少条记录被拒绝接受等数据


     

    22. Share acceptable mechanisms for capturing operational metadata.

    简述获取操作型元数据的方法。

    答:操作型元数据(Operational Metadata),也就是过程处理元数据,记录的是ETL过程中数据迁移情况,如上次迁移日期,加载的记录数等信息。这部分元数据在ETL加载失败时会非常重要。

    一般来说,对于使用ETL工具的数据加载,像迁移调度时间、迁移调度顺序,失败处理等内容都可以在由在迁移工具中定义生成。像上次迁移日期等数据可以建表保存。

    如果是手工编写ETL程序的话,操作型元数据的处理会麻烦一些,需要自己来获取和存储。获取的方式,不同的编程方式会不尽相同。


     

    23. Offer techniques for sharing business and technical metadata. Optimization/Operations

    简述共享业务元数据和技术元数据的方法。

    答:为了能共享各种元数据,在数据仓库的构建过程中必须要有一些元数据标准,并在实际开发中遵守这些标准。这些标准包括元数据命名规则、存储规则及共享规则等内容。有关元数据标准的内容可以参看公共仓库元模型(Common Warehouse Metamodel,CWM)的相关资料 。

    在最基本的层面上,企业应该在下面三个方面制定好标准。

    1.命名规则

    命名规则应该在ETL组开始编码前制定好,范围包括表、列、约束、索引等等数据库对象以及其他一些编码规则。如果企业有自己的命名规则,ETL组应该遵守企业的命名规则。当企业的命名规则不能完全满足需求时,ETL组可以制定补充规则或者新的规则。对企业命名规则的改变需要有详细的文档记录,并提交企业相关部门审核。

    2.架构

    在ETL组开始工作前,架构应该先被设计好。例如ETL引擎是和数据仓库放在同一台服务器上还是单独设立服务器;数据准备区是建立成临时的还是持久的;数据仓库是基于维度建模的还是3NF建模的。并且这些内容应该有详细的文档记录。

    3.基础结构

    系统的基础结构也应该先确定好。例如解决方案是基于Windows的还是基于UNIX的。这些企业基础结构元数据应该在ETL组开始工作前制定好。这些内容也应该有详细的文档记录。

    在ETL的开发中,制定好元数据标准并能很好的遵守,那么建立好的数据仓库的元数据就可以很好的完成共享功能。


     

    24. State the primary types of tables found in a data warehouse and the order which they must be loaded to enforce referential integrity.

    简述数据仓库中的表的基本类型,以及为了保证引用完整性该以什么样的顺序对它们进行加载。

    答:数据仓库中的表的基本类型有维度表、事实表、子维度表、桥接表等几类。其中子维度表即雪花模型由支架维度技术处理,桥接表用来处理多值维度或层级结构。

    数据仓库中需要加载的各类表之间有相互依赖的关系,所以加载时需要以一定的顺序进行加载。下面是一些加载的基本原则:

    1. 子维度表加载成功后,再加载维度表。
    2. 维度表加载成功后,再加载桥接表。
    3. 子维度表、维度表和桥接表都加载成功后,再加载事实表。

    这个加载顺序可以通过主外键的关系来确定。(注意,此回答为总线架构的数据仓库的表的加载顺序。)


     

    25. What are the characteristics of the four levels of the ETL support model?

    简述ETL技术支持工作的四个级别的特点。

    答:数据仓库上线后,ETL组需要为保证ETL工作的正常运行提供技术支持。通常这种技术支持工作分为四个级别。

    1.第一级别的技术支持通常是电话支持人员,属于技术支持服务窗口(Help Desk)类型。如果数据迁移出现错误或者用户发现数据有问题,问题通过电话反映到第一级别的技术支持处。第一级别支持人员通过ETL项目组提供的一些问题的解决办法尽可能的解决发现的问题,阻止问题升级。

    2.第二级别的技术支持通常是系统管理员和DBA。如果第一级别不能解决问题,问题反映到第二级别。第二级别的人员通常技术上比较强,硬件基础结构和软件架构上的问题都可以解决。

    3.第三级别的技术支持通常是ETL项目负责人。如果第二级别不能解决问题,问题反映到第三级别。ETL项目负责人应该具备足够的知识,能够解决生产环境中的绝大部分问题。ETL项目负责人在必要时可以和开发人员或者外部产品提供商对某些问题进行交流,以便找出解决问题的办法。

    4.第四级别的技术支持通常是ETL的实际开发人员。如果第三级别不能解决问题,问题反映到第四级别。ETL的实际开发人员可以对代码进行跟踪分析并找到问题的解决办法。如果问题出现在产品供应商的应用中,还需要供应商提供技术支持。

    在小一些的数据仓库环境中,也是通常的情况下,第三级别和第四级别可以合并在一起。合并后对第二级别的要求会高一些。不建议每次出现问题都找ETL的开发人员。第一级别的技术支持人员不应该仅仅提供电话支持服务,在将问题反映给下一个级别前,要尽自己的能力去解决问题。


     

    26. What steps do you take to determine the bottleneck of a slow running ETL process?

    如果ETL进程运行较慢,需要分哪几步去找到ETL系统的瓶颈问题。

    答:ETL系统遇到性能问题,运行很慢是一件较常见的事情,这时要做的是逐步找到系统的瓶颈在哪里。

    首先要确定是由CPU、内存、I/O和网络等产生的瓶颈,还是由ETL处理过程产生的瓶颈。

    如果环境没有瓶颈,那么需要分析ETL的代码。这时,我们可以采用排除的方法,需要隔离不同的操作,并分别对它们进行测试。如果是采用纯手工编码方式的ETL处理,隔离不同的操作要麻烦一些,这时需要根据编码的实际情况来处理。如果是采用ETL工具的话,目前的ETL工具应该都有隔离不同处理的功能,隔离起来相对容易一些。

    分析最好从抽取操作开始,然后依次分析各种计算、查找表、聚集、过滤等转换环节的处理操作,最后分析加载操作。

    实际的处理中,可以按照下面的七个步骤来查找瓶颈。

    1.隔离并执行抽取查询语句。

    先将抽取部分隔离出来,去掉转换和交付,可以将数据直接抽取到文件中。如果这一步效率很差,基本确定是抽取SQL的问题。从经验来看,未经调优的SQL是一个最常见的导致ETL效率差的原因。如果这步没有问题进入第二步。

    2.去掉过滤条件。

    这一条是针对全抽取,然后在ETL处理中进行过滤的处理方式而言。在ETL处理中做过滤处理有时会产生瓶颈。可以先将过滤去掉,如果确定为这个原因,可以考虑在抽取时进行数据过滤。

    3.排除查找表的问题。

    参照数据在ETL处理过程中通常会加载到内存中,目的是做代码和名称的查找替换,也称查找表。有时查找表的数据量过大也会产生瓶颈。可以逐个隔离查找表,来确定是否是这里出现问题。注意要将查找表的数据量降到最低,通常一个自然键一个代理键就可以,这样可以减少不必要的数据I/O。

    4.分析排序和聚集操作。

    排序和聚集操作都是非常费资源的操作。对这部分隔离,来判断是否因为它们引起性能问题。如果确定是因为这个,需要考虑是否可以将排序和聚集处理移出数据库和ETL工具,移到操作系统中来处理。

    5.隔离并分析每一个计算和转换处理。

    有时转换过程中的处理操作也会引起ETL工作的性能。逐步隔离移除它们来判断哪里出了问题。要注意观察像默认值、数据类型转换等操作。

    6.隔离更新策略。

    更新操作在数据量非常大时是性能非常差的。隔离这部分,看看是否这里出了问题。如果确定是因为大批量更新出了性能问题。应该考虑将insert、update和delete分开处理。

    7.检测加载数据的数据库I/O。

    如果前面各部分都没有问题,最后需要检测是目标数据库的性能问题。可以找个文件代替数据库,如果性能提高很多,需要仔细检测目标数据库的加载过程中的操作。例如是否关闭了所有的约束,关闭了所有的索引,是否使用了批量加载工具。如果性能还没有提高,可以考虑使用并行加载策略。


     

    27. Describe how to estimate the load time of a large ETL job.

    Real Time ETL

    简述如何评估大型ETL数据加载时间。

    答:评估一个大型的ETL的数据加载时间是一件很复杂的事情。数据加载分为两类,一类是初次加载,另一类是增量加载。

    在数据仓库正式投入使用时,需要进行一次初次加载,而这次初次加载需要的时间一般较难预料。在数据仓库的日常使用和维护中,每天需要对数据仓库进行增量加载。增量加载的数据量要比初次加载小很多。

    下面以初次加载为例来谈谈如何评估大型ETL的数据加载时间。

    对初次加载的加载时间进行预估,需要将整个ETL过程分成抽取、转换和加载三部分,分别对这三部分进行评估。

    1.对抽取时间的评估。

    抽取通常占用的ETL的大部分时间,而且对这部分需要时间的评估也是非常困难的。为了对这部分时间进行评估,我们可以将查询时间分成两部分,一部分是查询响应时间,另一部分是数据返回时间。查询响应时间指从查询开始执行到结果开始返回这段时间。数据返回时间指第一条记录返回到最后一条记录返回的时间。

    另外,初次加载的数据量太大,我们可以考虑选择其中的一部分来评估整体的时间,实际处理中,可以选择事实表的一个分区。一般来说各个分区的数据量差不多,评估出一个分区的时间,乘上分区数可以作为整体的评估时间。

    2.对数据转换时间的评估

    数据转换工作通常在内存中完成,一般来说都有着非常快的速度,占总体时间的比重比较小。如果要评估这部分需要的时间的话,最简单的评估方法是先评估出抽取时间和加载时间,然后运行整个过程,用整体时间减去抽取时间和加载时间。

    3.对加载时间的评估

    很多原因都可能影响加载时间,其中最重要的两个分别是索引和日志。

    对加载时间的评估,也可以像评估抽取时间时一样,选择加载数据的一部分,如1/200进行加载,计算出时间后乘以200来作为整体加载时间。

    总之,大型ETL数据的加载时间的评估是很困难的,我们采用的方法主要是类比评估,即选择一部分数据减少整体时间进行评估。在进行评估时要注意到测试环境和生产环境的配置等的差别会引起评估结果的偏差。虽然这种对时间的评估一定会有误差,但是可以做为整体加载时间的一个参考。


     

    28. Describe the architecture options for implementing real-time ETL.

    简述在架构实时ETL时的可以选择的架构部件。

    答:在建立数据仓库时,ETL通常都采用批处理的方式,一般来说是每天的夜间进行跑批。

    随着数据仓库技术的逐步成熟,企业对数据仓库的时间延迟有了更高的要求,也就出现了目前常说的实时ETL(Real-Time ETL)。实时ETL是数据仓库领域里比较新的一部分内容。

    在构建实时ETL架构的数据仓库时,有几种技术可供选择。

    1.微批处理(microbatch ETL,MB-ETL)

    微批处理的方式和我们通常的ETL处理方式很相似,但是处理的时间间隔要短,例如间隔一个小时处理一次。

    2.企业应用集成(Enterprise Application Integration,EAI)

    EAI也称为功能整合,通常由中间件来完成数据的交互。而通常的ETL称为数据整合。

    对实时性要求非常高的系统,可以考虑使用EAI作为ETL的一个工具,可以提供快捷的数据交互。不过在数据量大时采用EAI工具效率比较差,而且实现起来相对复杂

    3.CTF(Capture, Transform and Flow)

    CTF是一类比较新的数据整合工具。它采用的是直接的数据库对数据库的连接方式,可以提供秒级的数据。CTF的缺点是只能进行轻量级的数据整合。通常的处理方式是建立数据准备区,采用CTF工具在源数据库和数据准备区的数据库之间相连接。数据进入数据准备区后再经过其他处理后迁移入数据仓库。

    4.EII(Enterprise Information Integration)

    EII是另一类比较新的数据整合软件,可以给企业提供实时报表。EII的处理方式和CTF很相似,但是它不将数据迁移入数据准备区或者数据仓库,而是在抽取转换后直接加载到报表中。

    在实际建立实时ETL架构的数据仓库时,可以在MB-ETL, EAI, CTF, EII及通常的ETL中作出选择或者进行组合。


     

    29. Explain the different real-time approaches and how they can be applied in different business scenarios.

    简述几种不同的实时ETL实现方法以及它们的适用范围。

    答:实时数据仓库在目前来说还不是很成熟,成功案例也比较少,下面列举了一些实时数据仓库架构的实现方法。

    1.EII ONLY

    使用EII技术来代替实时的数据仓库,数据延迟可以保证在1分钟左右,支持数据整合的复杂程度较低。无法保存历史数据。

    2.EII + Static DW

    使用EII技术联合非实时的数据仓库,数据延迟可以保证在1分钟左右,1天内的数据整合的复杂程度较低,1天前的数据整合的复杂程度可以较高。可以保存历史数据。

    3.ETL + Static DW

    普通的ETL处理,数据延迟在1天。支持复杂程度较高的数据整合。保存历史数据。

    4.CTF + Real-Time Partition + Static DW

    使用CTF技术建立实时数据仓库,数据延迟可保证在15分钟左右。数据整合的复杂程度较低。保存历史数据。

    5.CTF + MB-ETL + Real-Time Partition + Static DW

    使用CTF技术和MB-ETL联合处理数据迁移,数据延迟可保证在1小时左右,支持数据整合的复杂程度较高,保存历史数据。

    6.MB-ETL + Real-Time Partition + Static DW

    直接使用MB-ETL建立实时数据仓库,数据延迟可保证在1小时左右,支持数据整合的复杂程度较高,保存历史数据。

    7.EAI + Real-Time Partition + Static DW

    使用EAI技术建立实时数据仓库,数据延迟可保证在1分钟左右,支持数据整合的复杂程度较高。保存历史数据。


     

    30. Outline some challenges faced by real-time ETL and describe how to overcome them.

    简述实时ETL的一些难点及其解决办法。

    答:实时ETL的引入给数据仓库的建设带来了很多新的问题和挑战,下面列举了一些问题,其中有些问题有具体的解决办法,有些只能在实际情况下去斟酌。

    1.连续的ETL处理对系统可靠性提出更高的要求。

    2.离散快照数据的间隔时间变短。

    3.缓慢变化维变成快速变化维。

    4.如何确定数据仓库中数据的刷新频率。

    5.目的是只出报表还是要实现数据整合。

    6.做数据整合还是应用整合。

    7.采用点对点的方式还是集中的方式。

    原文地址

    http://blog.sina.com.cn/s/blog_5745722a0100t9cn.html

    http://blog.sina.com.cn/s/blog_5745722a0100t9ct.html

    http://blog.sina.com.cn/s/blog_5745722a0100t9d5.html

     
    posted on 2017-02-06 14:59 Jeremy,Zhang 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/zhangjunjie0228/p/6370361.html

    展开全文
  • ETL 开发相关

    2012-03-13 16:08:24
    ETL 开发相关
    ETL 开发相关
    展开全文
  • ETL开发流程小记(1)

    2019-11-28 16:32:27
    [原创]ETL开发流程随笔ETL开发ETL工作目标ETL工作目的主要有:ETL工作流程准备工作ETL设计ETL开发ETL测试功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成...

    ETL开发

    数据仓库ODS到DWD的ETL工作流程记录
    

    ETL工作目标

    目前我们做销售主题域下的ODS-DWD层的ETL工作,我准备把 工作中遇到的问题和想法记录下来,好的开始我们的主题

    ETL工作目的主要有:

    		1.源系统ERP各城市库的整合
    		2.每个城市不同规则的统一、数据转换
    		3.数据缺失值的处理(填充的规则怎么定)
    		4.异常值的处理
    		5.内容中不该出现或者存在的字符处理(寻找我们应用的数据的前端校验设计是否良好)
    		6.去重处理
    		还有个问题是 例如 房源表在其他系统中是否存在我们想要的数据
    

    ETL工作流程

    准备工作
    逻辑设计
    ETL脚本开发
    脚本自测
    • 准备工作-ETL设计-脚本开发-脚本自测

    准备工作

    1.各城市库整合,按城市分区过程中收集各城市系统存在的数据格式不统一的问题
    	ETL设计-数据格式需求.doc
    2.准备好 数据仓库dwd层建表DDL	-->
    	销售主题域DW层定版-20191119.xlsx
    	其中包含维度表、事实表的数据字典、修改日志、字段的ddl 构成语句
    	数据仓库数据字典0802.xlsx
    	为源系统的数据字典
    3.审核确定事实维度表的加载策略,变更内容、变更记录
    4.清洗规则说明.doc
    5.脚本规范说明
    6.脚本模版说明
    

    ETL开发上线包

    主要任务介绍上线包文件组成

    ETL开发模版统一和规范

    • 统一出事和周期开发脚本模版
    • 统一数据处理变更脚本模版
    • 统一应用开发脚本模版
    • 统一Sql 文件脚本模版
    • 统一ETL逻辑设计文档模版
    • 规范类型转换
    • 规范脚本测试和自测
    • 规范自动调度系统配置

    ETL设计

    • 主要任务:
      完成ETL过程设计
      (数据整合、转换、清洗、数据勘查的设计)
      • 输出:
        数据缺失异常值校验.xlsx
        ETL映射表.xlsx
        ETL实施方案.xlsx
      • 此表中包含
        ods层到dwd 或者中间表的 映射
        ETL工作者归属
        每个表的清洗、整合逻辑记录在此表

    ETL开发

    • 主要任务:
      根据ETL设计的逻辑开发脚本
      • 输入:
        数据仓库数据字典0802.xlsx
        ETL映射表.xlsx
        ETL实施方案.xlsx
        销售主题域DW层定版-20191119.xlsx
      • 输出:
        初始化/周期/数据处理/代码表/sql脚本/mapreduceJob/sparkJob

    ETL测试

    自动调度系统配置

    待完善

    展开全文
  • 自己是个传统的数据库开发人员,etl开发工程师 中级 在大数据的冲击下,感觉自己的能力跟不上 为了能搭上大数据这波洪流,我该怎么做? 恳请: 各位道友引导指路邪 ...
  • ETL开发工具Kettle中表输入问题,在表输入的过程中有可能老是导不进去
  • Hydrograph, 大型数据的可视化ETL开发与调试工具 Hydrograph是一个强大的ETL工具,允许开发人员使用简单的drag-and-drop接口创建复杂的图形。 用户通过使用Hydrograph连接输入。转换和输出组件来构建ETL图。 用户...
  • ETL开发概述ETL是数据仓库的后台,主要包含抽取、清洗、规范化、提交四个步骤,传统数据仓库一般分为四层模型。分层的作用:1.划分ETL阶段工作重心,便于管理2.降低开发和维护成本3.减...
  • 实现过程–ETL开发.ppt

    2020-06-01 21:51:46
    主要讲解了ETL的原理,以及相关的开发技术,工具的使用等,适合初学者看,如果您是ETL高手,请飘过……
  • 文章目录13 数据仓库的设计一、维度建模的基本概念二、维度建模的三种方式三、本项目中数据仓库的设计事实表设计维度表设计数据仓库ETL开发hive数据库建表以及加载数据hive数据表的拆分 13 数据仓库的设计 一、维度...
  • ETL开发 Kettle案例

    2018-03-25 21:08:57
    Kettle 数据抽取, CDC快照更新 ,清洗和校验 ,处理维度表,数据分流,去重加载,调度
  • 在数据仓库ETL开发中,当以增量的方式进行数据同步时,会将数据表中的时间字段作为增量字段获取增量数据。对于MySQL数据库来说,总结了以下日期表示以及需要注意的问题。 一、需要注意的问题: 查看MySQL数据库的...
  • 文章讲的是Informatica保障江苏电信规范化ETL开发,Informatica产品帮助江苏电信构建起一个统一集中管理ETL平台,管理人员不需再维护EDA中多个系统的不同ETL平台,大大节约了运维管理成本,同时提升了数据管理的效率...
  • 第一天来到新公司的volg (ETL开发工程师) 新的改变 首先自我介绍一下,我是一名刚刚大学毕业的程序猿,在大学完了两年,到最后大三一年才开始认真的去学习编程的各种知识,开源框架,看视频代码。现在是大数据时代...
  • ETL开发面试题集

    千次阅读 2018-03-13 09:28:00
    ETL讲解(很详细!!!) ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。ETL是BI项目重要的一个环节...
  • ——定义源及目标结构设计转换规则,生成ETL映射 Repository Manager ——元数据资料库,依赖性分析,安全性管理等 Repository Server Administrator Console ——Repository的建立与维护 Workflow Manager ——合理...
  • SAP ETL开发规范

    千次阅读 2018-07-03 15:16:51
    1 介绍SAP Business Objects数据服务是一种提取,转换和加载(ETL)工具,用于在源环境和目标环境之间移动和操作数据。 SAP数据服务提供了一个数据管理平台,可支持各种举措,包括商业智能,数据迁移,应用程序集成...
  • 平安ETL开发面试积累

    2020-07-16 22:37:07
    ETL是什么?   ETL的英文全称叫做Extraction(抽取)Transformation(转换)Loading(加载),Extraction就是指将数据从一个数据源或者多个数据源抽取过来的一个动作,数据源可能是关系型的数据库、表,也可能是...
  • 数据仓库ETL开发如何进行测试

    千次阅读 2009-11-18 12:31:00
    数据仓库ETL开发如何进行测试?数据仓库ETL开发如何进行测试?由于数据仓库中数据量比较庞大,还有为了安全因素,一般在开发库和测试库数据不完全或者和生成库(正式库)不一致,导致在测试库和开发库中进行代码测试...
  • 数据仓库(四)之ETL开发

    万次阅读 多人点赞 2018-09-16 22:56:08
    ETL是数据仓库的后台,主要包含抽取、清洗、规范化、提交四个步骤,传统数据仓库一般分为四层模型。    分层的作用    STG层  在维度建模阶段已经确定了源系统,而且对源系统进行了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,026
精华内容 810
关键字:

etl开发