HI,下午好,欢迎来到微信公众号转让!
24小时服务热线: 4000-163-301
请扫码咨询

新闻动态

NEWS CENTER

数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持

2020-12-04


数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持。

数据仓库本身并不 “生产” 任何数据;同时自身也不需要 “消费” 任何的数据,数据来源于外部,并且开放给外部应用,这也是为什么叫 “仓库” ,而不叫 “工厂” 的原因。

2. 数据仓库的基本概念

2.1 数据源

构建一个数据仓库,必然要有充足的数据源,从外部为数据仓库系统提供进行分析的 “原材料” ——数据,这些数据来源称为数据仓库的数据源。

数据源并不局限于传统数据库,可以是非结构化的信息,如爬取日志,也可以是埋点日志。

2.2 ETL

在 BI 项目中 ETL 会花掉整个项目至少 1/3 的时间,ETL 设计的好坏直接关系到 BI 项目的成败。其中,花费时间最长的是 “T”(Transform,清洗、转换)的部分,一般情况下这部分工作量是整个 ETL 的 2/3 。

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


ETL 处理分为五大模块,分别是:数据抽取、数据清洗、数据转换、规则检查、数据装载。各模块之间灵活组合,形成 ETL 处理流程。下面简单介绍一下各模块之间的功能。

2.2.1 数据抽取

在构建数据仓库过程中,数据源所提供的数据并不都是有用的,有些数据对决策并不能提供支持。

同时,外部数据源中数据冗余的现象也很普遍。数据仓库既然是面向主题的,那么在数据源中,只有那些与主题相关的内容才是必需的、有使用价值的。

因此,必须以主题的需求为依据,对数据源的内容进行有目的地选择,这一过程被称为“数据抽取”(Data Extraction)。对于数据的抽取,是从各个不同的数据源抽取到 ODS(Operational Data Store,操作型数据存储)中。

具体步骤为,首先要搞清楚数据是从哪几个业务系统中来,各个业务系统的数据库服务器运行什么 DBMS ,是否存在非结构化的数据等,当收集完这些信息后才可以进行数据抽取的设计。

1)对于与存放 DW 的数据库系统相同的数据源处理方法

这类数据源在设计上比较容易处理。一般情况下,DBMS(Mysql、SQLServer)都会提供数据库连接功能,在 DW 数据库服务器和原业务系统之间建立直接的连接关系,接下来就可以写查询语句直接访问。

2)对于与存放 DW 的数据库系统不同的数据源处理方法

对于这类数据源,一般情况下也可以通过 ODBC 的方式建立数据库连接。如果不能建立数据库连接,可以用两种方法完成,一种是通过工具将数据源导出成 .txt 或者 .xls 文件,然后再将这些源系统文件导入到 ODS 中。另一种方法是通过程序接口来完成。

3)对于文件类型数据源(.txt/.xls)

业务人员可以利用数据库工具将这些数据导入到指定的数据库,然后从指定的数据库中抽取。或者业务人员借助工具实现。

4)增量更新问题

对于数据量大的系统,必须考虑增量抽取。

一般情况,业务系统会记录业务发生的时间,可以用作增量的标志,每次抽取之前首先判断 ODS 中记录最大的时间,然后根据这个时间去业务系统取大于这个时间的所有记录。

2.2.2 数据清洗转换

一般情况下,数据仓库分为 ODS、DW 两部分。通过的做法是从业务系统到 ODS 做清洗,将脏数据和不完整数据过滤掉,再从 ODS 到 DW 的过程中转换,进行一些业务规则的计算和聚合。

1)数据清洗

数据仓库的数据源所提供的数据内容并不完美,存在着 “脏数据” ——即数据有缺省值、异常值等缺陷,而且在数据仓库的各数据源之间,其内容也存在着不一致的现象。

为了控制这些 “脏数据” 对数据仓库分析结果的影响程度,必须采取各种有效的措施,对其进行处理,这一处理过程称为 “数据清洗”(Data Transform)。

对于任何数据仓库而言,数据清洗过程都是不可缺少的。不同类型的 “脏数据” ,清洗处理的方法是不同的。

对于缺省值:产生的原因可能是,信息暂时无法获取、信息被遗漏、属性值不存在,比如一个儿童的固定收入等。

解决方法是,通过简单的统计分析,得到含有缺失值的属性个数,以及每个属性的未缺失数、缺失数和缺失率。删除含有缺失值的记录、对可能值进行插补和不处理三种情况。

对于异常值:产生的原因可能是:业务系统检查不充分。解决方法是,先对变量做一个描述性统计,进而查看哪些数据是不合理的。最常用的统计量是最大值和最小值,然后判断变量是否超过了合理的范围。

如果数据是符合正态分布,在原则下,异常值被定义为一组测定值中与平均值的偏差超过 3 倍标准的值,如果不符合正态分布,也可以用原理平均值的多少倍标准差来描述。

对于不一致值:产生的原因可能是:被挖掘的数据是来自不同的