数据仓库-ETL

ETL 概念

ETL中三个字母分别代表的是Extract、Transform、Load,即抽取、转换、加载。

(1)数据抽取:从源数据源系统抽取目的数据源系统需要的数据;

(2)数据转换:将从源数据源获取的数据按照业务需求,转换成目的数据源要求的形式,并对错误、不一致的数据进行清洗和加工。

(3)数据加载:将转换后的数据装载到目的数据源。

ETL原本是作为构建数据仓库的一个环节,负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。现在也越来越多地将ETL应用于一般信息系统中数据的迁移、交换和同步。

2.ETL中的关键技术

ETL过程中的主要环节就是数据抽取、数据转换和加工、数据装载。为了实现这些功能,各个ETL工具一般会进行一些功能上的扩充,例如工作流、调度引擎、规则引擎、脚本支持、统计信息等。

3.主流ETL工具

ETL工具从厂商来看分为两种,一种是数据库厂商自带的ETL工具,如Oracle warehouse builder、Oracle Data Integrator。另外一种是第三方工具提供商,如Kettle。开源世界也有很多的ETL工具,功能各异,强弱不一。

(1)Oracle Data Integrator(ODI)

ODI前身是Sunopsis Active Integration Platform,在2006年底被Oracle收购,重新命名为Oracle Data Integrator,主要定位于在ETL和数据集成的场景里使用。ODI和Oracle原来的ETL工具OWB相比有一些显著的特点,比如和OWB一样是ELT架构,但是比OWB支持更多的异构的数据源,ODI提供了call web service的机制,并且ODI的接口也可以暴露为web service,从而可以和SOA环境进行交互。ODI能够检测事件,一个事件可以触发ODI的一个接口流程,从而完成近乎实时的数据集成。

ODI的主要功能特点有:

a.使用CDC作为变更数据捕获的捕获方式。

b.代理支持并行处理和负载均衡。

c.完善的权限控制、版本管理功能。

d.支持数据质量检查,清洗和回收脏数据。

e.支持与JMS消息中间件集成。

f.支持Web Service。

(2)SQL Server Integration Services(SSIS)

SSIS是SQL Server 2005的新成员,在SQL Server的早期版本中,其实就已经有了它的雏形,那时的名称叫做数据转换服务(DTS)。在SQL Server 2005的前两个版本SQL Server 7.0和SQL Server 2000中,DTS主要集中于提取和加载。通过使用DTS,可以从任何数据源中提取数据以及将数据加载到任何数据源中。在SQL Server 2005中,对DTS进行了重新设计和改进形成了SSIS。SSIS提供了数据相关的控制流、数据流、日志、变量、event、连接管理等基础设施。控制流也称为工作流或者任务流,它更像工作流,在工作流中每个组件都是一个任务。这些任务是按预定义的顺序执行的。在任务流中可能有分支。当前任务的执行结果决定沿哪条分支前进。数据流是新的概念。数据流也称为流水线,主要解决数据转换的问题。数据流由一组预定义的转换操作组成。数据流的起点通常是数据源(源表);数据流的终点通常是数据的目的地(目标表)。可以将数据流的执行认为是一个流水线的过程,在该过程中,每一行数据都是装配线中需要处理的零件,而每一个转换都是装配线中的处理单元。

时间: 2024-10-11 03:43:52

数据仓库-ETL的相关文章

ETL中的数据增量抽取机制

ETL中的数据增量抽取机制 (     增量抽取是数据仓库ETL(extraction,transformation,loading,数据的抽取.转换和装载)实施过程中需要重点考虑的问 题.在ETL过程中,增量更新的效率和可行性是决定ETL实施成败的关键问题之一,ETL中的增量更新机制比较复杂,采用何种机制往往取决于源数据系统的 类型以及对增量更新性能的要求. 1 ETL概述 ETL包括数据的抽取.转换.加载.①数据抽取:从源数据源系统抽取目的数据源系统需要的数据:②数据转换:将从源数据源获取的

数据仓库:Mysql->Hive

背景 写这篇文章主要是介绍一下我做数据仓库ETL同步的过程中遇到的一些有意思的内容和提升程序运行效率的过程. 关系型数据库: 项目初期:游戏的运营数据比较轻量,相关的运营数据是通过Java后台程序聚合查询关系型数据库MySQL完全可以应付,系统通过定时任务每日统计相关数据,等待运营人员查询即可. 项目中后期:随着开服数量增多,玩家数量越来越多,数据库的数据量越来越大,运营后台查询效率越来越低.对于普通的关系型来说,如MySQL,当单表存储记录数超过500万条后,数据库查询性能将变得极为缓慢,而往

SQL Server数据仓库的基础架构规划

问题 SQL Server数据仓库具有自己的特征和行为属性,有别去其他.从这个意义上说,数据仓库基础架构规划需要与标准SQL Server OLTP数据库系统的规划不同.在本文中,我们将介绍在计划数据仓库时应该考虑的一些事项. 解决 SQL Server 数据仓库系统参数 数据仓库本身有自己的参数,因此每个数据仓库系统都有自己独特的特性.在决定数据仓库系统的基础结构时,必须评估许多参数.在这些参数中,主要参数是数据量.报告复杂性.用户.系统可用性和ETL. 数据量 正如你可能知道的,数据量是大数

平安陆金所java 大数据 算法 android开发

java工程师-互联网方向 工作职责 1 参与产品需求分析.网站系统的设计方案: 2 参与.协助项目组长共同完成或带领项目小组承担任务的系统功能设计和数据库设计 3 独立完成个人承担模块或项目的开发和测试 任职要求 重点大学本科及以上学历,计算机相关专业优先 有3年以上JAVA WEB开发工作经验:有高访问量,高负载网站系统开发经验者优先 1. 精通Java Core/数据结构及算法/J2EE/Struts2/WebWork 2/JSP/Servlet/Java TCP/IP Socket/Aj

你对DBA的定义是什么?

作者: Ben Kubicek, 2017/09/05 翻译文章的链接:http://www.sqlservercentral.com/articles/Editorial/160538/ 今天我们有一个客人编辑史蒂夫是前往英国. 好吧,我知道最简单的答案是数据库管理员,但作用是什么呢?如果你必须描述它非技术的人你会说什么?有一个DBA可以有许多不同的角色和功能.我见过一些角色或功能/做的是:安装SQL Server管理服务器性能包括磁盘空间利用率.备份.管理控制和用户的访问的权利/角色,管理复

详细图解 快速入门kettle

写在前面一: 数据仓库ETL工具有很多,基于大数据环境下的分析,Hive用的多些.本文介绍国外的 一款开源ETL工具--Kettle. 写在前面二: 所用软件说明: 一.什么是Kettle Kettle是一款国外开源的ETL工具,纯java编写,绿色无需安装,数据抽取高效稳定(数据迁移工具).Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制. 二.Kettle安装配置 2.1.安装jdk 2.2.

你对于DBA的定义是什么

原文链接:http://www.sqlservercentral.com/articles/Editorial/160538/ 原文作者:Ben Kubicek 翻译:今天我们有一个客人前往英国,他是编辑史蒂夫. 好吧,我知道最简单的答案是数据库管理员,但它真正的作用是什么呢?如果你必须描述它是非技术的人你会说什么?一个DBA有很多不同的角色和功能.我见过一些角色或功能做的是:安装SQL Server管理服务器性能包括磁盘空间利用率.备份,管理控制和用户的访问的权利/角色,管理复制和不间断/多个

首席工程师揭秘:LinkedIn大数据后台是如何运作的

原文转自:http://kb.cnblogs.com/page/518558/ 摘要:Jay Kreps是来自LinkedIn的首席工程师,他表示日志几乎在计算机产生的时候就存在,除了可用在分布式计算或者抽象分布式计算模型内部之外,还有广泛的用途.本文中他讲述的日志的原理和通过把日志用做单独服务来实现数据集成.实时数据处理以及分布式系统设计.文章内容非常干货,值得学习. 英文原文:The Log: What every software engineer should know about re

用润乾集算报表实现实时报表(T+0)的方案

在报表项目中,客户越来越关注源数据的实时性,希望看到最新发生的数据在报表中体现出来.但是,传统的报表工具+数据仓库+ETL方式很难做到这一点,往往是只能看到昨天.上周甚至是上个月的情况,也就是T+1.T+7.T+30统称T+n报表.很难实现T+0报表,也就是能体现实时信息的报表. 分析其原因在于:1.如果报表的历史数据和最新数据都从客户的生产系统读取,虽然可以实现T+0报表,但是会对生产数据库造成压力,影响客户的业务.2.如果采用数据仓库的方式,那么ETL从生产库中取出数据,需要较长的"窗口时间