OLAP与数据仓库设计实验报告_第1页
OLAP与数据仓库设计实验报告_第2页
OLAP与数据仓库设计实验报告_第3页
OLAP与数据仓库设计实验报告_第4页
OLAP与数据仓库设计实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、OLAP与数据仓库设计实验报告姓名专业软件与服务工程学号实验日期11/11实验简要说明本次试验是为了完成数据仓库中维度表的ETL处理。教师评分实验目的本次试验主要是将样例数据库中的数据装载到数据仓库中,这里使用ETL工具Kettle。本次试验须完成维度表的装载。实验环境本次试验需要如下环境:1)计算机要求:操作系统:不限,可以使windows也可以是Linux。内存:建议大于512M。硬盘:30G及其以上。2)数据库方面要求:数据库采用mysql,数据仓库也采用mysql完成。ETL工具要求:这里采用开源ETL工具Kettle。实验任务将样例数据库中的数据经过ETL过程装载到数据仓库中,主要是

2、完成维度表格的装载。提交完成的转换和job。实验步骤一、title维度表转换1、首先把mysql-connector-java-5.1.15-bin.jar文件放到pentaho/pdi-ce-5.1.0.0-752/data-integration/lib文件夹中,然后点击set-pentaho-env.bat设置环境,在点击Spoon.bat运行,如下图所示:2、将employees样例数据导入到数据库employees中,在MySQL中新建一个数据库test,并按照实验三给出的星型模型在test中建立employee,department,title,time,salaries这五张表,

3、并按照实验三的要求预先确定变之间的关系,结构如下图所示:3、在spoon中新建一个“title转换”,在其中加入一个“表输入”对象“employees-titles表输入”对其进行如下设置:在“数据库连接”处点击新建,如下设置,点击测试,成功后确认。4、加入一个“增加序列”对象以保证title表中的title_key是自增的,设置如下:5、加入一个“表输出”对象“test-title表输出”,如下设置:在“数据库连接处”点击新建,如下设置:6、连接各个对象如下图所示:点击执行,“步骤度量”如下图显示:查看test数据库的title表,如下图所示:二、department维度表转换1、新建一个转

4、换“emp转换”,添加一个“表输入”对象“employees-dep表输入”,如下图所示:在“数据库连接”处点击新建,如下图所示配置:2、加入“字段选择”对象,做如下设置:3、加入“增加序列”对象,进行如下设置;4、添加一个“表输出”对象“test-dept表输出”,进行如下配置:在“数据库连接”处点击新建,如下配置:5、将各个对象连接起来,获得如下结果:点击运行,则在“步骤度量”里显示运行成功:查看数据库test的deptment表,结果显示如下:三、employee维度表转换1、新建一个“emptrans”转换,在其中加入“表输入”对象“employees-emp表输入”,其设置如下图所示

5、:点击“数据库连接”出的新建,配置如下:2、加入一个“增加序列”对象,进行如下设置:3、加入“值映射”对象,进行如下设置:4、加入“表输出”对象“test-emp表输出”,如下图设置:点击“数据库连接”处的新建,建立如下连接:将各个对象连接起来获得如下结果:数据库显示结果如下:四、time维度表转换由于时间是连续的,这里选择用java连接MySQL数据库,直接将1085年到2014年之间的所有日期都导入到test数据库的time维度表中,代码如下所示:package ymd;import java.sql.*;public class myTest /声明Connection对象 Connec

6、tion con; Statement st; /驱动程序名 String driver = com.mysql.jdbc.Driver; /URL指向要访问的数据库名test String url = jdbc:mysql:/localhost:3306/test; /MySQL配置时的用户名 String user = root; /MySQL配置时的密码 String password = 1qaz2wsx; int year=1985; int month; int day; public void setConnection() throws Exception try Class.

7、forName(driver); con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/test, root, 1qaz2wsx); con.setAutoCommit(true); st = con.createStatement(); for(;year=2014;year+) for(month=1;month=12;month+) if(month=2) if(runYear(year) for(day=1;day=29;day+) String sql=insert into time(year_name,month

8、_name,day_name) values( + year+ ,+month+,+day+); st.executeUpdate(sql); else for(day=1;day=28;day+) String sql=insert into time(year_name,month_name,day_name) values( + year+ ,+month+,+day+); st.executeUpdate(sql); else if(bigMonth(month) for(day=1;day=31;day+) String sql=insert into time(year_name,

9、month_name,day_name) values( + year+ ,+month+,+day+); st.executeUpdate(sql); else for(day=1;day=30;day+) String sql=insert into time(year_name,month_name,day_name) values( + year+ ,+month+,+day+); st.executeUpdate(sql); System.out.println(year); st.close(); con.close(); catch (Exception e) System.ou

10、t.println(year); e.printStackTrace(); public boolean runYear(int year) if(year%400=0 | (year%4=0&year%100!=0) return true; else return false; public boolean bigMonth(int month) if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) return true; else return false; public static void main(Strin

11、gargs) myTest mt = new myTest(); try mt.setConnection(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); 查看test数据库中的time维度表,发现数据插入成功:实验结果最后新建一个job“myjob”来执行以上的转换,在其中加入“开始”和“部门转换”、“职位转换”和“雇员转换”三个转换对象,转换对象具体如下图设置:在每个转换对象执行之前我们还对数据库的连接以及其后用到的表的存在性进行了检查,最后连接各个对象如下图所示:实验总结通过本次实验,我对kettle的图形界面工具spoon的使用有了一定的了解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论