数据架构基础知识和基本原则(一)
从数据库到数据仓库
基本问题
数据库的设计理念是?
为何需要数据仓库?数据仓库能带来什么效益?
有数据仓库就足够了吗?为什么需要Data Vault?
从数据库到数据仓库
数据库的由来和局限性
背景:从管理主文件的磁带文件系统发展而来,随着磁盘存储器出现,数据可以被直接访问,而后出现的DBMS技术成为各类在线应用程序(银行出纳、机票预订、生产控制等)的基础支撑技术之一。
弊端:起初数据库的设计只是为了支撑一个系统的各种用途,而该系统建立时定义的需求和面向的用户群体可能具有狭隘性。如果系统运行后发现其他人员/系统(如销售、金融、会计人员)也要使用系统中的数据就会发现设计系统时并未考虑这些群体的需求。
跨系统共享数据的初步尝试和问题
数据抽取程序:读取一个系统的数据并迁移到另一个系统中。问题是:用户不能立刻获取所需要的信息,数据并不触手可及。
4GL技术、个人电脑和电子表格:让用户更关注“做什么”,而不关注“怎么做”,如SQL。通过4GL导出数据(往往是子集),同一数据要素依托于个人电脑存在于组织的很多地方,难以保证数据的完整性,多个系统中数据和设备分布形成一个蛛网结构。
蛛网系统的弊端:
- 维护积压:随着系统数量增长、维护积压问题随之增长,数据会变得越来越难掌控。
具体原因分析:
创建应用程序时,人们往往重点关注自动化,很少或根本不关心其他程序,每个程序都有特定需求和相关独特解决方案。由于每个程序的设计者只致力于完成自己的工作/需求,各程序之间没有数据统一性。具体表现在:
相同数据的命名约定
相同数据的物理属性
相同数据的属性的物理结构
相同数据的值的编码方式
这些问题在有一天出现了需要纵览全局分析和利用数据价值时,便会成为工作开展的拦路虎,尤其是有多个分析师查看数据时,问题会更为严重。
数据仓库的理念
传统数据库架构用于支撑日常的业务操作、事务处理场景,没有提供足够的能力(数据建模、分析、模拟等)支撑管理人员进行决策。
结果:需要一种不同类型的数据库。即同时需要面向作业系统(operational system)的数据库和面向决策支持系统(decision support system)的数据库。蛛网系统迁移到架构式环境(包含作业数据库和数据仓库)
数据仓库的特点
随着发展,数据仓库往往搭配一套基础设施:
ETL(抽取/转换/加载)技术
作业系统
数据集市
作业数据存储
到DW2.0,对数据仓库环境的重要方面有了更多认识:
数据仓库环境中数据的生命周期
非结构化数据
元数据
近线存储
形象地比喻:数据仓库像一桶沙粒,可以用多种方式重塑沙粒形态。如同硅可以以不同的方式重塑,用于生产:芯片、人造肢体部件、儿童玩具、珠宝等其他产品。
ETL技术
当一个企业起初准备建立集成式企业数据存储——数据仓库时,便需要将不同形式的应用程序数据集成为单一形式的数据,转换的结果是企业数据有了统一的定义:
标准化命名约定
标准化数据属性
标准化数据编码
标准化数据计算
标准化数据分类
其中涉及Extract、Transform、Load技术,即抽取、转换、加载,简称ETL。
来自老旧系统的挑战
老旧系统未曾严格进行文档资料编制
老旧系统有结构极为不同的数据
老旧系统数据在设计时未考虑与其他数据集成
老旧系统采用多种多样老旧技术
一些老旧系统拥有很大的数据量
数据仓库的效益
分析师能很快获取数据,分析之前无需进行数据集成
对于所有分析师而言,数据集成一致。
数据协调简单
如果需要建立全新的分析,容易开启
面向合规性检查或审计,具有可信数据基础