知识大全 ETL的过程原理和数据仓库建设[1]
Posted 索引
篇首语:幼敏悟过人,读书辄成诵。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ETL的过程原理和数据仓库建设[1]相关的知识,希望对你有一定的参考价值。
ETL的过程原理和数据仓库建设[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
引言
数据仓库建设中的ETL(Extract Transform Load)是数据抽取 转换和装载到模型的过程 整个过程基本是通过控制用SQL语句编写的存储过程和函数的方式来实现对数据的直接操作 SQL语句的效率将直接影响到数据仓库后台的性能
目前 国内的大中型企业基本都具有四年以上计算机信息系统应用经验 积累了大量可分析的业务数据 这些信息系统中的数据需要通过搭建数据仓库平台才能得到科学的分析 这也是近几年数据仓库系统建设成为IT领域热门话题的原因
优化的思路分析
数据仓库ETL过程的主要特点是 面对海量的数据进行抽取 分时段对大批量数据进行删除 更新和插入操作 面对异常的数据进行规则化的清洗 大量的分析模型重算工作 有特定的过程处理时间规律性 一般整个ETL过程需要在每天的零点开始到 点之前完成 所以 针对ETL过程的优化主要是结合数据仓库自身的特点 抓住需要优化的主要方面 针对不同的情况从如何采用高效的SQL入手来进行
优化的实例分析
目前数据仓库建设中的后台数据库大部分采用Oracle 以下的SQL采用Oracle的语法来说明 所有的测试在Oracle i环境中通过 但其优化的方法和原理同样适合除Oracle之外的其他数据库
索引的正确使用
在海量数据表中 基本每个表都有一个或多个的索引来保证高效的查询 在ETL过程中的索引需要遵循以下使用原则
( ) 当插入的数据为数据表中的记录数量 %以上时 首先需要删除该表的索引来提高数据的插入效率 当数据全部插入后再建立索引
( ) 避免在索引列上使用函数或计算 在WHERE子句中 如果索引列是函数的一部分 优化器将不使用索引而使用全表扫描 举例:
低效 SELECT * ROM DEPT WHERE SAL * > ;
高效 SELECT * FROM DEPT WHERE SAL > / ;
( ) 避免在索引列上使用NOT和 != 索引只能告诉什么存在于表中 而不能告诉什么不存在于表中 当数据库遇到NOT和 != 时 就会停止使用索引转而执行全表扫描
( ) 索引列上用>=替代>
高效 SELECT * FROM EMP WHERE DEPTNO >=
低效 SELECT * FROM EMP WHERE DEPTNO >
两者的区别在于 前者DBMS将直接跳到第一个DEPT等于 的记录而后者将首先定位到DEPTNO= 的记录并且向前扫描到第一个DEPT大于 的记录
( ) 函数的列启用索引方法 如果一定要对使用函数的列启用索引 Oracle i以上版本新的功能 基于函数的索引(Function Based Index)是一个较好的方案 但该类型索引的缺点是只能针对某个函数来建立和使用该函数
CREATE INDEX EMP_I ON EMP (UPPER( ENAME)); SELECT * FROM EMP WHERE UPPER(ENAME) = BLACKSNAIL ;
游标的正确使用
当在海量数据表中进行数据的删除 更新和插入操作时 用游标处理的效率是最慢的方式 但它在ETL过程中的使用又必不可少 而且使用有着及其重要的地位 所以游标的正确使用尤为重要
对数据仓库维表的数据进行维护时 因为需要保证维表ID的一致性 所以采用游标的是数据维护完整性的最好方式 由于它的效率低 如果按照普通的方式将无法处理大数据量的维表数据维护(一般是指 万条记录以上的维表) 以下是处理这种情况的有效方式
( ) 在数据抽取的源表中使用时间戳 这样每天的维表数据维护只针对更新日期为最新时间的数据来进行 大大减少需要维护的数据记录数
( ) 在INSERT和UPDATE维表时都加上一个条件来过滤维表中已经存在的记录 实例为
INSERT INTO DIM_CUSTOMER SELECT * FROM ODS_CUSTOMER WHERE ODS_CUSTOMER CODE NOT EXISTS (DIM_CUSTOMER CODE)
( ) 使用显式的游标(CURSORs) 因为使用隐式的游标将会执行两次操作 第一次检索记录 第二次检查TOO MANY ROWS 这个EXCEPTION 而显式游标不执行第二次操作
cha138/Article/program/SQL/201311/16216相关参考
深入探讨数据仓库建模与ETL的实践技巧[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 这篇
深入探讨数据仓库建模与ETL的实践技巧[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 缓慢
深入探讨数据仓库建模与ETL的实践技巧[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 这里
深入探讨数据仓库建模与ETL的实践技巧[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! (二
深入探讨数据仓库建模与ETL的实践技巧[6] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! (三
深入探讨数据仓库建模与ETL的实践技巧[5] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ET
一课程简介 定价¥ 本视频课程共课时主要讲述了数据仓库(DW)和数据挖掘(DM)的基本方法基本原理重点说明这些方法的主要思想和技术在数据仓库部分不仅全面深入地介绍了基本概念和体系结构而且详细阐述了
数据抽取、清洗与转换及BI项目中ETL设计[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
过去我们一直使用的OLTP技术也许隐藏着许多严重的缺陷数据仓库的实现并不是一个简单的任务你会发现以前积累下来的丰富经验并不适合处理每个数据仓库的独特需求 下面列出的条款是你在实现数据仓库过程
数据仓库和我们常见的RDBMS系统有些亲缘关系但它又有所不同如果你没有实施过数据仓库那么从设定目标到给出设计从创建数据结构到编写数据分析程序再到面对挑剔的用户的评估整个过程都会带给你一种与以往的项