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

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

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

当面对大量的数据,各种各样的数据,有些数据单元(粒度)可能非常大,仅靠数据库是不容易解决的。为了解决这些问题,提高系统后台的效率,有必要引入数据仓库。

数据仓库中数据存储的一些基本问题:

1.如何存储数据?

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

2.存储的是什么类型的数据?

数据仓库中有不同综合级别的数据。一般数据分为四个级别:早期详细级别数据、当前详细级别数据、轻度综合级别和高度综合级别。不同的综合水平一般称为粒度。粒度越大,细节程度越低,合成程度越高。级别划分是基于粒度的。

另一种数据仓库是元数据,即关于数据的数据。在传统数据库中,数据字典或系统目录都是元数据。在数据仓库中,元数据有两种形式:一种是为从操作环境到数据仓库环境的转换而建立的元数据,它包含数据源的各种属性和转换过程中的属性;另一种元数据用于建立与多维模型和前端工具的映射。

3、粒度和分段

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

分段是将数据分散到各自的物理单元中,使其可以独立处理,从而提高数据处理的效率。划分的数据单元变成切片。数据分段的标准可以根据实际情况确定,通常是按日期、地区或业务领域,也可以是多种标准的组合。

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

这里有一个简单的例子,旋转综合文件。例如,数据存储单位分为天、周、季度和年。在每日记录集中记录每日数据;然后,将七天的数据全面存储在周记录集中,每隔一个季度将周记录集中的数据存储在季度记录集中,以此类推...这种方式存储的记录越早,综合程度越高,即粒度越大。

数据仓库b的实施步骤:

通常,设计和创建数据仓库的步骤是:

1.确定用户需求

确定最终用户的需求,并为存储在数据仓库中的数据构建模型。通过数据模型,可以获得企业完整清晰的描述信息。该数据模型是面向主题的,为集成多个面向应用的数据源提供了统一的标准。数据仓库的数据模型一般包括:企业的各个主题域,主题域之间的关系,描述主题的代码和属性组。

深入分析企业的数据源,记录数据源系统的功能和处理过程。一般来说,设计数据仓库最重要的步骤是理解业务行为的规则。只有了解数据是如何处理的,我们才能分解业务流程并从中获取数据元素。

使用现有系统的信息,确定从源数据到数据仓库数据模型的必要转换/合成逻辑。这涉及到应该合并转换多少数据;是集成所有数据文件还是集成已更改的操作系统文件;转换/合成过程应该多久进行一次?确定数据转换和更新的频率是一项重要的业务活动。无论数据仓库的更新是事件驱动还是时间驱动,都需要让数据仓库知道当某种事件发生时需要更新数据。

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

2.设计和建立数据库。

设计和构建数据库是成功创建数据仓库的关键步骤。这一步通常由有经验的数据库设计人员使用,因为这一步中涉及的数据来自多个数据源,它们需要合并到一个逻辑模型中。与OLTP系统以高度正式的形式存储数据不同,存储在数据仓库中的数据以非常非正式的形式存储数据,以提高查询性能。数据仓库经常使用星型模式和雪花型模式存储数据,作为OLAP工具管理的聚合基础,以最快的速度响应复杂的查询。

星型模式是实现数据仓库最流行的设计结构。星型模式使用一个包含主题的事实表和几个包含事实的非正式描述的维度表来执行典型的决策支持查询。一旦创建了事实表,您就可以使用OLAP工具来预先计算常用的访问信息。星型模式是一种关系数据库结构。在这个模式中,中间有事实表,周围有辅助表。数据在事实表中维护,维度数据在维度表中维护。每个维度表都通过关键字直接与事实表相关联。维度是数据仓库数据的分类信息,如时间、地理位置、组织等。用于层次结构,如维度的父层和子层。例如,地理位置维度可以包含国家和城市等数据。因此,在这个维度表中,纬度由所有国家和所有城市组成。为了支持这种层次结构,有必要在维度表中包含每个成员和更高纬度之间的关系。维度是用于查询中央事实表数据的标识符。维度就像主键一样,将维度表与事实数据表中的行链接起来。这种结构使得构造复杂的查询语句变得容易,并支持决策支持系统中的下挖掘分析。事实表包含描述特定业务事件的数据。如银行或产品销售。事实表还包含任何数据总计,例如每个地区的月销售额。一般不允许修改事实表中的数据,简单的添加新数据。维度包含用于引用事实数据表中存储的数据的数据,如产品说明、客户名称和地址、供应商信息等。通过减少事实表中扫描的数据量,将功能信息从特定事件中分离出来可以提高查询性能。维度表包含的数据不如事实表多,维度数据可以更改,例如客户的地址或电话号码。

通过减少需要从磁盘读取的数据量,星型模式设计有助于提高查询性能。查询语句分析较小维度表中的数据,以获得维度关键字,用于在中央事实表中进行索引,这可以减少扫描的数据行的数量。
将OLTP数据库模式转换为星型模式时,涉及的步骤如下:

确定事实表和维度表。

设计事实表

设计尺寸表

实施数据库设计

(1)确定事实表和维度表。

确认OLTP系统中现有的表和数据包含要在事实表和维度表中使用的数据是非常重要的。如果确认不正确,数据仓库的性能将会很差,将来可能需要重新设计。重新设计可能包含大量数据的数据仓库是一项成本高昂的任务。很难确定事实表和维度表的结构和组成,尤其是当涉及多个OLTP系统时。

(2)设计事实表。

设计事实表的主要目标是最小化表的大小。事实表是数据库中的表,因为它们包含基本业务交易的详细信息。但是,必须考虑存储和维护这些大型表的成本。例如,大型表需要很长时间来处理、备份和恢复以及执行查询。减小事实表大小最简单的方法如下:减少列数,尽可能减小每列的大小,将历史数据归档到单独的事实表中,等等。

(3)设计尺寸表。

设计维度表的主要目标是非正式的,所以将事实表的数据引用到单独的表中。最常用的维度数据应该直接引用事实表,而不是通过其他维度表间接引用维度表。这种方法可以最大限度地减少表连接的数量,提高系统的性能。

(4)实现数据库设计。

设计完事实表和维度表后,最后一步是在Microsoft SQL Server中物理实现数据库。创建数据库时,考虑到分区策略,可以使用SQL Server提供的可以并行处理数据的文件组。在创建存储事实和维度的表时,要尽可能考虑数据库的分区策略,将事实表存储在不同的文件组中。索引可以加快数据仓库的检索速度,应该在每个维度表的键列上创建一个索引。

3.提取和加载数据

管理系统中的数据被提取出来,然后加载到数据仓库中,数据仓库随着复杂度的变化而变化。如果数据源中的数据与将出现在数据仓库中的数据直接相关,那么这个过程就非常简单。这个过程也可能非常复杂。例如,数据源的数据驻留在多个异构系统中,在加载数据之前需要进行大量的格式更改和修改。提取和加载数据的过程如下:

检查操作系统中的数据。

从操作系统中提取数据

净化数据

将数据转换和迁移到数据仓库。

(1)检查数据

在从OLTP系统中提取数据之前,必须确保数据完全有效。应该由数据源中的业务分析师确认它是有效的。对数据的任何更改都应该在管理系统中进行,而不是在数据仓库中进行。检查数据非常耗时,而验证过程是通过编写存储过程来检查数据的域完整性而实现自动化的。但是,也需要手动检查数据。如果你发现无效数据,你应该尽力找出错误的原因并改正它们。

(2)迁移数据

从操作系统迁移数据通常会先将数据复制到中间数据库,然后再复制到数据仓库。如果需要对数据进行提纯,就需要将数据复制到中间数据库。OLTP系统中的数据应该在活跃度较低时进行复制,否则会降低系统的性能。此外,如果数据仓库由来自多个相关操作系统的数据组成,应该确保在系统同步时发生数据迁移。如果操作系统不同步,数据仓库中的数据可能会产生意外错误。在Microsoft SQL Server 7中,可以使用Microsoft SQL Server数据转换服务导入和导出向导来创建一系列任务,这些任务可以将数据从异构操作系统复制到运行SQL Server的中间数据库。

(3)数据纯化

数据净化就是让数据一致。在多个操作系统中,可能会有相同的数据。例如,一家名为ABC合作的公司可以写成ABC Co、ABC、ABC合作等。如果这些名称不一致,查询时该公司将被视为两个不同的公司。如果数据仓库中的数据生成一致的信息,公司的名称必须完全相同。

数据纯化可以通过以下方法获得:

从OLTP系统复制到中间数据库或数据仓库时,使用SQL Server的数据转换服务的数据导入导出向导来修改数据。

编写一个连接数据源的Microsoft ActiveX脚本或Visual C++程序,通过DTS API程序执行,净化数据。

例如,在订单系统中,需要对这些数据进行提纯:State(必须始终是两个字符的值)和ProductName(必须是产品的完整名称,不能使用缩写)。然后,在复制数据的过程中,可以使用数据转换服务的导入导出向导来检查State的值,使其成为两个字符的值。通过编写Visual C++程序,可以保证产品名称是一个完整的名称。一旦数据被净化,它就可以被转移到数据仓库。

(4)数据转换

在数据迁移过程中,通常情况下,为了适应数据仓库的设计,往往需要将业务数据转换成单独的格式。例如,转换数据可以包括以下内容:将所有字母字符转换为大写字母;重新计算汇总数据;将单个数据分解为多个数据,例如将nnnn-description格式的产品代码分解为单独的代码和描述值;将多个数据合并为一个数据,例如,将姓和名合并为一个数据名;将数据从一种表示形式映射到另一种表示形式。比如把数据(1,2,3,4)转换成(I,II,III,IV);因为数据已经被净化,当数据从管理数据库或中间数据库复制到数据仓库时,数据转换过程发生在迁移过程中。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 个人经验总结:数据仓库的数据存储和实现

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情