国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > 个人经验总结:数据仓库的数据存储和实现

个人经验总结:数据仓库的数据存储和实现

来源:程序员人生   发布时间:2014-03-13 12:12:09 阅读次数:2395次
当面对大量的数据,而且是各种各样类型的数据,还可能有的数据单元(粒度)很大,单纯靠数据库是不易解决,为了解决这些问题,提高系统后台的效率,就需要引进数据仓库。

  有关数据仓库的数据存储的几个基本问题:

  1、数据存储的方式?

  数据仓库的数据由两种存储方式:一种是存储在关系数据库中,另一种是按多维的方式存储,也就是多维数组。

  2、存储何种数据?

  数据仓库中存在不同的综合级别的数据。一般把数据分成四个级别,早期细节级数据,当前细节级数据,轻度综合级,高度综合级。不同的综合级别一般称为粒度。粒度越大,表示细节程度越低,综合程度越高。级别的划分是根据粒度进行的。

  数据仓库中还有一种是元数据,也就是关于数据的数据。传统数据库中的数据字典或者系统目录都是元数据,在数据仓库中 元数据表现为两种形式:一种是为了从操作型环境向数据仓库环境转换而建立的元数据,它包含了数据源的各种属性以及转换时的各种属性;另一种元数据是用来与多维模型和前端工具建立映射用的。

  3、粒度与分割

  粒度是对数据仓库中的数据的综合程度高低的一个衡量。粒度越小,细节程度越高,综合程度越低,回答查询的种类越多;反之粒度越大,细节程度越低,综合程度越高,回答查询的种类越少。

  分割是将数据分散到各自的物理单元中去以便能分别独立处理,以提高数据处理的效率。数据分割后的数据单元成为分片。数据分割的标准可以根据实际情况来确定,通常可选择按日期、地域或者业务领域等进行分割,也可以按照多个标准组合分割。

  4、追加时数据的组织方式

  这里说一种比较简单的情况,轮转综合文件。比如:数据存储单位被分为日、周、季度、年等几个级别。每天将数据记录在日记录集中;然后七天的数据被综合存放在周记录集中,每隔一季度周记录集中的数据被存放到季度记录集中,依此类推……这种方法把越早期的记录存放的综合程度越高,也就是粒度越大。

  B<>数据仓库的实现步骤:

  一般地,设计和创建数据仓库的步骤是:

  1.确定用户需求

  确定终端用户的需要,为数据仓库中存储的数据建立模型。通过数据模型,可以得到企业完整而清晰的描述信息。数据模型是面向主题建立的,同时又为多个面向应用的数据源的集成提供了统一的标准。数据仓库的数据模型一般包括:企业的各个主题域、主题域之间的联系、描述主题的码和属性组。

  深入地分析企业的数据源,记录数据源系统的功能与处理过程。一般地,设计数据仓库最重要的一步便是要理解商业动作的规律,只有了解数据是如何被处理的,才能分解商业处理过程,从中获取数据元素。

  利用现有系统的信息,确定从源数据到数据仓库的数据模型所必须的转化/综合逻辑。这涉及到应该合并转化多少数据;是综合所有的数据文件还是综合发生变化的操作系统文件;转化/综合过程应该多长时间执行一次等问题。决定数据转化与更新频率是重要的商业事件。无论数据仓库的更新是采用事件驱动还是时间驱动,都必须让数据仓库知道当某种事件发生时就需要更新数据。

  在数据仓库建立之前,应该写一个详细的方案和实现规划。这种方案和实现规划包括:建立商业案例、收集用户需求、确定技术需求。建立商业案例包括由该方案解决的商业需求、方案的成本和投资的收益。收集用户需求主要是调查用户建立数据仓库的意图。用户需求可以确定这些内容:数据需求(粒度级)、企业经营系统包含的数据、这些数据遵循的商业规则、需要提供给用户的查询、用户需要的标准报告、将要使用的客户应用程序工具。确定技术要求包括下列内容:硬件体系结构和框架(例如,链接到数据市场所在的地理位置)、备份和恢复机制、安全性限制、从经营系统到数据仓库加载数据和转换数据的方法。

  2.设计和建立数据库

  设计和建立数据库是成功地创建数据仓库的一个关键步骤。这一步通常由有经验的数据库设计人员使用,因为这一步涉及的数据来自多种数据源并且要把它们合并成一个单独的逻辑模型。不象OLTP系统那样以高度的正规化形式存储数据,数据仓库中存储的数据以一种非常非正规化的形式存储数据以便提高查询的性能。数据仓库常常使用星型模式和雪花型模式来存储数据,作为OLAP工具管理的合计基础,以便尽可能快地响应复杂查询。

  星型模式是最流行的实现数据仓库的设计结构。星型模式通过使用一个包含主题的事实表和多个包含事实的非正规化描述的维度表来执行典型的决策支持查询。一旦创建了事实表,那么可以使用OLAP工具预先计算常用的访问信息。星型模式是一种关系型数据库结构,在该模式的中间是事实表,周围是次要的表,数据在事实表中维护,维度数据在维度表中维护。每一个维度表通过一个关键字直接与事实表关联。维度是组织数据仓库数据的分类信息,例如时间、地理位置、组织等等。维度用于父层和子层这类分层结构。例如,地理位置维度可以包含国家、城市等数据。因此,在该维度表中,纬度由所有的国家、所有的城市组成。为了支持这种分层结构,在维度表中需要包括每一个成员与更高层次上纬度的关系。维度关键字是用于查询中心事实表数据的唯一标识符。维度关键字就像主键一样,把一个维度表与事实表中的一行链接起来。这种结构使得很容易构造复杂的查询语句并且支持决策支持系统中向下挖掘式的分析。事实表包含了描述商业特定事件的数据。例如银行业务或者产品销售。事实表还包含了任何数据合计,例如每一个地区每月的销售情况。一般地,事实表中的数据是不允许修改的,新数据只是简单地增加进去。维度表包含了用于参考存储在事实表中数据的数据,例如产品描述、客户姓名和地址、供应商信息等。把特征信息和特定的事件分开,可以通过减少在事实表中扫描的数据量提高查询性能。维度表不包含与事实表同样多的数据,维度数据可以改变,例如客户的地址或者电话号码改变了。
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生