saiku+kettle整合(一)环境准备

本文档详细介绍了如何为Saiku与Kettle的整合做环境准备,包括配置必要的Java环境、安装Saiku社区版、设置SchemaWorkbench及Kettle等步骤,并提供了创建日期维度表的具体脚本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


title: saiku+kettle整合(一)环境准备 tags:

  • olap categories: saiku date: 2016-08-25 18:18:55

环境准备

java等基本环境就无须赘述了,建议使用jdk7 对应的软件使用时增加sql-driver.jar

  1. saiku使用ce版本,目前下载地址community.meteorite.bi/ 目前版本需要license免费申请即可

  2. schema workbench图形化创建schema工具sourceforge.net/projects/mo…

  3. kettle  mac安装

    brew install kettle

  4. 创建相关日期维度表

        //Script here
         
        //Create a Locale according to the specified language code 
         
        var locale = new java.util.Locale( 
         
            language_code.getString() 
         
        ,   country_code.getString() 
         
        ); 
         
           
         
        //Create a calendar, use the specified initial date 
         
        var calendar = new java.util.GregorianCalendar(locale); 
         
        calendar.setTime(initial_date.getDate()); 
         
           
         
        //set the calendar to the current date by adding DaySequence days 
         
        calendar.add(calendar.DAY_OF_MONTH,DaySequence.getInteger() - 1); 
         
           
         
        var simpleDateFormat   = java.text.SimpleDateFormat("D",locale); 
         
           
         
        //get the calendar date 
         
        var date = new java.util.Date(calendar.getTimeInMillis()); 
         
        simpleDateFormat.applyPattern("MM"); 
         
        var month_number       = simpleDateFormat.format(date); 
         
        simpleDateFormat.applyPattern("MMMM"); 
         
        var month_name         = simpleDateFormat.format(date); 
         
        simpleDateFormat.applyPattern("yyyy"); 
         
        var year4              = "" + simpleDateFormat.format(date); 
         
        var quarter_number; 
         
        switch(parseInt(month_number)){ 
         
            case 1: case 2: case 3: quarter_number = "1"; break; 
         
            case 4: case 5: case 6: quarter_number = "2"; break; 
         
            case 7: case 8: case 9: quarter_number = "3"; break; 
         
            case 10: case 11: case 12: quarter_number = "4"; break; 
         
        } 
         
        var date_key = DaySequence;
复制代码
        -- ----------------------------
        --  Table structure for `date_dim`
        -- ----------------------------
        DROP TABLE IF EXISTS `date_dim`;
        CREATE TABLE `date_dim` (
          `date_sk` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键,代理键',
          `date` date DEFAULT NULL COMMENT '日期',
          `month_name` varchar(9) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '月份名称',
          `month` int(1) DEFAULT NULL COMMENT '月份',
          `quarter` int(1) DEFAULT NULL COMMENT '季度',
          `year` int(4) DEFAULT NULL COMMENT '年',
          `effective_date` date DEFAULT NULL COMMENT '生效日期',
          `expiry_date` date DEFAULT NULL COMMENT '到期日期',
          `version` int(11) NOT NULL DEFAULT '0',
          PRIMARY KEY (`date_sk`)
        ) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
复制代码
 

![095259_jamg_871390.png][]![095414_vYb2_871390.png][]

 

![095322_vtA9_871390.png][]![095404_wgse_871390.png][]
复制代码
kettle管理工具专门为kettle这款优秀的ETL工具开发的web端管理工具。项目简介kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,般的使用的都是使用客户端操作管理,但问题是当投入生产环境使用时,动辄上百或几百个job需要管理,这时在使用客户端管理已经很难完成了。我所知道的解决方案有用命令行的调用的,操作麻烦,总之还是很难用啦,还有就是开发web端管理工具,kettle自带了个web端管理工具,界面极其简陋不说,还很难用,基本无法投入生产环境使用,其他没留意到还有没有较好对众多job进行管理的工具。基于以上情况,和我近两年的kettle定制开发与使用经验。我设计并开发了这款kettle web端管理工具。本系统当前支持oracle和mysql项目功能job运行参数设置,可以在页面上设置作业运行参数,每次运行作业时会用设置的参数覆盖默认值,这个很多人用不上。定时设置,操作界面与kettle中的开始控件界面致,这个可能是最优用的功能之。作业的运行与停止,核心功能就不说了。实时查看作业运行日志,最大显示行数可以配置,这个功能看起来不起眼,实际应该是很有用的。后台有个作业专门完成将运行的作业日志写入日志文件,文件按天分文件夹存放,日志文件大小可以配置,若觉得占用空间,可以设计个作业进行定时清理以前的日志文件,后续会提供该作业。也可以配置为不写日志文件。作业的运行状态会定时反映到管理界面,我们可以通过多种条件筛选我们需要的作业进行批量运行或停止。本系统是基于数据库资源库设计的,暂时不考虑支持文件资源库。本系统还附带了kettle插件,类似kettle已有的自定义类控件(可以在转换中写java代码)。该控件的设计时为了避免每个需求都去开发kettle控件,从后台元数据管理到操作界面设计。该控件采用灵活的JSON传递参数,然后继承个基类就可以完成个任务了,就是说基于该控件,只需要开发个具体的操作类就可以了。有兴趣可以看下,详细介绍参看:http://www.cnblogs.com/majinju/p/5767046.html。界面截图主界面定时设置界面参数设置界面运行日志查看界面平台级日志,支持查询下载项目介绍主页:kettle-manager主页 标签:Kettle  ETL工具框架
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值