数据抽取、清洗与转换 BI项目中ETL设计

ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析的依据

ETL是BI项目最重要的一个环节,通常情况下ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关接到BI项目的成败。ETL也是一个长期的过程,只有不断的发现问题并解决问题,才能使ETL运行效率更高,为项目后期开发提供准确的数据。

ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候也是从这三部分出发。数据的抽取是从各个不同的数据源抽取到ODS中(这个过程也可以做一些数据的清洗和转换),在抽取的过程中需要挑选不同的抽取方法,尽可能的提高ETL的运行效率。ETL三个部分中,花费时间最长的是T(清洗、转换)的部分,一般情况下这部分工作量是整个ETL的2/3。数据的加载一般在数据清洗完了之后直接写入DW中去。

ETL的实现有多种方法,常用的有三种,第一种是借助ETL工具如Oracle的OWB、SQL server 2000的DTS、SQL Server2005的SSIS服务、informatic等实现,第二种是SQL方式实现,第三种是ETL工具和SQL相结合。前两种方法各有优缺点,借助工具可以快速的建立起ETL工程,屏蔽复杂的编码任务,提高速度,降低难度,但是欠缺灵活性。SQL的方法优点是灵活,提高ETL运行效率,但是编码复杂,对技术要求比较高。第三种是综合了前面二种的优点,极大的提高ETL的开发速度和效率。

数据的抽取

数据的抽取需要在调研阶段做大量工作,首先要搞清楚以下几个问题:数据是从几个业务系统中来?各个业务系统的数据库服务器运行什么DBMS?是否存在手工数据,手工数据量有多大?是否存在非结构化的数据?等等类似问题,当收集完这些信息之后才可以进行数据抽取的设计。

时间: 2024-09-14 21:19:03

数据抽取、清洗与转换 BI项目中ETL设计的相关文章

《BI项目笔记》增量ETL数据抽取的策略及方法

原文:<BI项目笔记>增量ETL数据抽取的策略及方法 增量抽取 增量抽取只抽取自上次抽取以来数据库中要抽取的表中新增或修改的数据.在ETL使用过程中.增量抽取较全量抽取应用更广.如何捕获变化的数据是增量抽取的关键.对捕获方法一般有两点要求:准确性,能够将业务系统中的变化数据按一定的频率准确地捕获到:性能,不能对业务系统造成太大的压力,影响现有业务.目前增量数据抽取中常用的捕获变化数据的方法有:a.触发器:在要抽取的表上建立需要的触发器,一般要建立插入.修改.删除三个触发器,每当源表中的数据发生

项目开发中 如何设计数据字典?

问题描述 比如:people实体有性别(男女).国际(汉族.回族.满族.藏族...).学历(小学.中学.高中.本科...)等等属性,这些属性都有相似处,前台展现时都以下拉框实现,如何将这些数据作为数据字典设计,而不是写死的呢?如果用数据字典directionary表存取这些值 那么需要和实体类即people表关联吗?也就说people表的sex存取的是directionary表的Id吗? 问题补充:AngelAndAngel 写道 解决方案 真正的项目字典不只是用来存储那些常量,而是为整个系统提

ef-在项目中使用两个EF上下文

问题描述 在项目中使用两个EF上下文 项目中如何设计数据访问层实现操作两个数据库.求方法,希望可以吧,上下文的SaveChanges方法提到BLL中调用. 解决方案 映射两个edmx文件即可 调用时通过不同的dataContxt进行实例化数据库连接

ODS项目中的数据集成

问题描述 ODS是什么,数据仓库大师BillInmon对ODS的定义是"一个面向主题的.集成的.可变的.当前的细节数据集合,用于支持企业对于即时性的.操作性的.集成的全体信息的需求".看起来很晕,其实很好理解.以电信系统为例,电信系统一般情况按照业务划分成三大系统:业务.运维和管理.其中每一个系统都划分为各式各样的小型系统.比如:CRM,计费系统,结算系统,网络管理系统,资源管理系统等.分散在各处的数据,标准和一致性都无法保证,对于整个运营是很不利的.这就需要通过ODS来形成企业统一视

数据质量:BI项目成功的基石

BI-商业智能是IT领域的一个热点话题.日益激烈的市场竞争让越来越多的企业负责人倾向于借助商业智能来辅助决策,而企业经过多年来信息化的建设积累下丰富的数据也为商业智能项目的进行奠定了坚实的基础,在这样的背景下,企业上马商业智能项目的热情逐渐高涨起来.然而,和众多企业管理软件项目一样,商业智能项目的失败率也居高不下,其中数据质量问题是诸多失败诱因中的一个,特别是在涉及多数据源的商业智能项目中,数据质量不高在很大程度上制约了BI项目的最终效果,甚至直接导致了BI项目失败. 数据质量欠佳的原因 导致数

机器学习项目中的数据预处理与数据整理之比较

要点 在常见的机器学习/深度学习项目里,数据准备占去整个分析管道的60%到80%. 市场上有各种用于数据清洗和特征工程的编程语言.框架和工具.它们之间的功能有重叠,也各有权衡. 数据整理是数据预处理的重要扩展.它最适合在可视化分析工具中使用,这能够避免分析流程被打断. 可视化分析工具与开源数据科学组件之间,如R.Python.KNIME.RapidMiner互为补充. 避免过多地使用组件能够加速数据科学项目.因此,在数据准备步骤中利用流式获取框架或流式分析产品会是一个不错的选择. 机器学习和深度

java-如何在j2EE项目中采用Data Service 来管理数据 :支持数据的统一管理

问题描述 如何在j2EE项目中采用Data Service 来管理数据 :支持数据的统一管理 java项目中如何使用Dada Service 来管理项目: 要达到的目的:1,可以从多个数据源中加载数据,提供提供访问数据的统一接口 2,可以支持丰富的查询方式 ,实现内部的转换通过sqlParser 来对支持多种sql就如同 Apache 的calcite 项目中貌似可以找到蛛丝马迹,但是有好多的技术不是很了解 如:linq4jsparksplunkcsv ...等,有没有关于dataservice

《BI项目笔记》多维数据集中度量值设计时的聚合函数

原文:<BI项目笔记>多维数据集中度量值设计时的聚合函数 Microsoft SQL Server Analysis Services 提供了几种函数,用来针对包含在度量值组中的维度聚合度量值.默认情况下,度量值按每个维度进行求和.但是,通过 AggregateFunction 属性,您可以修改此行为.聚合函数的累加性可确定度量值如何在多维数据集的所有维度中进行聚合.聚合函数具有三个级别的累加性: 累加性 - 累加性度量值主要是指父级层次结构中成员的值等于它所有子级成员值的总和. Sum -

《数据科学:R语言实现》——第2章 数据抽取、转换和加载 2.1 引言

第2章 数据抽取.转换和加载 2.1 引言 在使用数据回答关键业务问题之前,最重要的事情是准备数据.数据通常存在文件中,使用Excel或者文本编辑器可以轻松地获取.但是数据也可以来自于其他来源,例如数据库.网站和各种文件格式.能够从这些源中引入数据很重要. 数据主要有4种类型.以文本形式存储的数据最简单.由于一些用户需要把数据存在结构化的文件中,因此带有.tab或.csv扩展名的文件可以用来存放一定列的数据.很多年以来,Excel在数据处理领域占据主导地位,这个软件使用.xls和.xlsx文件格