chris's profile空空的影子--止境的专栏PhotosBlogListsMore Tools Help

chris Jian

This person's network is empty (or maybe they're keeping it private).

空空的影子--止境的专栏

December 21

几款BI相关的开源工具

我们都知道“瞎子摸象”的故事。不同的瞎子对大象的认识不同,因为他们只认识了自己摸到的地方。而企业如果要避免重犯这样的错误,那就离不开商务智能(BI)。专家认为,BI对于企业的重要性就像聪明才智对于个人的重要性。欧美企业的经验也证明,企业避免无知和一知半解危险的有效手段就是商务智能。商务智能旨在充分利用企业在日常经营过程中收集的大量数据和资料,并将它们转化为信息和知识来免除各种无知状态和瞎猜行为。   

支持BI的开源工具数量众多,但是大多数的工具都是偏重某方面的。例如,CloverETL偏重ETL,JPivot偏重多维分析展现,Mondrian是OLAP服务器。而Bee、Pentaho和SpagoBI等项目则针对商务智能问题提供了完整的解决方案。

ETL 工具

ETL开源工具主要包括CloverETL和Octupus等。

(1)CloverETL是一个Java的ETL框架,用来转换结构化的数据,支持多种字符集之间的转换(如ASCII、UTF-8和ISO-8859-1等);支持JDBC,同时支持dBase和FoxPro数据文件;支持基于XML的转换描述。

(2)Octupus是一个基于Java的ETL工具,它也支持JDBC数据源和基于XML的转换定义。Octupus提供通用的方法进行数据转换,用户可以通过实现转换接口或者使用Jscript代码来定义转换流程。

OLAP服务器

(1)Lemur主要面向HOLAP,虽然采用C++编写,但是可以被其他语言的程序所调用。Lemur支持基本的操作,如切片、切块和旋转等基本操作。

(2)Mondrian面向ROLAP包含4层:表示层、计算层、聚集层、存储层。

● 表示层:指最终呈现在用户显示器上的以及与用户之间的交互,有许多方法来展现多维数据,包括数据透视表、饼、柱、线状图。

● 计算层:分析、验证、执行MDX查询。

● 聚集层:一个聚集指内存中一组计算值(cell),这些值通过维列来限制。计算层发送单元请求,如果请求不在缓存中,或者不能通过旋转聚集导出的话,那么聚集层向存储层发送请求。聚合层是一个数据缓冲层,从数据库来的单元数据,聚合后提供给计算层。聚合层的主要作用是提高系统的性能。

● 存储层:提供聚集单元数据和维表的成员。包括三种需要存储的数据,分别是事实数据、聚集和维。

OLAP客户端

JPivot是JSP风格的标签库,用来支持OLAP表,使用户可以执行典型的OLAP操作,如切片、切块、上钻、下钻等。JPivot使用Mondrian服务器,分析结果可以导出为Excel或PDF文件格式。

数据库管理系统

主要的开源工具包括MonetDB、MySQL、MaxDB和PostgreSQL等。这些数据库都被设计用来支持BI环境。MySQL、MaxDB和PostgreSQL均支持单向的数据复制。BizGres项目的目的在于使PostgreSQL成为数据仓库和 BI的开源标准。BizGres为BI环境构建专用的完整数据库平台。

完整的BI开源解决方案

1.Pentaho 公司的Pentaho BI 平台

它是一个以流程为中心的、面向解决方案的框架,具有商务智能组件。BI 平台是以流程为中心的,其中枢控制器是一个工作流引擎。工作流引擎使用流程定义来定义在 BI 平台上执行的商务智能流程。流程可以很容易被定制,也可以添加新的流程。BI 平台包含组件和报表,用以分析这些流程的性能。BI 平台是面向解决方案的,平台的操作是定义在流程定义和指定每个活动的 action 文档里。这些流程和操作共同定义了一个商务智能问题的解决方案。这个 BI 解决方案可以很容易地集成到平台外部的商业流程。一个解决方案的定义可以包含任意数量的流程和操作。

BI平台包括一个 BI 框架、BI 组件、一个 BI 工作台和桌面收件箱。BI 工作台是一套设计和管理工具,集成到Eclipse环境。这些工具允许商业分析人员或开发人员创建报表、仪表盘、分析模型、商业规则和 BI 流程。Pentaho BI 平台构建于服务器、引擎和组件的基础之上,包括J2EE 服务器、安全与权限控制、portal、工作流、规则引擎、图表、协作、内容管理、数据集成、多维分析和系统建模等功能。这些组件的大部分是基于标准的,可使用其他产品替换之。

2.ObjectWeb

该项目近日发布了SpagoBi 1.8版本。SpagoBi 是一款基于Mondrain+JProvit的BI方案,能够通过OpenLaszlo产生实时报表,为商务智能项目提供了一个完整开源的解决方案,它涵盖了一个BI系统所有方面的功能,包括:数据挖掘、查询、分析、报告、Dashboard仪表板等等。SpagoBI使用核心系统与功能模块集成的架构,这样在确保平台稳定性与协调性的基础上又保证了系统具有很强的扩展能力。用户无需使用SpagoBI的所有模块,而是可以只利用其中的一些模块。

SpagoBI使用了许多已有的开源软件,如Spago和Spagosi等。因此,SpagoBI集成了 Spago的特征和技术特点,使用它们管理商务智能对象,如报表、OLAP分析、仪表盘、记分卡以及数据挖掘模型等。SpagoBI支持BI系统的监控管理,包括商务智能对象的控制、校验、认证和分配流程。SpagoBI采用Portalet技术将所有的BI对象发布到终端用户,因此BI对象就可以集成到为特定的企业需求而已经选择好的Portal系统中去。

3.Bee项目

该项目是一套支持商务智能项目实施的工具套件,包括ETL工具和OLAP 服务器。Bee的ETL工具使用基于Perl的BEI,通过界面描述流程,以XML形式进行存储。用户必须对转换过程进行编码。Bee的ROLAP 服务器保证多通SQL 生成和强有力的高速缓存管理(使用MySQL数据库管理系统)。ROLAP服务器通过SOAP应用接口提供丰富的客户应用。Web Portal作为主要的用户接口,通过Web浏览器进行报表设计、展示和管理控制,分析结果可以以Excel、PDF、PNG、PowerPoint、 text和XML等多种形式导出。

Bee项目的特点在于:

● 简单快捷的数据访问;

● 支持预先定义报表和实时查询;

● 通过拖拽方式轻松实现报表定制;

● 完整报表的轻松控制;

● 以表和图进行高质量的数据展示。 

找出全表(索引)扫描SQL

Select OBJ.OWNER,OBJ.OBJECT_NAME,count(*),
(select ROUND(sum(SEG.BYTES) / 1024 / 1024, 2) from DBA_SEGMENTS SEG
where SEG.OWNER=OBJ.OWNER and SEG.SEGMENT_NAME=OBJ.OBJECT_NAME ) OBJSIZE_M
from DBA_OBJECTS OBJ,
SYS.X$BH XBH
where OBJ.OBJECT_TYPE in ('TABLE', 'INDEX') and
XBH.OBJ = OBJ.DATA_OBJECT_ID and
BITAND(XBH.FLAG, 524288) > 0 and
OBJ.OWNER not in ('SYS', 'SYSTEM', 'XDB')
group by OBJ.OWNER,
OBJ.OBJECT_NAME
order by 3 desc;

select OPNAME,
TARGET,
TO_CHAR(START_TIME, 'yy-mm-dd:hh24:mi:ss') START_TIME,
ELAPSED_SECONDS ELAPSED,
EXECUTIONS EXECS,
BUFFER_GETS / DECODE(EXECUTIONS, 0, 1, EXECUTIONS) BUFGETS,
MODULE,
SQL_TEXT
from V$SESSION_LONGOPS SL,
V$SQLAREA SA
where SL.SQL_HASH_VALUE = SA.HASH_VALUE and
UPPER(SUBSTR(MODULE, 1, 4)) <>'RMAN' and
SUBSTR(OPNAME, 1, 4)<> 'RMAN' and
MODULE <>'SQL*Plus' and
SL.START_TIME > TRUNC(sysdate) - 100
order by START_TIME;
 

Windows Mobile 5.0 SDK 下载地址

Windows Mobile 5.0 开发包:
(包括工具和学习资源):
http://download.microsoft.com/download/6/0/8/608530c5-7e9a-4032-bf18-92d90b5f4ab4/WM Developer Resource Kit.msi

单独下载:
SDK for Pocket PC:

http://download.microsoft.com/download/d/2/e/d2e43e33-53b0-45b6-ba70-fe6fdc4aa5bb/Windows Mobile 5.0 Pocket PC SDK.msi

SDK for Smartphone:
http://download.microsoft.com/download/8/8/9/889268f4-dcd2-4f1b-844b-3a43bb52ea7b/Windows Mobile 5.0 Smartphone SDK.msi

Pocket PC简体中文仿真:
http://download.microsoft.com/download/b/7/5/b7566ed3-6940-4541-8cf2-3e0fc1fafbc4/Windows Mobile 5.0 Emulator Images for Pocket PC - CHS.msi

Smartphone简体中文仿真:

http://download.microsoft.com/download/f/b/e/fbe92946-c14c-48e0-ae8d-efd1804e6982/Windows Mobile 5.0 Emulator Images for Smartphone - CHS.msi

Microsoft® Windows® CE 5.0 Device Emulator:
http://download.microsoft.com/download/7/4/4/744a8606-9c52-4d59-8abb-8ca71ab5f2ab/setup.exe

ActiveSync 4.1:
http://download.microsoft.com/download/3/0/b/30b7a21c-6931-49c3-9f8c-d166e0120c92/setup.exe

Linux如何建立FTP(ProFTP的设置)

一、FTP简介

  在网络应用中,最广泛的当属WWW和FTP这两种。FTP就是File Transport Protocol文件传输协议的缩写,FTP服务器能够在网络上提供文件传输服务。FTP服务器根据服务对象的不同可分为匿名服务器(Anonymous Ftp Server)和系统FTP服务器。前者是任何人都可以使用,后者就只能是在FTP服务器上有合法账号的人才能使用。

二、ProFTPD简介

  目前在UNIX和LINUX下常用的免费FTP服务器软件主要是Wu-FTP和 ProFTP这两种。Wu-FTP广泛应用在众多的Unix和Linux系统中,是RedHat Linux默认的FTP服务器软件,但是被发现安全漏洞也相当多。ProFTP正是针对Wu-FTP的弱项而开发的,除了改进的安全性,还具备许多Wu- FTP没有的特点,如设置简单,能以Stand-alone模式运行等等。ProFTP已经成为继Wu-FTP之后最为流行的FTP服务器软件,越来越多的站点选用它构筑安全高效的FTP站点,TurboLinux就是一个例子。

三、ProFTP的设置

  设置目标:把IP为10.0.8.39的RedHat Linux配置为FTP服务器,并允许以anonymous匿名访问FTP服务器,且只允许同一网段(10.0.8.*)的电脑对FTP的“incoming”目录有“Write”权限。

  ProFTP的最新版本可以从www.proftpd.org上下载。这里我们以稳定的1.2.1版本的rpm安装包为例子(源代码编译也很简单)加以解说。

第一步:配置基本的匿名服务器

  下载1.2.1的rpm后,在Gnome窗口下右键单击文件,单击“Show info”,查看rpm包的一些信息,这里我们要注意的是一些文件的默认安装路径,如/usr/local/etc/proftpd.conf (ProFTPD的配置文件),/usr/sbin/proftpd(以stand-alone模式运行Proftpd的命令), /usr/doc/proftpd-1.2.1(Proftpd的文档及配置实例文件所在目录),然后双击rpm包安装软件。

  如果你像我一样,安装RedHat Linux7.0时选择了FTP服务,那你先得把安装的Wu-FTP软件删除。输入“rpm -e anonftp”和“rpm -e wu-ftpd”删除已有的FTP服务。

  ProFTP安装结束后,编辑/usr/local/etc/proftpd.conf,找到“Group nobody”,改为“Group nobody”,因为RedHat Linux7.0中没有“nobody”这个组。到此为止,一个提供匿名服务的FTP服务器已经可以运行了。输入“proftpd”运行FTP服务,然后 “ftp 10.0.8.39”以“anonymous”登录,看能否正常登录。一般来说,都能够登录进去的。

  注意:直接运行“Proftpd”将使FTP服务以stand-alone模式启动,该模式相对与dameon进程模式更具安全性,推荐使用。不过你可以把“Proftpd”加入到/etc/rc.d/rc.local里,这样电脑启动完毕,Proftpd也就启动了。
第二步:配置incoming子目录的权限

  打开proftpd.conf,在和段之间添加如下设置:

 


 Order allow,deny
 Allow from 10.0.8.
 Deny from all

 


  表示在incoming这个子目录下,从10.0.8这个网段登录的客户端有写入“WRITE”权限,其它人对该目录的写如权限都是被禁止的。如果要对所有的用户开放写入权限,只要把和之间的内容换成“Allowall“。

四、FTP服务器相关命令

1、ftpshut:关闭FTP服务,并在/etc下生成文件shutmsg。要重新开放FTP服务,把/etc/shutmsg删除。
2、ftpcout:FTP服务器在线人数信息显示。
3、ftpwho:FTP服务器在线人员名单。


附录:Proftpd.conf全文及解释

# This is a basic ProFTPD configuration file (rename it to
# proftpd.conf for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.

ServerName "MY REDHAT LINUX FTP" #设定FTP服务器的名称

ServerType standalone #设置FTP以Standalone模式运行,而不是以dameon模式

DefaultServer on #默认FTP服务器工作

# Port 21 is the standard FTP port.

Port 21 #FTP服务默认占用的端口

# Umask 022 is a good standard umask to prevent new dirs and files

# from being group and world writable.
Umask 022 #默认

RequireValidShell off #保证匿名用户正常登录,不要更改

ServerIdent off #不显示ftp服务器版本信息,以增强安全性

# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30

# Set the user and group that the server normally runs at.

User nobody #设置FTP服务以nobody运行

Group nobody #注意:原来是“Group nobody”,一定要改为“Group nobody”

# Normally, we want files to be overwriteable.

 AllowOverwrite on


# A basic anonymous configuration, no upload directories.下面一段就是匿名服务的设置。


User ftp #匿名登录使用ftp用户

Group ftp #匿名登录使用ftp组

# We want clients to be able to login with "anonymous" as well as "ftp"

UserAlias anonymous guest #给ftp用户anonymous的别名,使得anonymous登录就是ftp用户登录。

# Limit the m

一、FTP简介

  在网络应用中,最广泛的当属WWW和FTP这两种。FTP就是File Transport Protocol文件传输协议的缩写,FTP服务器能够在网络上提供文件传输服务。FTP服务器根据服务对象的不同可分为匿名服务器(Anonymous Ftp Server)和系统FTP服务器。前者是任何人都可以使用,后者就只能是在FTP服务器上有合法账号的人才能使用。

二、ProFTPD简介

  目前在UNIX和LINUX下常用的免费FTP服务器软件主要是Wu-FTP和 ProFTP这两种。Wu-FTP广泛应用在众多的Unix和Linux系统中,是RedHat Linux默认的FTP服务器软件,但是被发现安全漏洞也相当多。ProFTP正是针对Wu-FTP的弱项而开发的,除了改进的安全性,还具备许多Wu- FTP没有的特点,如设置简单,能以Stand-alone模式运行等等。ProFTP已经成为继Wu-FTP之后最为流行的FTP服务器软件,越来越多的站点选用它构筑安全高效的FTP站点,TurboLinux就是一个例子。

三、ProFTP的设置

  设置目标:把IP为10.0.8.39的RedHat Linux配置为FTP服务器,并允许以anonymous匿名访问FTP服务器,且只允许同一网段(10.0.8.*)的电脑对FTP的“incoming”目录有“Write”权限。

  ProFTP的最新版本可以从www.proftpd.org上下载。这里我们以稳定的1.2.1版本的rpm安装包为例子(源代码编译也很简单)加以解说。

第一步:配置基本的匿名服务器

  下载1.2.1的rpm后,在Gnome窗口下右键单击文件,单击“Show info”,查看rpm包的一些信息,这里我们要注意的是一些文件的默认安装路径,如/usr/local/etc/proftpd.conf (ProFTPD的配置文件),/usr/sbin/proftpd(以stand-alone模式运行Proftpd的命令), /usr/doc/proftpd-1.2.1(Proftpd的文档及配置实例文件所在目录),然后双击rpm包安装软件。

  如果你像我一样,安装RedHat Linux7.0时选择了FTP服务,那你先得把安装的Wu-FTP软件删除。输入“rpm -e anonftp”和“rpm -e wu-ftpd”删除已有的FTP服务。

  ProFTP安装结束后,编辑/usr/local/etc/proftpd.conf,找到“Group nobody”,改为“Group nobody”,因为RedHat Linux7.0中没有“nobody”这个组。到此为止,一个提供匿名服务的FTP服务器已经可以运行了。输入“proftpd”运行FTP服务,然后 “ftp 10.0.8.39”以“anonymous”登录,看能否正常登录。一般来说,都能够登录进去的。

  注意:直接运行“Proftpd”将使FTP服务以stand-alone模式启动,该模式相对与dameon进程模式更具安全性,推荐使用。不过你可以把“Proftpd”加入到/etc/rc.d/rc.local里,这样电脑启动完毕,Proftpd也就启动了。
第二步:配置incoming子目录的权限

  打开proftpd.conf,在和段之间添加如下设置:

 


 Order allow,deny
 Allow from 10.0.8.
 Deny from all

 


  表示在incoming这个子目录下,从10.0.8这个网段登录的客户端有写入“WRITE”权限,其它人对该目录的写如权限都是被禁止的。如果要对所有的用户开放写入权限,只要把和之间的内容换成“Allowall“。

四、FTP服务器相关命令

1、ftpshut:关闭FTP服务,并在/etc下生成文件shutmsg。要重新开放FTP服务,把/etc/shutmsg删除。
2、ftpcout:FTP服务器在线人数信息显示。
3、ftpwho:FTP服务器在线人员名单。


附录:Proftpd.conf全文及解释

# This is a basic ProFTPD configuration file (rename it to
# proftpd.conf for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.

ServerName "MY REDHAT LINUX FTP" #设定FTP服务器的名称

ServerType standalone #设置FTP以Standalone模式运行,而不是以dameon模式

DefaultServer on #默认FTP服务器工作

# Port 21 is the standard FTP port.

Port 21 #FTP服务默认占用的端口

# Umask 022 is a good standard umask to prevent new dirs and files

# from being group and world writable.
Umask 022 #默认

RequireValidShell off #保证匿名用户正常登录,不要更改

ServerIdent off #不显示ftp服务器版本信息,以增强安全性

# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30

# Set the user and group that the server normally runs at.

User nobody #设置FTP服务以nobody运行

Group nobody #注意:原来是“Group nobody”,一定要改为“Group nobody”

# Normally, we want files to be overwriteable.

 AllowOverwrite on


# A basic anonymous configuration, no upload directories.下面一段就是匿名服务的设置。


User ftp #匿名登录使用ftp用户

Group ftp #匿名登录使用ftp组

# We want clients to be able to login with "anonymous" as well as "ftp"

UserAlias anonymous guest #给ftp用户anonymous的别名,使得anonymous登录就是ftp用户登录。

# Limit the maximum number of anonymous logins

MaxClients 10 #最多10个匿名用户同时在线

# We want welcome.msg displayed at login, and .message displayed

# in each newly chdired directory.

DisplayLogin welcome.msg #登录FTP显示的欢迎信息。放在FTP的根目录下。

DisplayFirstChdir .message

# Limit WRITE everywhere in the anonymous chroot

#说明看正文。

aximum number of anonymous logins

MaxClients 10 #最多10个匿名用户同时在线

# We want welcome.msg displayed at login, and .message displayed

# in each newly chdired directory.

DisplayLogin welcome.msg #登录FTP显示的欢迎信息。放在FTP的根目录下。

DisplayFirstChdir .message

# Limit WRITE everywhere in the anonymous chroot

#说明看正文。

MyEclipse学习笔记

1。插件安装有三种方法:

    a、是将文件靠到eclipse的根目录,如文件夹取名为chajian,下层文件夹为eclipse,下层文件夹为     features和plugins,再在eclipse的根目录建links文件夹,内部建chajian.link,编辑为path=    chajian (或者c:/eclipse/chajian,即绝对和相对路径皆可),就ok了(多个插件可以定义一个        pluge.link,一个path=***一行;或者定义多个.link文件,每个包含一个path)。

    b、是把插件包内的plugins和features内的文件拷贝到本目录下plugins和 features中。

    c、通过Help->Software Update->Find and Instal直接安装

2.打包成jar文件时,需要根据自定义的文件生成MANIFEST.MF,其中每行的冒号后面都有一个空格,否则出错。例:Manifest-Version: 1.0(1.0前有空格,其他行也是如此)

3.由数据库中的表自动建立.java和.hbm.xml文件

    a.建立项目:打开带HibernateTools插件的eclipse,建立一个名为“test”的java project,内部新   建一个名字为src的source folder。

    b. 建立hibernate配置文件:新建“hibernate configuration file”,输出路径选择“test项目的src目录”,然后的对话框填写配置文件(包括database dialect,driver class,connection url,username,password,creat a console configuration),下一个对话框先填写name(即console configuration name),再点“add external jars”,选择数据库驱动的jar文件,看到src中有“hibernate.cfg.xml”就是配置文件建立成功。

    c. 建立目标文件:点工具栏hibernate图标,选择“hibernate code generation...”,在弹出的对话框中点击左侧“新建”,把名字改为“test”,console configuration选刚才建立的console configuration name,package填想生成的包结构,点reveng.xml的“setup”,接下来对话框选择test的src目录,然后导入需要的数据库表(有关联的就要导入,即外键的表也要导入),然后点“finish”;选择main右边的exporters,选中generate domain code,generate mappings三项,run,刷新项目,看到包中生成的.java和.hbm.xml文件,成功,把它们拷入myeclipse的相应项目里。

hbm文件的主键有一条<generator class="assigned"/>表示用程序来设置主键,一般改为"increment"表示递增生成主键。 

  d.删除Console Configuration:打开Hibernate Console的透视图(perspective),在左侧Hibernate Configuration的视图(view)中右键单击,就可以删除。
删除Hivernate Code Generation:点击工具栏Hibernate图标,左侧即可删除。


4.eclipse 中程序代码做了改变但服务器上的代码没有同步改变,先看其他项目是否也如此(我上次遇到这问题其他项目可以同步改变,故不是eclipse的问题,应该是这个项目的问题);我用尽各种方法都不行,最后把项目从workspace中考出,运行eclpse关闭,再考进去项目,运行,就好了(为什么我也不清楚,可能保存了默认的一些错误设置吧);后来又遇到这种问题,action中的代码改了不起作用,上面方法也不行,删除workspace中代码,再 checkout,就ok了。看来遇到不能同步的问题应该在workspace中删除程序,再checkout就好了。

5.CVS的bug

    在用MyEclipse的CVS时发现,如果项目里其他人新建了文件夹,自己同步代码时就会出错。就算自己也新建了那个文件夹也不行,难道是个bug?还是使用方法的不当。

6.显示列号方法:eclipse的preferences
    a)General -> Editors -> Text Editors -> Show Line Number(java代码行号)
    b)MyEclipse -> Editors => Common Editor Preferences -> Show Line Number(jsp加行号)
都选中 

 
There are no photo albums.

Windows Media Player