数据仓库的构建

合集下载

数据仓库建设规划图文

数据仓库建设规划图文

数据仓库建设规划图文前言数据仓库是企业决策的基础,能够帮助企业把分散的数据整合到一起,降低数据的冗余度和不一致度,并保证决策者及时准确地获取到有关于企业业务运营的信息。

而数据仓库建设规划是实现数据仓库建设的前提和保障。

本文将会介绍数据仓库建设规划的概述,及其在数据仓库建设过程中的具体应用。

数据仓库建设规划概述数据仓库建设规划是指基于业务战略、IT战略和企业治理要求,论证和分析数据仓库建设的目标、范围、基础设施、资源和人员安排,并制定全面和长期的数据仓库建设计划。

其目的是为了实现数据资产的价值最大化和企业业务分析的高效率开展。

具体来说,数据仓库建设规划包括以下几个方面的内容:1.数据仓库技术路线:在数据仓库建设过程中,需要选择哪些技术工具和平台,以及如何实现数据仓库的集成、存储、处理、管理和交互。

2.数据仓库的目标和范围:需要明确数据仓库的主要业务需求、数据需求以及数据质量标准,以便为数据仓库的整体架构和实施过程提供全面规划。

3.数据仓库基础设施:包括硬件基础设施、数据库应用软件、网络等设备和工具及相应的安全机制。

4.数据仓库资源和人员安排:需要评估数据仓库建设所需的人员和资源并计划并安排相应的人力、物力和财务方面的资源。

数据仓库建设规划的应用数据仓库建设规划对数据仓库的建设和运营都具有重要的作用。

在数据仓库建设过程中,数据仓库建设规划可以帮助企业在设计、实施和维护数据仓库过程中,更加全面、科学、系统地规划和部署数据仓库,从而提高数据仓库的建设效率,提高数据质量,提升企业的运营效率及决策水平。

具体来说,数据仓库建设规划可以体现在以下几个方面:1.业务需求分析:对不同类型的业务需求进行分析,确立数据仓库构建的业务模型和应用领域范畴。

借助业务分析工具和方法,对业务流程进行挖掘、建模和优化,设计出符合企业需要且便于数据获取和分析的数据模型。

2.技术实现:结合现有的IT设施和企业计算机软件系统,根据不同业务和应用领域制定数据仓库架构,并选择合适的技术工具和开发平台,如Hadoop、Hive、Spark等,以及各种开发框架、编程语言和库。

数据仓库的设计与构建研究

数据仓库的设计与构建研究

数据仓库的设计与构建研究随着互联网技术的发展,数据量的快速积累和每天不断增长的数据趋势,数据管理变成了日益复杂的任务。

数据仓库便应运而生,成为了企业管理和数据分析的必然选择。

在企业的决策和战略制定中,数据仓库所扮演的角色越来越重要,也越来越值得重视。

一、数据仓库的概念数据仓库是指将企业各种分散的数据源汇集起来,进行预处理、汇总、加工、再分析处理等操作后进行存储的一个系统。

其目的是为了利用大数据环境下的企业数据,将其变成决策支持的信息,从而为企业决策提供可靠的数据支撑。

数据仓库结构主要包含以下几个重要组成部分:1. 数据源数据源是数据仓库的来源,包括操作性数据库、文件系统、网络、接口等等。

通过提取不同来源的数据,并将其汇总到仓库中进行统一存储、管理和维护,实现数据的集成化管理。

2. 数据加工处理数据加工处理是数据仓库中最为复杂的一部分,包括数据清洗、数据挖掘、数据转换、数据整合等等。

这一过程要求数据仓库管理员具有一定的数据处理能力,并且需要考虑多种因素的影响,例如数据量、类型、格式、质量等等。

3. 元数据元数据是指描述数据仓库的数据,包括数据类型、数据来源、数据转换规则、质量检验规则等等。

元数据的作用是对数据进行管理、维护、分发和使用,为数据共享和商业决策提供支持。

4. 多维分析多维分析是指对数据仓库中的数据进行分析、整理和处理,以便更好地展现数据的特征和规律。

多维分析可通过OLAP(联机分析处理)的方式对数据进行分析,再根据分析结果制定企业针对性的业务决策。

二、数据仓库的设计思路数据仓库的设计与构建需要全面考虑企业的业务需求和数据特点,通过规范化、标准化的方式来进行设计,使其能够满足企业需求,并为企业的决策提供支持。

1. 初步分析通过初步分析了解企业的业务场景和数据来源,以及研究需求和决策支持信息的种类、格式等,以便进一步确定数据仓库的设计。

2. 数据建模数据建模是数据仓库的核心,它需要根据不同的业务需求和对数据的认识,对数据进行分类、构建数据模型,以便完成数据转化的目标。

超市数据仓库的构建课件

超市数据仓库的构建课件
数据仓库为管理层提供全面的数据分析,支持战 略规划和决策制定。
06
案例分析
某大型超市的数据仓库构建案例
项目背景
某大型超市为了提升销售和运营效率,决定构建一个数据 仓库来整合和分析销售、库存、顾客等数据。
解决方案
采用分布式存储和计算技术,构建一个多维度的数据仓库 ,支持实时查询和分析。
实施过程
数据从各个业务系统抽取、清洗、转换和加载到数据仓库 中,同时建立ETL(Extract, Transform, Load)过程来 保证数据的准确性和完整性。
通过数据清洗、整合和验证, 数据仓库提高了数据的准确性
和可靠性。
02
超市数据仓库的构建
数据源的选择与整合
数据源类型
选择合适的数据源类型,如POS 机、库存系统、会员系统等,确 保数据的全面性和准确性。
数据清洗与整合
对不同数据源的数据进行清洗、 去重、转换等操作,确保数据的 一致性和完整性。
数据仓库的逻辑设计
确定主题
根据超市的业务需求,确定数据仓库的主题,如销售、库存 、会员等。
设计维度和度量
为每个主题设计合适的维度和度量,以便进行数据分析。
数据仓库的物理设计
存储设计
选择合适的存储介质和存储架构,确 保数据的安全性和可扩展性。
索引设计
为提高查询效率,设计合适的索引策 略。
数据仓库的构建工具与技术
01
详细描述
星型模型由一个事实表和多个维度表组成。事实表存储业务数据的数值型事实, 如销售金额、库存数量等;维度表存储描述性的信息,如时间、商品、客户等。 星型模型结构简单,查询效率高,适用于以聚合为主的业务场景。
雪花模型
总结词
雪花模型是对星型模型的扩展,它将维度表进一步细分成层次结构,形如雪花 。

数据仓库的构建 实验报告

数据仓库的构建 实验报告

昆明理工大学信息工程与自动化学院学生实验报告(2011 —2012 学年第 1 学期)课程名称:数据仓库与数据挖掘开课实验室:信自楼445 2011年 12月 7日年级、专业、班计科081 学号200810405130 姓名孙永星成绩实验项目名称数据仓库的构建指导教师周海河教师评语一、提前预习实验内容、自觉遵守考勤和规章、按时参加实验和交付实验报告(30分)。

二、检查实验数据、数据记录、完整正确(10分)。

三、技术路线图、数据表格、公式、特性曲线、波形绘制符合规范要求(10分)。

四、报告基本内容(包括实验目的、实验原理、实验技术路线、实验条件、实验方法步骤、实验数据及处理)完整(10分)。

五、独立完成实验、有实验分析和总结(10分)。

六、报告书写工整、条理清楚、概念正确、逻辑性强、语言流畅(10分)。

七、现场实验操作技能熟练(10分)。

八、有个人的见解或创新(10分)。

教师签名:年月日一、实验目的1.理解数据库与数据仓库之间的区别与联系;2.掌握典型的关系型数据库及其数据仓库系统的工作原理以及应用方法;3.掌握数据仓库建立的基本方法及其相关工具的使用。

二、实验原理及基本技术路线图(方框原理图)以SQL Server为系统平台,设计、建立数据库,并以此为基础创建数据仓库。

要求:利用实验室和指导教师提供的实验软件,认真完成规定的实验项目,真实地记录实验中遇到的各种问题和解决的方法与过程,并绘出模拟实验案例的数据仓库模型。

实验完成后,应根据实验情况写出实验报告。

三、上机平台、环境操作系统:Windows 7数据库:SQLServer2008四、实验方法、步骤安装事例数据库新建数据库DW新建“订单方式表”数据抽取(ETL)执行结果:1)数据库DW的表2)Customer表预览3)时间表预览4)订单方式5)订单状态表6)销售人员以及销售地区表7)发货方式表8)事实表9)客户价值表六、实验结果分析、经验总结或结论。

数据仓库的设计和构建

数据仓库的设计和构建

数据仓库的设计和构建数据仓库(Data Warehouse)是指将组织机构内部各种分散的、异构的数据整合起来,形成一个共享的、一致的、易于查询和分析的数据环境。

数据仓库的设计和构建是数据管理和分析的重要环节。

本文将结合实践经验,介绍数据仓库的设计与构建过程。

一、需求分析数据仓库的设计与构建首先需要进行需求分析。

在需求分析阶段,我们需要明确以下几个问题:1. 数据来源:确定数据仓库所需要的数据来源,包括内部系统和外部数据源。

2. 数据维度:确定数据仓库中需要关注的维度,如时间、地理位置、产品等。

3. 数据粒度:确定数据仓库中的数据粒度,即需要对数据进行何种程度的聚合。

4. 数据可用性:确定数据仓库中数据的更新频率和可用性要求。

5. 分析需求:明确数据仓库所需满足的分析需求,如报表查询、数据挖掘等。

二、数据模型设计在数据仓库设计过程中,数据模型的设计尤为重要。

常用的数据模型包括维度建模和星型模型。

维度建模是基于事实表和维度表构建的,通过定义事实和维度之间的关系,建立多维数据结构。

星型模型则将事实表和各个维度表之间的关系表示为星型结构,有助于提高查询效率。

根据具体需求和数据特点,选择合适的数据模型进行设计。

三、数据抽取与转换数据仓库的构建过程中,需要从各个数据源中抽取数据,并进行清洗和转换。

数据抽取常用的方法包括全量抽取和增量抽取。

全量抽取是指将数据源中的全部数据抽取到数据仓库中,适用于数据量较小或变动频率较低的情况。

增量抽取则是在全量抽取的基础上,只抽取发生变动的数据,提高了数据抽取的效率。

数据在抽取到数据仓库之前还需要进行清洗和转换。

清洗的目标是去除数据中的错误、冗余和不一致之处,保证数据的准确性和完整性。

转换的目标是将数据格式进行统一,并进行必要的计算和整合,以满足数据仓库的需求。

四、数据加载与存储数据加载是指将抽取、清洗和转换后的数据加载到数据仓库中的过程。

数据加载的方式可以分为批量加载和实时加载。

dwd构建规则

dwd构建规则

dwd构建规则DWD构建规则随着互联网技术的发展,数据已经成为人们日常生活中不可或缺的一部分。

为了更好地管理和利用数据,数据仓库成为了企业和组织中的重要组成部分。

而数据仓库的构建规则被称为DWD(Data Warehouse Design)构建规则。

DWD构建规则是指在进行数据仓库设计和构建过程中需要遵循的一系列规则和原则。

这些规则旨在确保数据仓库的可靠性、可扩展性和易用性。

下面将介绍几个重要的DWD构建规则。

1. 高度冗余的数据模型:在数据仓库中,数据的冗余是被允许的。

通过将数据冗余存储,可以减少数据的访问时间,提高数据查询的性能。

同时,数据冗余还可以降低关联查询的复杂性,简化数据分析过程。

2. 维度建模:维度建模是数据仓库中最常用的建模技术之一。

维度建模以业务维度为核心,将数据按照业务维度进行划分和组织。

通过维度建模,可以更好地支持数据分析和决策支持系统的构建。

3. 规范化的事实表:事实表是数据仓库中存储事实数据的表格。

为了提高数据查询和分析的效率,事实表通常需要进行规范化处理。

规范化的事实表可以减少数据的冗余存储,提高数据的更新和维护效率。

4. 易于理解的命名规则:为了方便数据仓库的使用和维护,需要制定一个易于理解的命名规则。

命名规则应该能够清晰地表达数据的含义和用途,避免出现歧义和混淆。

5. 数据质量控制:数据仓库中的数据质量是非常重要的。

为了保证数据质量,需要进行数据清洗、去重和校验等工作。

同时,还需要建立数据质量监控机制,及时发现和修复数据质量问题。

6. 安全性和权限管理:数据仓库中存储着大量的敏感数据,因此安全性和权限管理非常重要。

需要建立合理的权限体系,限制对数据的访问和操作权限,确保数据的安全性和隐私保护。

7. 数据备份和恢复:数据仓库中的数据是企业的重要资产,需要进行定期的数据备份和恢复工作。

通过数据备份,可以保证数据的安全性和可靠性,防止数据丢失或损坏。

8. 性能调优和优化:数据仓库的性能对于数据分析和决策支持至关重要。

数仓建设方法论

数仓建设方法论

数仓建设方法论随着大数据时代的到来,数据成为了企业重要的资源之一。

数据仓库(Data Warehouse)作为一种集成、主题导向的数据存储和分析平台,对于企业的决策和业务发展起到了至关重要的作用。

因此,如何高效、科学地构建数仓成为了企业面临的重要问题。

本文将从数仓建设的方法论出发,探讨如何进行数仓建设。

一、需求分析在开始数仓建设之前,首先需要进行需求分析。

需求分析是数仓建设的基础,只有明确了业务方的需求,才能有针对性地进行设计和开发。

需求分析的基本步骤包括:明确业务目标、梳理业务流程、定义指标体系、分析数据需求等。

通过充分了解和沟通,确保需求的准确性和完整性。

二、数据采集数据采集是数仓建设的关键环节之一。

在数据采集阶段,需要选择合适的数据采集工具和技术,将各个业务系统的数据进行抽取、清洗和转换,以适应数仓的数据模型和数据质量要求。

同时,还需要考虑数据的实时性和准确性,确保采集到的数据能够真实反映业务的变化。

三、数据存储数据存储是数仓建设的核心环节之一。

在数据存储阶段,需要选择合适的数据存储方式和技术,建立稳定可靠的数据仓库。

常用的数据存储方式包括关系型数据库、列式存储数据库、分布式文件系统等。

根据业务需求和数据规模,选择合适的存储方式,并进行数据分区和索引设计,提高数据的查询效率。

四、数据加工数据加工是数仓建设的重要环节之一。

在数据加工阶段,需要进行数据清洗、数据集成、数据转换和数据计算等操作,以满足业务分析和决策的需求。

数据加工的目标是将原始数据转化为可用于分析和报表的数据,提供给业务用户进行数据挖掘、统计分析和可视化展示。

五、数据应用数据应用是数仓建设的最终目标和价值所在。

在数据应用阶段,需要根据不同业务部门和用户的需求,开发相应的数据应用系统和工具。

常见的数据应用包括报表系统、数据分析平台、数据挖掘模型等。

通过数据应用,将数仓中的数据转化为有价值的信息和知识,为企业的决策和业务发展提供支持。

数仓构建流程

数仓构建流程

数仓构建流程数仓构建就像盖房子,是个挺有趣又复杂的事儿。

先得有个规划,这规划就好比你要盖房子前心里得有个草图。

你得知道这数仓是为啥建的,是为了分析销售数据,还是为了统筹企业资源啥的。

如果是分析销售数据,那你就得想好要收集哪些数据,像各个门店的销售额、不同时间段的销售量、各种商品的销售占比这些。

这时候,就像是在心里构思房子有几个房间,每个房间干啥用一样。

然后就是数据源的确定。

这数据源可多了去了,可能是公司内部的各种业务系统,像销售系统里记录的每一笔订单,库存管理系统里的货物进出情况,也可能是从外面收集来的数据,比如市场调研报告啥的。

这就像是找盖房子的材料,有的是自己家里现成的,有的得从外面买回来。

你得清楚这些数据源的格式、质量啥的。

比如说销售系统的数据可能是按每天的订单流水记录的,那格式可能是表格形式,里面有日期、商品编号、数量、价格这些列。

可要是市场调研报告,可能就是个文档形式,你还得把有用的信息提取出来整理成能放到数仓里的样子。

接着就是数据抽取了。

这就像是把找来的材料往工地上运。

你得用合适的工具把数据从数据源那里拿过来。

要是数据源是数据库,可能就用一些数据库查询语句来抽取数据。

比如说从MySQL数据库里把销售数据按照一定的条件抽取出来。

这过程中还得小心数据量太大把系统搞崩了,就像你运材料的时候不能一次性装太多,车子会坏一样。

再之后是数据清洗。

这数据啊,就像刚采来的菜,里面可能有脏东西。

数据里可能会有错误值、重复值或者不完整的值。

比如说销售数据里可能某个订单的价格写成了负数,这肯定不对啊。

你就得把这些有问题的数据找出来处理掉。

就像把菜上的烂叶子摘掉一样。

然后是数据转换。

这一步就像是把原材料加工成能盖房子的构件。

数据可能要进行各种计算、汇总啥的。

比如把销售额按照月份汇总,或者把商品价格根据汇率进行换算。

这都是为了让数据更符合数仓的需求。

数据加载是个关键步骤。

这就好比把加工好的构件组装到房子上。

把清洗转换好的数据放到数仓里,可能是存到数据仓库的特定表结构里。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

昆明理工大学信息工程与自动化学院学生实验报告(2015—2016学年第1学期)课程名称:数据仓库与数据挖掘开课实验室:444 2015年10月24日年级、专业、班计科121 学号姓名成绩实验项目名称数据仓库的构建指导教师教师评语该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□该同学的实验能力: A.强□ B.中等□ C.差□该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□实验报告是否规范: A.规范□ B.基本规范□ C.不规范□实验过程是否详细记录: A.详细□ B.一般□ C.没有□教师签名:年月日一、上机目的及内容目的:1、理解数据库与数据仓库之间的区别与联系;2、掌握典型的关系型数据库及其数据仓库系统的工作原理以及应用方法;3、掌握数据仓库建立的基本方法及其相关工具的使用。

内容:以SQL Server为系统平台,设计、建立数据库,并以此为基础创建数据仓库。

要求:利用实验室和指导教师提供的实验软件,认真完成规定的实验项目,真实地记录实验中遇到的各种问题和解决的方法与过程,并绘出模拟实验案例的数据仓库模型。

实验完成后,应根据实验情况写出实验报告。

二、实验原理及基本技术路线图(方框原理图或程序流程图)数据仓库,由数据仓库之父W.H.Inmon于1990年提出,主要功能仍是将组织透过资讯系统之联机交易处理(OLTP)经年累月所累积的大量资料,透过数据仓库理论所特有的资料储存架构,作一有系统的分析整理,以利各种分析方法如线上分析处理(OLAP)、数据挖掘(Data Mining)之进行,并进而支持如决策支持系统(DSS)、主管资讯系统(EIS)之创建,帮助决策者能快速有效的自大量资料中,分析出有价值的资讯,以利决策拟定及快速回应外在环境变动,帮助建构商业智能(BI)。

三、所用仪器、材料(设备名称、型号、规格等或使用软件)1台PC及Microsoft SQL Server套件四、实验方法、步骤(或:程序代码或操作过程)--建立数据USE masterCREATE DATABASE [DW] ON PRIMARY( NAME = N'DW', FILENAME = N'E:\DW.mdf' )LOG ON( NAME = N'DW_log', FILENAME = N'E:\DW_log.ldf' )GOUSE DW----------------------------------1、建维表/*1.1 订单方式*/CREATE TABLE DIM_ORDER_METHOD(ONLINEORDERFLAG INT,DSC VARCHAR(20))/*1.2 销售人员及销售地区*/CREATE TABLE DIM_SALEPERSON(SALESPERSONID INT,DSC VARCHAR(20),SALETERRITORY_DSC VARCHAR(50))/*1.3 发货方式*/CREATE TABLE DIM_SHIPMETHOD(SHIPMETHODID INT,DSC VARCHAR(20))/*1.4 订单日期*/CREATE TABLE DIM_DATE(TIME_CD VARCHAR(8),TIME_MONTH VARCHAR(6),TIME_YEAR VARCHAR(6),TINE_QUAUTER VARCHAR(8),TIME_WEEK VARCHAR(6),TIME_XUN VARCHAR(4))/*1.5 客户*/CREATE TABLE DIM_CUSTOMER(CUSTOMERID INT,CUSTOMER_NAME VARCHAR(100),CUSTOMERTYPE VARCHAR(20),AGE INT,SEX VARCHAR(2),MaritalStatus VARCHAR(10),YearlyIncome VARCHAR(50),Education VARCHAR(50),Occupation VARCHAR(50),NumberCarsOwned INT,TotalChildren INT,COUNTRY_NAME VARCHAR(100),STATEPROVINCE_NAME VARCHAR(100),CITY_NAME VARCHAR(100))/*1.6 订单状态*/CREATE TABLE DIM_ORDER_STATUS(STATUS INT ,DSC VARCHAR(30))/*1.7 客户价值*/CREATE TABLE V_SUBTOTAL_VALUES(ORDER_VALUES_ID INT,DSC VARCHAR(30),MIN_VALUE INT,MAX_VALUE INT)---------------------------------------二、维度表的ETL-------------------------------------INSERT INTO DIM_ORDER_METHODVALUES (0,'销售人员')INSERT INTO DIM_ORDER_METHODVALUES (1,'客户在线')INSERT INTO DIM_SHIPMETHODSELECT ShipMethodID,NAME FROM AdventureWorks.Purchasing.ShipMethodINSERT INTO DIM_SALEPERSONSELECT A.SalesPersonID,'',FROM AdventureWorks.Sales.SalesPerson A,AdventureWorks.Sales.SalesTerritory B WHERE A.TerritoryID=B.TerritoryIDINSERT INTO DIM_ORDER_STATUSVALUES(1,'处理中')INSERT INTO DIM_ORDER_STATUSVALUES(2,'已批准')INSERT INTO DIM_ORDER_STATUSVALUES(3,'预订')INSERT INTO DIM_ORDER_STATUSVALUES(4,'已拒绝')INSERT INTO DIM_ORDER_STATUSVALUES(5,'已发货')INSERT INTO DIM_ORDER_STATUSVALUES(6,'已取消')INSERT INTO V_SUBTOTAL_VALUESVALUES(1,'0-100',0,100 )INSERT INTO V_SUBTOTAL_VALUESVALUES(2,'100-500',100,500 )INSERT INTO V_SUBTOTAL_VALUESVALUES(3,'500-1000',500,1000 )INSERT INTO V_SUBTOTAL_VALUESVALUES(4,'1000-2000',1000,2000 )INSERT INTO V_SUBTOTAL_VALUESVALUES(5,'2000-5000',2000,5000 )INSERT INTO V_SUBTOTAL_VALUESVALUES(6,'5000以上',5000,1000000000 )declare @day dateTIMESET @day='2001-01-01'while @day<'2005-01-01'BEGINinsert into DIM_DATESELECT CONVERT(CHAR(8),@day,112),CONVERT(CHAR(6),@day,112),CONVERT(CHAR(4),@day,112)+'年','第'+CAST(DATEname(QUARTER , @day) AS VARCHAR(1))+'季度',DATEname(weekday , @day),case WHEN DATEPART(DAY,@day)<11 THEN '上旬' WHEN DATEPART(DAY,@day)<21 THEN '中旬' ELSE '下旬' ENDSELECT @day=DATEADD(DAY,1,@day)ENDINSERT INTO DIM_CUSTOMERSELECT A.CustomerID,G.FirstName,CASE WHEN A.CustomerType='I' THEN '个人' ELSE '商店' END,DATEDIFF(YEAR,Demographics.value('declare namespacezhh="/sqlserver/2004/07/adventure-works/IndividualSurvey";(/zhh:IndividualSurvey/zhh:BirthDate)[1]','VARCHAR(10)'),GETDATE()) , Demographics.value('declare namespacezhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:Gender)[1]','VARCHAR(2)') ,Demographics.value('declare namespacezhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:MaritalStatus)[1]','VARCHAR(10)') ,Demographics.value('declare namespacezhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:YearlyIncome)[1]','VARCHAR(20)') ,Demographics.value('declare namespacezhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:Education)[1]','VARCHAR(20)') ,Demographics.value('declare namespacezhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:Occupation)[1]','VARCHAR(20)') ,Demographics.value('declare namespacezhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:NumberCarsOwned)[1]','int') ,Demographics.value('declare namespacezhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:TotalChildren)[1]','int') ,,,D.CityFROM AdventureWorks.Sales.Customer A,AdventureWorks.Sales.Individual B,AdventureWorks.Sales.CustomerAddress C,AdventureWorks.Person.Address D,AdventureWorks.Person.StateProvince E,AdventureWorks.Person.CountryRegion F,AdventureWorks.Person.Contact GWHERE A.CustomerID=B.CustomerIDAND A.CustomerID=C.CustomerIDAND C.AddressID=D.AddressIDAND D.StateProvinceID=E.StateProvinceIDAND E.CountryRegionCode=F.CountryRegionCodeAND B.ContactID=G.ContactID----------------------------------------------------------------------------三、建事实表CREATE TABLE FACT_SALEORDER(SALEORDERID INT,TIME_CD VARCHAR(8),STATUS INT,ONLINEORDERFLAG INT,CUSTOMERID INT,SALESPERSONID INT,SHIPMETHOD INT,ORDER_VALUES INT,SUBTOTAL DECIMAL(10,2),TAXAMT DECIMAL(10,2),FREIGHT DECIMAL(10,2))-------------------------------------四、事实表的ETL/*4.1 FACT_SALEORDER的ETL*/TRUNCATE TABLE FACT_SALEORDERINSERT INTO FACT_SALEORDERSELECT SalesOrderID,CONVERT(CHAR(8),A.OrderDate,112) ,A.Status,A.OnlineOrderFlag,ISNULL(A.CustomerID,0),ISNULL(A.SalesPersonID,0),A. ShipMethodID,B.ORDER_VALUES_ID,A.SubTotal,A.TaxAmt,A.FreightFROM AdventureWorks.Sales.SalesOrderHeader A,V_SUBTOTAL_VALUES BWHERE A.SubTotal>=B.MIN_VALUE AND A.SubTotal<B.MAX_VALUE--缺省值处理INSERT INTO DIM_CUSTOMERselect DISTINCT CUSTOMERID,'未知','商店',0,'N','N','未知','未知','未知',0,0,'未知','未知','未知' from FACT_SALEORDERwhere CUSTOMERID not in (SELECT CUSTOMERIDFROM dbo.DIM_CUSTOMER )INSERT INTO DIM_SALEPERSONselect DISTINCT SALESPERSONID,'未知','未知' from FACT_SALEORDERwhere SALESPERSONID not in (SELECT SALESPERSONIDFROM dbo.DIM_SALEPERSON )select * FROM FACT_SALEORDER WHERE CUSTOMERID IS NULLSELECT * FROM FACT_SALEORDER AWHERE NOT EXISTS (SELECT 1 FROM dbo.DIM_CUSTOMER BWHERE A.CUSTOMERID=B.CUSTOMERID)select * FROM FACT_SALEORDER WHERE TIME_CD IS NULLSELECT * FROM FACT_SALEORDER AWHERE NOT EXISTS (SELECT 1 FROM dbo.DIM_DATE BWHERE A.TIME_CD=B.TIME_CD)select * FROM FACT_SALEORDER WHERE SHIPMETHOD IS NULLSELECT * FROM FACT_SALEORDER AWHERE NOT EXISTS (SELECT 1 FROM dbo.DIM_SHIPMETHOD BWHERE A.SHIPMETHOD=B.SHIPMETHODID)select * FROM FACT_SALEORDER WHERE STATUS IS NULLSELECT * FROM FACT_SALEORDER AWHERE NOT EXISTS (SELECT 1 FROM dbo.DIM_ORDER_STATUS BWHERE A.STATUS =B.STATUS )select * FROM FACT_SALEORDER WHERE SALESPERSONID IS NULLSELECT DISTINCT SALESPERSONID FROM FACT_SALEORDER AWHERE NOT EXISTS (SELECT 1 FROM dbo.DIM_SALEPERSON BWHERE A.SALESPERSONID =B.SALESPERSONID )select * FROM FACT_SALEORDER WHERE ONLINEORDERFLAG IS NULLSELECT * FROM FACT_SALEORDER AWHERE NOT EXISTS (SELECT 1 FROM dbo.DIM_ORDER_METHOD BWHERE A.ONLINEORDERFLAG =B.ONLINEORDERFLAG )select * FROM FACT_SALEORDER WHERE ORDER_VALUES IS NULLSELECT * FROM FACT_SALEORDER AWHERE NOT EXISTS (SELECT 1 FROM dbo.V_SUBTOTAL_VALUES BWHERE A.ORDER_VALUES =B.ORDER_VALUES_ID )insert into DIM_SALEPERSONvalues(0,'','无')UPDATE FACT_SALEORDER SET SALESPERSONID=0 WHERE SALESPERSONID NOT IN (SELECT SALESPERSONIDFROM DIM_SALEPERSON)select * from DIM_CUSTOMERwhere customerid in (select customerid from FACT_SALEORDERgroup by customeridhaving COUNT(*)>1)order by customeridSELECT * INTO AAAA FROM (SELECT A.*,ROW_NUMBER() OVER (PARTITION BY CUSTOMERIDORDER BY AGE ) AS OrderRankFROM DIM_CUSTOMER A) B WHERE OrderRank=1TRUNCATE TABLE DIM_CUSTOMERINSERT INTO DIM_CUSTOMERSELECT CUSTOMERID, CUSTOMER_NAME, CUSTOMERTYPE, AGE, SEX, MaritalStatus, YearlyIncome, Education, Occupation, NumberCarsOwned, TotalChildren, COUNTRY_NAME, STATEPROVINCE_NAME, CITY_NAME FROM AAAA五、实验过程原始记录( 测试数据、图表、计算等)六、实验结果、分析和结论(误差分析与数据处理、成果总结等。

相关文档
最新文档