注:前言、目录见 https://blog.csdn.net/qq_44220418/article/details/108428971

Tips:本节内容偏概念性,做简单了解即可

文章目录

  • 一、ETL介绍
    • 1、背景
    • 2、ETL介绍
    • 3、数据处理流程
    • 4、ETL的优点
    • 5、ETL的目的
  • 二、数据处理
    • 1、数据处理的两条线
    • 2、传统ETL数据处理的方式
      • (1).方式一:数据库外部ETL
      • (2).方式二:数据上载到数据库的存储区域(Stage)再进行ETL
    • 3、ETL设计
      • (1).并行分段ETL设计
      • (2).ETL容错性设计
    • 4、常用的ETL工具软件

一、ETL介绍

1、背景

企业数据整合的复杂多样性

  • 庞大及不断增加的数据量
      对员工、软硬件构成压力
  • 分散而没有文档的数据来源
      开发人员离职,也带走了知识和经验
      费时的数据定性工作
  • 数据质量及相容问题
      分散的数据来源无法做到单一客户观
      数据来源本身或许有数据质量问题
  • 复杂度和数据量的取舍
      复杂的数据转换无法在短时间内完成
  • 不同工具之间如何共享元数据
      数据定义不同意,在数据流程中容易产生错误
      用户需要重新了解和把元数据输入不同的工具
  • 如何整合由不同供应商提供的系统
      在企业数据整合之前,先要整合多种不同工具和管理多家不同供应商

以上这些都会导致一个问题——元数据不可用、需要调整

2、ETL介绍

ETLExtract-Transform-Load,抽取-转换-加载系统是数据仓库的基础

一个设计良好的ETL系统从源系统抽取数据,执行数据质量和一致性标准,然后规格化数据,从而使分散的源数据可以集中在一起使用,最终再以可以展现的格式提交数据,以便开发者可以创建应用系统

ETL系统既能成就数据仓库也能毁了它,因为虽然创建ETL系统是后台工作,对于最终用户并不可见,但是对于实施和维护一个典型的数据仓库系统来说,所耗费的资源很容易达到70%

3、数据处理流程

4、ETL的优点

ETL系统能使数据明显地增值,它的工作也绝不是简单的把数据从源系统抽取到数据仓库中。

特别是,ETL系统能够

  • 消除错误数据并纠正缺失数据
  • 提供对于数据可信度的文档化衡量
  • 为保护数据获取相互作用的数据流程
  • 把多个源数据整合到一起
  • 将数据进行结构化,供最终用户使用

5、ETL的目的

有效使用信息的前提是整合数据。

在数据分析中,最忌讳的是把一些新的技术投入到项目中使用。

ETL的目的如下图所示

理想的经营分析ETL

  • 庞大及不断增加的数据量
      无限而线性的扩展性
  • 分散而没有文档的数据来源
      有效的数据描绘
  • 数据质量及相容问题
      数据质量及匹配
  • 复杂度和数据量的取舍
      有效的ETL功能
  • 不同工具之间如何共享元数据
      元数据管理
  • 如何整合由不同供应商提供的系统
      单一平台和供应商

二、数据处理

1、数据处理的两条线

#mermaid-svg-IyARpl5YZ05FTuag .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-IyARpl5YZ05FTuag .label text{fill:#333}#mermaid-svg-IyARpl5YZ05FTuag .node rect,#mermaid-svg-IyARpl5YZ05FTuag .node circle,#mermaid-svg-IyARpl5YZ05FTuag .node ellipse,#mermaid-svg-IyARpl5YZ05FTuag .node polygon,#mermaid-svg-IyARpl5YZ05FTuag .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-IyARpl5YZ05FTuag .node .label{text-align:center;fill:#333}#mermaid-svg-IyARpl5YZ05FTuag .node.clickable{cursor:pointer}#mermaid-svg-IyARpl5YZ05FTuag .arrowheadPath{fill:#333}#mermaid-svg-IyARpl5YZ05FTuag .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-IyARpl5YZ05FTuag .flowchart-link{stroke:#333;fill:none}#mermaid-svg-IyARpl5YZ05FTuag .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-IyARpl5YZ05FTuag .edgeLabel rect{opacity:0.9}#mermaid-svg-IyARpl5YZ05FTuag .edgeLabel span{color:#333}#mermaid-svg-IyARpl5YZ05FTuag .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-IyARpl5YZ05FTuag .cluster text{fill:#333}#mermaid-svg-IyARpl5YZ05FTuag div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-IyARpl5YZ05FTuag .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-IyARpl5YZ05FTuag text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-IyARpl5YZ05FTuag .actor-line{stroke:grey}#mermaid-svg-IyARpl5YZ05FTuag .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-IyARpl5YZ05FTuag .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-IyARpl5YZ05FTuag #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-IyARpl5YZ05FTuag .sequenceNumber{fill:#fff}#mermaid-svg-IyARpl5YZ05FTuag #sequencenumber{fill:#333}#mermaid-svg-IyARpl5YZ05FTuag #crosshead path{fill:#333;stroke:#333}#mermaid-svg-IyARpl5YZ05FTuag .messageText{fill:#333;stroke:#333}#mermaid-svg-IyARpl5YZ05FTuag .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-IyARpl5YZ05FTuag .labelText,#mermaid-svg-IyARpl5YZ05FTuag .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-IyARpl5YZ05FTuag .loopText,#mermaid-svg-IyARpl5YZ05FTuag .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-IyARpl5YZ05FTuag .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-IyARpl5YZ05FTuag .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-IyARpl5YZ05FTuag .noteText,#mermaid-svg-IyARpl5YZ05FTuag .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-IyARpl5YZ05FTuag .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-IyARpl5YZ05FTuag .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-IyARpl5YZ05FTuag .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-IyARpl5YZ05FTuag .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-IyARpl5YZ05FTuag .section{stroke:none;opacity:0.2}#mermaid-svg-IyARpl5YZ05FTuag .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-IyARpl5YZ05FTuag .section2{fill:#fff400}#mermaid-svg-IyARpl5YZ05FTuag .section1,#mermaid-svg-IyARpl5YZ05FTuag .section3{fill:#fff;opacity:0.2}#mermaid-svg-IyARpl5YZ05FTuag .sectionTitle0{fill:#333}#mermaid-svg-IyARpl5YZ05FTuag .sectionTitle1{fill:#333}#mermaid-svg-IyARpl5YZ05FTuag .sectionTitle2{fill:#333}#mermaid-svg-IyARpl5YZ05FTuag .sectionTitle3{fill:#333}#mermaid-svg-IyARpl5YZ05FTuag .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-IyARpl5YZ05FTuag .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-IyARpl5YZ05FTuag .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-IyARpl5YZ05FTuag .grid path{stroke-width:0}#mermaid-svg-IyARpl5YZ05FTuag .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-IyARpl5YZ05FTuag .task{stroke-width:2}#mermaid-svg-IyARpl5YZ05FTuag .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-IyARpl5YZ05FTuag .taskText:not([font-size]){font-size:11px}#mermaid-svg-IyARpl5YZ05FTuag .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-IyARpl5YZ05FTuag .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-IyARpl5YZ05FTuag .task.clickable{cursor:pointer}#mermaid-svg-IyARpl5YZ05FTuag .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-IyARpl5YZ05FTuag .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-IyARpl5YZ05FTuag .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-IyARpl5YZ05FTuag .taskText0,#mermaid-svg-IyARpl5YZ05FTuag .taskText1,#mermaid-svg-IyARpl5YZ05FTuag .taskText2,#mermaid-svg-IyARpl5YZ05FTuag .taskText3{fill:#fff}#mermaid-svg-IyARpl5YZ05FTuag .task0,#mermaid-svg-IyARpl5YZ05FTuag .task1,#mermaid-svg-IyARpl5YZ05FTuag .task2,#mermaid-svg-IyARpl5YZ05FTuag .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-IyARpl5YZ05FTuag .taskTextOutside0,#mermaid-svg-IyARpl5YZ05FTuag .taskTextOutside2{fill:#000}#mermaid-svg-IyARpl5YZ05FTuag .taskTextOutside1,#mermaid-svg-IyARpl5YZ05FTuag .taskTextOutside3{fill:#000}#mermaid-svg-IyARpl5YZ05FTuag .active0,#mermaid-svg-IyARpl5YZ05FTuag .active1,#mermaid-svg-IyARpl5YZ05FTuag .active2,#mermaid-svg-IyARpl5YZ05FTuag .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-IyARpl5YZ05FTuag .activeText0,#mermaid-svg-IyARpl5YZ05FTuag .activeText1,#mermaid-svg-IyARpl5YZ05FTuag .activeText2,#mermaid-svg-IyARpl5YZ05FTuag .activeText3{fill:#000 !important}#mermaid-svg-IyARpl5YZ05FTuag .done0,#mermaid-svg-IyARpl5YZ05FTuag .done1,#mermaid-svg-IyARpl5YZ05FTuag .done2,#mermaid-svg-IyARpl5YZ05FTuag .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-IyARpl5YZ05FTuag .doneText0,#mermaid-svg-IyARpl5YZ05FTuag .doneText1,#mermaid-svg-IyARpl5YZ05FTuag .doneText2,#mermaid-svg-IyARpl5YZ05FTuag .doneText3{fill:#000 !important}#mermaid-svg-IyARpl5YZ05FTuag .crit0,#mermaid-svg-IyARpl5YZ05FTuag .crit1,#mermaid-svg-IyARpl5YZ05FTuag .crit2,#mermaid-svg-IyARpl5YZ05FTuag .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-IyARpl5YZ05FTuag .activeCrit0,#mermaid-svg-IyARpl5YZ05FTuag .activeCrit1,#mermaid-svg-IyARpl5YZ05FTuag .activeCrit2,#mermaid-svg-IyARpl5YZ05FTuag .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-IyARpl5YZ05FTuag .doneCrit0,#mermaid-svg-IyARpl5YZ05FTuag .doneCrit1,#mermaid-svg-IyARpl5YZ05FTuag .doneCrit2,#mermaid-svg-IyARpl5YZ05FTuag .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-IyARpl5YZ05FTuag .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-IyARpl5YZ05FTuag .milestoneText{font-style:italic}#mermaid-svg-IyARpl5YZ05FTuag .doneCritText0,#mermaid-svg-IyARpl5YZ05FTuag .doneCritText1,#mermaid-svg-IyARpl5YZ05FTuag .doneCritText2,#mermaid-svg-IyARpl5YZ05FTuag .doneCritText3{fill:#000 !important}#mermaid-svg-IyARpl5YZ05FTuag .activeCritText0,#mermaid-svg-IyARpl5YZ05FTuag .activeCritText1,#mermaid-svg-IyARpl5YZ05FTuag .activeCritText2,#mermaid-svg-IyARpl5YZ05FTuag .activeCritText3{fill:#000 !important}#mermaid-svg-IyARpl5YZ05FTuag .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-IyARpl5YZ05FTuag g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-IyARpl5YZ05FTuag g.classGroup text .title{font-weight:bolder}#mermaid-svg-IyARpl5YZ05FTuag g.clickable{cursor:pointer}#mermaid-svg-IyARpl5YZ05FTuag g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-IyARpl5YZ05FTuag g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-IyARpl5YZ05FTuag .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-IyARpl5YZ05FTuag .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-IyARpl5YZ05FTuag .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-IyARpl5YZ05FTuag .dashed-line{stroke-dasharray:3}#mermaid-svg-IyARpl5YZ05FTuag #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-IyARpl5YZ05FTuag #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-IyARpl5YZ05FTuag #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-IyARpl5YZ05FTuag #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-IyARpl5YZ05FTuag #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-IyARpl5YZ05FTuag #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-IyARpl5YZ05FTuag #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-IyARpl5YZ05FTuag #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-IyARpl5YZ05FTuag .commit-id,#mermaid-svg-IyARpl5YZ05FTuag .commit-msg,#mermaid-svg-IyARpl5YZ05FTuag .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-IyARpl5YZ05FTuag .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-IyARpl5YZ05FTuag .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-IyARpl5YZ05FTuag g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-IyARpl5YZ05FTuag g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-IyARpl5YZ05FTuag g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-IyARpl5YZ05FTuag g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-IyARpl5YZ05FTuag g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-IyARpl5YZ05FTuag g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-IyARpl5YZ05FTuag .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-IyARpl5YZ05FTuag .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-IyARpl5YZ05FTuag .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-IyARpl5YZ05FTuag .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-IyARpl5YZ05FTuag .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-IyARpl5YZ05FTuag .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-IyARpl5YZ05FTuag .edgeLabel text{fill:#333}#mermaid-svg-IyARpl5YZ05FTuag .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-IyARpl5YZ05FTuag .node circle.state-start{fill:black;stroke:black}#mermaid-svg-IyARpl5YZ05FTuag .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-IyARpl5YZ05FTuag #statediagram-barbEnd{fill:#9370db}#mermaid-svg-IyARpl5YZ05FTuag .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-IyARpl5YZ05FTuag .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-IyARpl5YZ05FTuag .statediagram-state .divider{stroke:#9370db}#mermaid-svg-IyARpl5YZ05FTuag .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-IyARpl5YZ05FTuag .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-IyARpl5YZ05FTuag .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-IyARpl5YZ05FTuag .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-IyARpl5YZ05FTuag .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-IyARpl5YZ05FTuag .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-IyARpl5YZ05FTuag .note-edge{stroke-dasharray:5}#mermaid-svg-IyARpl5YZ05FTuag .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-IyARpl5YZ05FTuag .error-icon{fill:#522}#mermaid-svg-IyARpl5YZ05FTuag .error-text{fill:#522;stroke:#522}#mermaid-svg-IyARpl5YZ05FTuag .edge-thickness-normal{stroke-width:2px}#mermaid-svg-IyARpl5YZ05FTuag .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-IyARpl5YZ05FTuag .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-IyARpl5YZ05FTuag .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-IyARpl5YZ05FTuag .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-IyARpl5YZ05FTuag .marker{fill:#333}#mermaid-svg-IyARpl5YZ05FTuag .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-IyARpl5YZ05FTuag .all > * { font-weight: bold !important; height: max-content !important; } #mermaid-svg-IyARpl5YZ05FTuag .all tspan { !important; } #mermaid-svg-IyARpl5YZ05FTuag .io > * { font-weight: bold !important; fill:#80E0FF !important; stroke: #6666FF !important; } #mermaid-svg-IyARpl5YZ05FTuag .io tspan { !important; }#mermaid-svg-IyARpl5YZ05FTuag {color: rgba(0, 0, 0, 0.75);font: ;}

规划与设计
数据流
测试/发布
实现
架构
需求/现状
提交
格式化
清洗
抽取

2、传统ETL数据处理的方式

(1).方式一:数据库外部ETL

风险和缺点
扩展性差
缺乏数据恢复能力
难于维护
没有充分利用数据库的处理能力

(2).方式二:数据上载到数据库的存储区域(Stage)再进行ETL

风险和缺点
数据库需要存储两份数据——原始数据、中间结果数据
数据库工具和语言对处理特殊的ETL问题没有优化

3、ETL设计

(1).并行分段ETL设计

  • E:抽取对源系统影响最小化
  • T:数据质量预处理保证数据正确、一致
  • L:并行专用接口装载,缩短ETL的时间窗口

元数据控制了ETL的数据映射、断点续抽、回滚及错误数据的判定和处理。

(2).ETL容错性设计

  • 1. 数据质量问题

    1. 对象级数据检查
    2. 对象内容的格式核查
    3. 数据质量检查及处理
    4. 数据报告
  • 2. 数据异常终止ETL
  • 3. 数据质量告警
  • 4. ETL功能接续
  • 5. 批量数据的回退

4、常用的ETL工具软件

公司 ETL工具
Ascential Datastage
IBM DB2 Warehouse Manager
ORACLE Oracle Warehouse Manager
Informatic Powermart
NCR Fastload
Sagent Sagent

基于ETL工具的优势

  • 开发过程简单、快速、低成本
  • 了解业务知识但不精通编程的技术人员也能够有效使用ETL工具
  • 很多ETL工具内部集成了元数据资料库,这样,源系统、目标数据库以及其他BI工具的元数据可以同步到这个元数据资料库中。
  • 大多数ETL工具在每个处理流程会自动产生元数据,从而强制所有的开发人员必须遵循一致的元数据驱动的方法论。
  • 大多数ETL工具都有内置的调度器,帮助生成文档、简化创建过程以及变更管理。如果系统发生故障,ETL工具会负责处理全部复杂的依赖关系以及差错控制。
  • ETL工具的元数据资料库能够自动的产生数据沿袭(便于反查)和数据依赖分析(便于前查)。
  • ETL工具为大多数源和目标系统设有预置的连接器。在技术层面,ETL 工具应当处理能够处理全部种类的数据类型转换。
  • ETL工具通常提供内嵌的加密和压缩功能。
  • ETL工具可以跨服务器的复杂的负载均衡,避免服务器死锁。
  • 当底层框架变更时,会对后续流程和应用造成影响,大多数ETL工具可以自动的进行这种“变更-冲击”分析。
  • 在指定的处理模块中,ETL工具可以使用编程语言进行扩展。

《ETL原理及应用》学习笔记 ·001【ETL介绍】相关推荐

  1. Unix原理与应用学习笔记----第六章 文件的基本属性2

    Unix原理与应用学习笔记----第六章 文件的基本属性2 改变文件权限命令:chmod 提示:文件或目录创建后,就被赋予一组默认的权限.所有的用户都有读,只有文件的所有者才有写. 相对权限设置 Ch ...

  2. DataCamp的intermediate python学习笔记(001)

    DataCamp DataScientist系列之intermediate python的学习笔记(001) 个人感悟:接触python是从2017年1月开始的,中间的学习之路也是断断续续的,学了忘, ...

  3. MATLAB学习笔记#001 获取矩阵大小

    MATLAB学习笔记#001 获取矩阵大小 size 函数 语法 说明 示例 参考链接 size 函数 语法 [sz1,...,szN] = size(___) 说明 返回矩阵各个维度的长度 示例 [ ...

  4. Hadoop学习笔记一 简要介绍

    Hadoop学习笔记一 简要介绍 这里先大致介绍一下Hadoop.     本文大部分内容都是从官网Hadoop上来的.其中有一篇介绍HDFS的pdf文档,里面对Hadoop介绍的比较全面了.我的这一 ...

  5. MongoDB学习笔记(一) MongoDB介绍及安装

    系列目录 MongoDB学习笔记(一) MongoDB介绍及安装     MongoDB学习笔记(二) 通过samus驱动实现基本数据操作     MongoDB学习笔记(三) 在MVC模式下通过Jq ...

  6. Typescript 学习笔记一:介绍、安装、编译

    前言 整理了一下 Typescript 的学习笔记,方便后期遗忘某个知识点的时候,快速回忆. 为了避免凌乱,用 gitbook 结合 marketdown 整理的. github地址是:ts-gitb ...

  7. Ui学习笔记---EasyUI的介绍

    Ui学习笔记---EasyUI的介绍 -------------------------- 1.组织:   a.EasyUI官方:http://www.jeasyui.com     EasyUI是一 ...

  8. 数据库原理及应用学习笔记

    在前面先记录一个不错的博客内容http://blog.codinglabs.org/articles/theory-of-mysql-index.html 这时在B站上看的东南大学的视频的学习笔记,主 ...

  9. vue.js 2.0 官方文档学习笔记 —— 01. vue 介绍

    这是我的vue.js 2.0的学习笔记,采取了将官方文档中的代码集中到一个文件的形式.目的是保存下来,方便自己查阅. !官方文档:https://cn.vuejs.org/v2/guide/ 01. ...

最新文章

  1. Xilinx SDK中分配变量的存储地址
  2. 像不像等待项目上线的你
  3. c++ 遍历所有点且距离最短_L3图论第08课 图的遍历
  4. Fiori 里周期性检查window size大小的变化
  5. 近指针, 远指针和巨指针
  6. 5种样式实现div容器中三图摆放实例对比说明
  7. linux getline函数用法,Linux文本处理三剑客之awk学习笔记05:getline用法详解
  8. open() api
  9. 手机基带芯片激荡 30 年!
  10. 码农们的聚餐,会复杂到什么程度?
  11. Windows 8 页面应用测试(1)
  12. 结合中断分析TCP/IP协议栈在LINUX内核中的运行时序
  13. windows内核基础
  14. 计算机c盘用户里的APPDATA,Windows7系统C盘中的appdata文件夹是否可以删除
  15. java面试,经常遇到面试官的问题
  16. 计算机硬件系统的主要性能指标
  17. android菜单键 r9,Android OPPO R9 后台 无法启动 Activity 问题
  18. pytorch中nn.Embedding和nn.LSTM和nn.Linear
  19. 实体之间的关系主要有以下两种
  20. 用一个易拉罐将家里的WiFi信号增强一倍

热门文章

  1. data-mask遮罩无法正常显示与编辑的问题
  2. 集成CAS单点登录 决策系统的配置以及注意事项
  3. java top类,Java8 Top Tips,java8toptips
  4. 移动端切图内容包括什么_ios移动端切图及前端规范
  5. html5视频播放器使用,视频站启用html5播放器
  6. python网络爬虫学习笔记(三):urllib库的使用
  7. ~~单调栈(数据结构)
  8. 车道线检测的学习笔记
  9. 如何在MATLAB中定义一些全局常量
  10. 【干货】60 余家免费正版图片网站