如何在SQL Server中构建数据仓库
2007-12-27 15:31:41 来源:WEB开发网在这一阶段要做好很多前期的工作,因为你的原始数据库中的数据也许和你的正要建立的数据仓库的需求也许有很大的出入,结构完全是两马事。
你如何才能将你的原始数据提取出来,作为数据仓库的有用数据呢,你的原始数据库中存储的是零碎的事务数据,而你的数据仓库中要的是经过转化和提炼过的统计数据,比如说,你的原始数据库中存储这每天的所有存款和取款记录,而你的数据仓库并不关心你的每条记录的数据,而是希望在最短的时间内,以最快的速度统计出这个月的所有存款和取款的总数量,如果这种查询放在原来的数据库上来做的话,也就失去了数据仓库的意义,超大规模的数据使你无法查询下去,这时候你就要将对这个查询有意义的数据转化到数据仓库,这就是数据清洗,即ETL。
实现数据清洗有很多的方法,也有很多的细节问题,比如,数据类型的匹配,数据格式的转换,异地数据表数据集中到一起时有主键重复,以及你如何定期,按时的将数据加工到数据仓库中来等等。在我的示例中没有严格的经过着一步,因为我没有规范的原始数据库,也没有规范的业务需求。我只是运用星型模型和雪花模型做了几个典型的数据仓库表。其表关系如下:
窗口中FACT为事实表,TIME,ADDRESS,DETAIL分别为时间维,地址维,详细地址维,DETAIL又是ADDRESS的子维。他们又构成雪花模型。其中都有部分数据。
现在,数据仓库已经建立成功,下一步就是在OLAP服务器上建立元数据数据库。这个数据库和我们以前所说的数据库不同,他是存放元数据的数据库,比如我们下一步要创建的多维数据集、角色、数据源、共享维度和挖掘模型等。然后需要和早期在 ODBC 数据源管理器中建立的数据源连接,使其与数据仓库连接上。这些工作做好了之后,就可以用数据仓库中的维表来建立共享维度,现在以时间维和地址维为例。其创建过程一样。依此点下一步即可创建时间维(TIME),下面用ADDRESS和DETAIL建立雪花模型共享维度,点下一步即可创建DETAIL维。创建完成之后都要进行处理才能生效。维度创建好了之后就该创建多维数据集了。多维数据集是一种基于维表和事实表的数据集,以他来对数据仓库进行快速的访问。我们的多维数据集结构如下:
DETAIL(SREET)
DETAIL(MARK)
ADDRESS(PROVINCE,CITY)
TIME(YEAR,DAY)
到现在一个简单的数据仓库架构已经建立成功,我们利用前端分析工具来对建立的数据仓库做查询,看能否实现我们的简单的业务要求,先以EXCEL作为查询工具。我们除了用EXCEL,ENGLISH QUERY 等现成工具做查询外,还可以用MDX函数直接对OLAP做查询
到现在为止,一个简单的数据仓库已经创建成功,可以实现一些简单的业务查询。这个实例主要是分析数据仓库的创建过程以及进一步加深对数据仓库的认识和了解,进一步理解其中的基本概念。
赞助商链接