文档章节

数据仓库技术概述(一看就是架构师写的,对我极其有用)

gulf
 gulf
发布于 06/21 14:12
字数 2852
阅读 60
收藏 5

ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。

ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。

信息是现代企业的重要资源,是企业运用科学管理、决策分析的基础。目前,大多数企业花费大量的资金和时间来构建联机事务处理OLTP的业务系统和办公自动化系统,用来记录事务处理的各种相关数据。据统计,数据量每2~3年时间就会成倍增长,这些数据蕴含着巨大的商业价值,而企业所关注的通常只占在总数据量的2%~4%左右。因此,企业仍然没有最大化地利用已存在的数据资源,以至于浪费了更多的时间和资金,也失去制定关键商业决策的最佳契机。于是,企业如何通过各种技术手段,并把数据转换为信息、知识,已经成了提高其核心竞争力的主要瓶颈。而ETL则是主要的一个技术手段。

软件名称

 Extract-Transform-Load 

过    程

数据抽取、清洗、转换、装载

应    用

Informatica、OWB、DataStage

数据集成

快速实现ETL

工具应用

ETL工具的典型代表有:Informatica、Datastage、OWB、微软DTS、BeeloadKettle等等……

开源的工具有eclipse的etl插件:cloveretl

ETL的质量问题具体表现为正确性、完整性、一致性、完备性、有效性、时效性和可获取性等几个特性。而影响质量问题的原因有很多,由系统集成和历史数据造成的原因主要包括:业务系统不同时期系统之间数据模型不一致;业务系统不同时期业务过程有变化;旧系统模块在运营、人事、财务、办公系统等相关信息的不一致;遗留系统和新业务、管理系统数据集成不完备带来的不一致性。

实现ETL,首先要实现ETL转换的过程。体现为以下几个方面:

1、空值处理:可捕获字段空值,进行加载或替换为其他含义数据,并可根据字段空值实现分流加载到不同目标库。

2、规范化数据格式:可实现字段格式约束定义,对于数据源中时间、数值、字符等数据,可自定义加载格式。

3、拆分数据:依据业务需求对字段可进行分解。例,主叫号 861082585313-8148,可进行区域码和电话号码分解。

4、验证数据正确性:可利用Lookup及拆分功能进行数据验证。例如,主叫号861082585313-8148,进行区域码和电话号码分解后,可利用Lookup返回主叫网关或交换机记载的主叫地区,进行数据验证。

5、数据替换:对于因业务因素,可实现无效数据、缺失数据的替换。

6、Lookup:查获丢失数据 Lookup实现子查询,并返回用其他手段获取的缺失字段,保证字段完整性。

7、建立ETL过程的主外键约束:对无依赖性的非法数据,可替换或导出到错误数据文件中,保证主键唯一记录的加载。

 

体系结构

编辑

ETL工具目前有两种技术架构——ETL架构和ELT架构,不仔细看好像没什么不同之处,那么这两种架构到底有什么区别呢?

 

ETL架构

在ETL架构中,数据的流向是从源数据流到ETL工具,ETL工具是一个单独的数据处理引擎,一般会在单独的硬件服务器上,实现所有数据转化的工作,然后将数据加载到目标数据仓库中,如果要增加整个ETL过程的效率,则只能增强ETL工具服务器的配置,优化系统处理流程(一般可调的东西非常少)。IBM的datastage和Informatica的powercenter原来都是采用的这种架构。

ETL架构的优势:

  1. ETL可以分担数据库系统的负载(采用单独的硬件服务器)

  2. ETL相对于EL-T架构可以实现更为复杂的数据转化逻辑

  3. ETL采用单独的硬件服务器。.

  4. ETL与底层的数据库数据存储无关。

ELT架构

ELT架构中,ELT只负责提供图形化的界面来设计业务规则,数据的整个加工过程都在目标和源的数据库之间流动,ELT协调相关的数据库系统来执行相关的应用,数据加工过程既可以在源数据库端执行,也可以在目标数据仓库端执行(主要取决于系统的架构设计和数据属性)。当ELT过程需要提高效率,则可以通过对相关数据库进行调优,或者改变执行加工的服务器就可以达到。一般数据库厂商会力推该种架构,像OracleTeradata都极力宣传ELT架构。

ELT架构的优势:

  1. ELT主要通过数据库引擎来实现系统的可扩展性(尤其是当数据加工过程在晚上时,可以充分利用数据库引擎的资源)

  2. ELT可以保持所有的数据始终在数据库当中,避免数据的加载和导出,从而保证效率,提高系统的可监控性。

  3. ELT可以根据数据的分布情况进行并行处理优化,并可以利用数据库的固有功能优化磁盘I/O。

  4. ELT的可扩展性取决于数据库引擎和其硬件服务器的可扩展性。

  5. 通过对相关数据库进行性能调优,ETL过程获得3到4倍的效率提升一般不是特别困难。

 

注意事项

编辑

为了能更好地实现ETL,用户在实施ETL过程中应注意以下几点:

第一,如果条件允许,可利用数据中转区对运营数据进行预处理,保证集成与加载的高效性;

第二,如果ETL的过程是主动“拉取”,而不是从内部“推送”,其可控性将大为增强;

第三,ETL之前应制定流程化的配置管理和标准协议;

第四,关键数据标准至关重要。ETL面临的最大挑战是当接收数据时其各源数据的异构性和低质量。以电信为例,A系统按照统计代码管理数据,B系统按照账目数字管理,C系统按照语音ID管理。当ETL需要对这三个系统进行集成以获得对客户的全面视角时,这一过程需要复杂的匹配规则、名称/地址正常化与标准化。而ETL在处理过程中会定义一个关键数据标准,并在此基础上,制定相应的数据接口标准。

第五,将数据加载到个体数据集时。在没有一个集中化的数据库情况下,拥有数据模板是非常重要的。它们是标准化的接口,每一个个体或者部门数据集市都能够填充。确保你的ETL工具有这样的功能,能够扩展到一个数据仓库平台,将信息从一个数据集市流动到下一个。 [2] 

 

特色功能

编辑

ETL过程在很大程度上受企业对源数据的理解程度的影响,也就是说从业务的角度看数据集成非常重要。一个优秀的ETL设计应该具有如下功能:

 

管理简单

采用元数据方法,集中进行管理;接口、数据格式、传输有严格的规范;尽量不在外部数据源安装软件;数据抽取系统流程自动化,并有自动调度功能;抽取的数据及时、准确、完整;可以提供同各种数据系统的接口,系统适应性强;提供软件框架系统,系统功能改变时,应用程序很少改变便可适应变化;可扩展性强。

标准定义数据

合理的业务模型设计对ETL至关重要。数据仓库是企业唯一、真实、可靠的综合数据平台。数据仓库的设计建模一般都依照三范式、星型模型、雪花模型,无论哪种设计思想,都应该最大化地涵盖关键业务数据,把运营环境中杂乱无序的数据结构统一成为合理的、关联的、分析型的新结构,而ETL则会依照模型的定义去提取数据源,进行转换、清洗,并最终加载到目标数据仓库中。

模型的重要之处在于对数据做标准化定义,实现统一的编码、统一的分类和组织。标准化定义的内容包括:标准代码统一、业务术语统一。ETL依照模型进行初始加载、增量加载、缓慢增长维、慢速变化维、事实表加载等数据集成,并根据业务需求制定相应的加载策略、刷新策略、汇总策略、维护策略。

拓展新型应用

对业务数据本身及其运行环境的描述与定义的数据,称之为元数据(metadata)。元数据是描述数据的数据。从某种意义上说,业务数据主要用于支持业务系统应用的数据,而元数据则是企业信息门户、客户关系管理、数据仓库、决策支持和B2B等新型应用所不可或缺的内容。

元数据的典型表现为对象的描述,即对数据库、表、列、列属性(类型、格式、约束等)以及主键/外部键关联等等的描述。特别是现行应用的异构性与分布性越来越普遍的情况下,统一的元数据就愈发重要了。“信息孤岛”曾经是很多企业对其应用现状的一种抱怨和概括,而合理的元数据则会有效地描绘出信息的关联性。

元数据对于ETL的集中表现为:定义数据源的位置及数据源的属性、确定从源数据到目标数据的对应规则、确定相关的业务逻辑、在数据实际加载前的其他必要的准备工作,等等,它一般贯穿整个数据仓库项目,而ETL的所有过程必须最大化地参照元数据,这样才能快速实现ETL。

本文转载自:https://baike.baidu.com/item/ETL/1251949?fr=aladdin

共有 人打赏支持
gulf
粉丝 13
博文 277
码字总数 156947
作品 0
广州
程序员
私信 提问
大数据行业就业指南:三大方向 十大职位

当下,大数据的趋势已逐步从概念走向落地,而在IT人跟随大数据浪潮的转型中,各大企业对大数据高端人才的需求也越来越紧迫。这一趋势,也给想要从事大数据方面工作的人员提供了难得的职业机遇...

柯西带你学编程
05/27
0
0
程序员如何才能晋升为优秀的高薪架构师?

对于工作多年的程序员而言,日后的职业发展无非是继续专精技术、转型管理和晋升架构师三种选择。 今天,100offer从架构师在一家公司有多重要、优秀架构师需要具备怎样的素质以及架构师的发展...

野梦M
2017/12/04
0
0
大数据架构师拿年薪50W的方法诀窍

什么是大数据架构师: 围绕大数据系平台系统级的研发人员, 熟练Hadoop、Spark、Storm等主流大数据平台的核心框架。深入掌握如何编写MapReduce的作业及作业流的管理完成对数据的计算,并能够...

daidaiweng
04/12
0
0
传统数仓转型,如何避开数据处理的深坑

  【IT168 专稿】本文根据【2016 第七届中国数据库技术大会】现场演讲嘉宾张粤磊老师分享内容整理而成。录音整理及文字编辑IT168@田晓旭@老鱼。   嘉宾介绍: ▲飞谷云创始人 张粤磊   ...

it168网站
2016/07/20
0
0
Java架构师之路:从Java码农到年薪八十万的架构师

对于工作多年的程序员而言,日后的职业发展无非是继续专精技术、转型管理和晋升架构师三种选择。 架构师在一家公司有多重要、优秀架构师需要具备怎样的素质以及架构师的发展现状三个方面来分...

大齐老师
04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
14
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
19
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
19
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
9
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部