赞
踩
先下结论: 为了分析数据而来, 分析结果给企业决策提供支撑。下面以中国人寿保险公司(chinalife)发展为例,阐述数据仓库为何而来?
中国人寿保险(集团)公司下辖多条业务线, 包括: 人寿险、财险、车险,养老险等。各业务线的业务正常运营需要记录维护包括客户、保单、收付费、核保、理赔等信息。这么多业务数据存储在哪里呢?
联机事务处理系统(OLTP) 正好可以满足上述业务需求开展, 其主要任务是执行联机事务处理。其基本特征是前台接收的用户数据可以立即传送到后台进行处理,并在很短的时间内给出处理结果。
可以,但是没必要。
OLTP系统的核心是面向业务, 支持业务,支持事务。所有的业务操作可以分为读、写两种操作,一般来说读的压力明显大于写的压力。如果在OLTP环境直接开展各种分析,有以下问题需要考虑:
如数仓定义所说,数仓是一个用于存储、分析、报告的数据系统, 目的是构建面向分析的集成化数据环境。我们把这种面向分析、支持分析的系统称之为OLAP (联机分析处理)系统。当然, 数据仓库是OLAP系统的一种实现。
中国人寿保险公司就可以基于分析决策需求, 构建数仓平台。
主题是一个抽象的概念, 是较高层次上企业信息系统中的数据综合、归类并进行分析利用的抽象。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。
传统OLTP系统对数据的划分并不适用于决策分析。而基于主题组织的数据则不同,它们被划分为各自独立的领域,每个领域有各自的逻辑内涵但互不交叉,在抽象层次上对数据进行完整、一致和准确的描述。
要统一源数据中所有矛盾之处;
如字段的同名异义、异名同义、单位不统一、字长不一致等等。
进行数据综合和计算。
数据仓库中的数据综合工作可以在从原有数据库抽取数据时生成, 但许多是在数据仓库内部生成的, 即进入数据仓库以 后进行综合生成的。
下图说明了保险公司综合数据的简单处理过程,其中数据仓库中与“承保”主题有关的数据来自于多个不同的操作型系统。
这些系统内部数据的命名可能不同,数据格式也可能不同。把不同来源的数据存储到数据仓库之前, 需要去除这些不一致。
数据仓库是分析数据的平台,而不是创造数据的平台。我们是通过数仓去分析数据中的规律, 而不是去创造修改其中的规律。因此数据进入数据仓库后, 它便稳定且不会改变。
数据仓库的数据反映的是一段相当长的时间内历史数据的内容, 数据仓库的用户对数据的操作大多是数据查询或比较复杂的挖掘,一旦数据进入数据仓库以后, 一般情况下被较长时间保留。
数据仓库中一般有大量的查询操作,但修改和删除操作很少。
数据仓库包含各种粒度的历史数据,数据可能与某个特定日期、星期、月份、季度或者年份有关。
当业务变化后会失去时效性。因此数据仓库的数据需要随着时间更新,以适应决策的需要。
从这个角度讲,数据仓库建设是一个项目,更是一个过程 。
数仓作为面向分析的数据平台, 其主职工作就是对存储在其中的数据开展分析, 那么如何读取数据分析呢?
理论上来说, 任何一款编程语言只要具备读写数据、处理数据的能力,都可以用于数仓的开发。比如大家耳熟能详的C、java、 Python等;
关键在于编程语言是否易学、好用、功能是否强大。遗憾的是上面所列出的C、 Python等编程语言都需要一定的时间进行语法的学习,并且学习语法之后还需要结合分析的业务场景进行编码,跑通业务逻辑。
不管从学习成本还是开发效率来说,上述所说的编程语言都不是十分友好的。
在数据分析领域,不得不提的就是SQL编程语言, 应该称之为分析领域主流开发语言。
结构化查询语言 ( Structured Query Language)简称SQL, 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理数据。
SQL语言使我们有能力访问数据库,并且SQL是一种ANSI (美国国家标准化组织) 的标准计算机语言, 各大数据库厂商在生产数据库软件的时候, 几乎都会去支持SQL的语法,以使得用户在使用软件时更加容易上手,以及在不同 厂商软件之间进行切换时更加适应,因为大家的SQL语法都差不多。
SQL语言功能很强,十分简洁, 核心功能只用了9个动词。语法接近英语口语,所以,用户很容易学习和使用。
虽然SQL语言本身是针对数据库软件设计的, 但是在数据仓库领域,尤其是大数据数仓领域, 很多数仓软件都会去支持SQL语法;
原因在于一是用户学习SQL成本低, 二是SQL语言对于数据分析真的十分友好, 爱不释手。
结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。
与结构化数据相对的是不适于由数据库二维表来表现的非结构化数据,包括所有格式的办公文档、 XML、 HTML、各类报表、图片和音频、视频信息等。
通俗来说,结构化数据会有严格的行列对齐, 便于解读与理解。
表由一个名字标识(例如“客户”或者“订单”), 叫做表名。 表包含带有数据的记录(行) 。
下面的例子是一个名为 “Persons” 的表,包含三条记录(每一条对应一个人)和五个列(Id、姓、名、地址和城市)。
SQL主要语法分为两个部分: 数据定义语言 (DDL)和数据操纵语言 (DML) 。
DDL语法使我们有能力创建或删除表,以及数据库、索引等各种对象, 但是不涉及表中具体数据操作:
CREATE DATABASE - 创建新数据库
CREATE TABLE - 创建新表
DML语法是我们有能力针对表中的数据进行插入、更新、删除、查询操作:
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT - 向数据库表中插入数据
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。