pdf/word/ppt/... 文件读取插件 - 输入步骤
最近需要做一个 Common File Reader 的 kettle 插件,希望这个插件可以读取例如 PDF, WORD, PPT, WPS 等常见格式文件的内容,今天已经实现了第一步,读取 PDF 的功能。该插件是一个输入步骤, 它可以将读取到的 PDF 文件的每一页作为一行输入记录。下面是一个比较典型的应用例子: [@more@]这是一个简单的文件检索流程,可以用于小批量的文件检索,检索的输入,输出和规则都可以自定义,在这个例子里,我们可以这样定义:输入1 是一个目录,通过一个表达式(如 .*.pdf$)来指定只读取一个目录下的所有扩展名是pdf 的文件。输入2 是一个 exc
kettle 里的 NULL 和空字符串
在 kettle 里, NULL 和空字符串是不加区别的,就是说如果往数据库里插入一个空字符串,你会发现数据库里插入的是 NULL,这对 ORACLE 的 DBA 的来说可能是司空见惯的事情,但对于 SqlServer 和 Mysql 的 DBA 来说可能就是无法接受的事情。[@more@]最近在帮助一个使用的 Mysql 数据库的客户,修改 kettle 里的这个问题,在修改之前,觉得这个一个影响很大的问题,所以想在先到论坛看看大家对这个问题怎么看。官方论坛里对这个问题争论的比较激烈,下面是论坛里有关这一问题的讨论。http://forums.pentaho.org/showthread.php?t=68478
mondrian output 的插件和代码现在可以下载了。
mondrian output 的插件和代码现在可以下载了。这个插件可以把 mondrian 的查询结果以 excel 和 chart 的方式展现出来, 并放在 kettle 的结果文件里,继续处理,如作为邮件附件等。[@more@]src:http://wiki.pentaho.com/download/attachments/1049091/mondrianoutput_src.zip?version=1bin:http://wiki.pentaho.com/download/attachments/1049091/mondrian_output_plugin_distrib.zip?version=1或http://www.xgndata.com/download.htm
kettle 里的 variables, arguments, 和 parameters
kettle 3.2 以前的版本里只有 variable 和 argument, 所以在 GUI 上对这两个单词的汉化,分别是变量和参数。但是在 kettle 3.2 中,又引入了 parameter 概念http://jira.pentaho.com/browse/PDI-1381, [@more@]kettle 里新加的 parameters 全称是Named parameters,通过 Named parameters 是相对于以前的 Positional arguments 而言的,以前的 Positional arguments 就是最多能设置的 10 个命令行参数,通过在命令行参数的位置来区别。 而 Named parameters, 可以通过名称来区别,并可以在命令行中通过 /param:name=value 的方式设
1 to N 数据同步和双向数据同步
最近在做两个数据同步的项目。第一个数据同步项目要求一个系统向多个系统同步,有些类似于 SqlServer 订阅发布的概念,不过一个源和多个目标的数据库的结构差别很大,是不同的应用系统。第二个数据同步项目要求在两个异构数据库系统之间进行双向同步。[@more@]对于第一个项目的需求,我们继续使用了以前开发的 kettle 数据同步插件,但因为原来的插件只支持1 to 1的同步,不支持1 to N 的同步。我 们又对这个插件做了扩展,增加了同步序号这个输入项,通过这个输入项,可以指定当前的同步是第几个同步。如下图:第二个项目由于时间的关系,
表增量输入步骤
增量抽取是应用项目中很常见的一种需求。在本 blog 前面的文章中对增量抽取的几种实现方式有比较详细的说明。这里要介绍的表增量输入步骤就是基于触发器这种方式以 kettle 插件的方式实现的。对于各类支持触发器的数据库,都可以使用这个插件来进行增量抽取。[@more@]基于触发器的增量抽取的主要思路就是对要增量抽取的数据表建立触发器来监控表的增、删、改操作。每当有对表的上述操作,操作影响到的记录或者记录的主键都会被保存到一个中间表中(我们称这个中间表为影子表,因为每个表都要有一个中间表来记录下对这个表的历史操作,象表
kettle 的 jasper report 插件
曾经做过一个 kettle 的 japser report 的插件,通过该插件可以给 kettle 增加报表的功能,它可以将 kettle 处理过的数据流转换为报表。在最近的项目中又用到了该插件,并做了一些改进,下面详细介绍一下这个 jasper report 插件。[@more@]下图是插件的界面截图:1. 报表定义文件:jrxml 文件名称,文件名里可以包括 kettle 变量。2. 输出文件:要输出的报表文件名。3. 输出格式:要输出的报表的格式,可以是 excel,pdf,html等格式。4. 参数: 输入报表里要用到的参数名称和参数值,参数值里可以包括 kettle 变量,如图中的 ${YESTERDAY
kettle 的实用小功能
kettle 除了作为 ETL 工具外,还有很多数据处理方面的实用功能,本文介绍几个实用的小功能。1. 文件批量入库该功能可以将一个目录下的全部或部分文件加载到数据库中。流程图:[@more@]第一步: “获取文件名” 步骤获取一个目录下的文件名,使用一个正则表达式来指定文件名。如上图,指定了 E:/opensource/kettle-trunk/ui/images 目录下所有以 .png 结尾的文件名。在这个步骤里创建了下面几个字段来描述所有获取的文件:FILENAME, SHORT_FILENAME, PATH, TYPE, EXISTS, ISHIDDEN, ISREADABLE, ISWRITEABLE, LASTMODIFIEDTIME, SIZE, EXTE
Mondrian license 要从 CPL 改到 EPL 了
Mondrian 3.1 发布后,Mondrian的 license 就要从 CPL 改到 EPL 了,这两个 license 差不多,EPL 是基于CPL 的。 [@more@]不同之处在于 CPL 是由 IBM 支持的,EPL 是 ECLIPSE 支持的。另外在 CPL 里有一个版权诉讼的条款,EPL 将这个条款取消了,所以 EPL 是一个更宽松的 license 。
使用 mondrian output job entry 输出图表
根据开发计划和项目的需要,最近又为 mondrian output job entry 增加了输出图形的功能,目前这个插件支持从 MDX 查询生成 excle 表格和图形,图形以图片的方式保存,并嵌入到excel 的工作簿中。[@more@]如果要输出带有图形的表格,至少要使用两次 mondrian output job entry,第一次是输出图形文件,第二次输出 excel 表格,同时将图形文件嵌入到表格内。 作业设计流程如下: 1. 在作业流程里加入一个 mondrian output job entry ,在这个作业项里输入相应的 mdx 查询,在 chart 选项卡里设置要输出的图形的名称,高度,宽度,是否显
使用 Pentaho 工具创建维度报表的过程
本文简要介绍了如何使用 Pentaho 的相关工具在关系型数据库基础上建立dimension 和cube, 以及如何利用这些cube产生一个报表或图表。 首先要在数据库里建立维度表和事实表。 维度表和事实表就是数据库里普通的物理表, 我们可以使用create table … 这样的语句来建立, 也可以使用工具建立。常见的维度包括时间,区域,产品等。[@more@]如时间维度表可以包括 date_tk, year, quarter, month, week, day_of_month, day_of_year 等字段,其中 date_tk 是主键。 区域维度表可以包括 region_tk, country, province, city, district等字段,其中
使用 Mondrian Output 作业项创建多维报表
Mondrian Output 作业项是我们最近开发的一个 Kettle 作业项, 该作业项的主要功能就是执行 MDX 查询, 并将结果生成一个 Excel 报表.Kettle 的转换里有一个 Mondrian Input 步骤,这个步骤可以执行一个 MDX 语句,并将产生的数据输出到下一个步骤。Mondrian Output 作业项的功能类似于 Mondrian Input 步骤。不过它是一个作业项, 它可以执行一个 MDX 语句,并将 Modrian 执行的结果输出到一个 Excel 文件中,同时该 Excel 文件将被加入到结果文件中,由后续的作业项来处理,如 Mail 作业项可以将该文件作为附件发送。Mondrian Output 作业项
一个小型 BI 项目的总结
最近在做一个小型 BI 项目,项目的工期很紧,现在项目一期已经接近尾声,趁这个机会做个项目总结.项目背景: 该项目的需求方是一家大型的跨国销售类企业, 在世界各地都有销售网点, 每个销售网点会将当日销售/库存等数据上报到业务系统. 数据分析人员定期(日/周/月/季)分析这些数据,并结合其它来源的数据(如销售目标,订单等), 形成相应的报表,用于管理者的决策支持.具体需求: 1. 构建 Data Mart , 根据目前在用的报表( Excel 格式), 设计出相应的Fact Table 和 Dimension Table. 2. 每天将业务系统中的数据抽取到Fact Table中, 保证Fact T