BI商务智能入门资料.doc_第1页
BI商务智能入门资料.doc_第2页
BI商务智能入门资料.doc_第3页
BI商务智能入门资料.doc_第4页
BI商务智能入门资料.doc_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

2009/2/20资料整理篇 | kakapisoftbi商务智能入门资料关键字: data-etl-dw-dm/olap-report olap 1. 目录1.bi概论12.联机事务处理oltp13.etl工具介绍:2mssql-server的dts etl工具介绍3informatica etl工具介绍5oracle warehouse builder工具介绍8etl开源工具kitchen介绍144.数据仓库(data warehouse dw)的架构185.数据集市 data mart186.数据挖掘data mining(dm)20数据挖掘的起源20数据挖掘能做什么20数据挖掘中的关联规则22数据挖掘技术实现26数据挖掘与数据仓库融合发展26统计学与数据挖掘27数据挖掘相关的10个问题297.联机分析处理olap35作用35起源36分类36olap的发展背景37联机分析处理的特点38olap逻辑概念和典型操作39olap系统的体系结构和分类39联机分析处理的实现方式41主要olap厂商产品介绍45olap产品47olap mdx语言488.其他工具1sap1ibm1microstrategy1cognos1sas1microsoft1oracle2sybase iq3161. bi概论bi并不是一项新技术,它将数据仓库(dw)、联机分析处理(olap)、数据挖掘(dm)等技术与客户关系管理(crm)等结合起来 应用于商业活动实际过程当中,实现了技术服务于决策的目的;mark hammond从管理的角度看待bi,认为bi是从“根本上帮助你把公司的运营数据转化成为高价值的可以获取的信息(或者知识),并且在恰当的时间通过恰 当的手段把恰当的信息传递给恰当的人”。data-etl-dw-dm/olap-report olap(essbase,expserver,cognos)基本流程图:2. 联机事务处理oltp 联机分析处理 (olap) 的概念最早是由关系数据库之父e.f.codd于1993年提出的,他同时提出了关于olap的12条准则。olap的提出引起了很大的反响,olap作为一类产品同联机事务处理 (oltp) 明显区分开来。 当今的数据处理大致可以分成两大类:联机事务处理oltp(on-line transaction processing)、联机分析处理olap(on-line analytical processing)。oltp是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。olap是数据仓库系统的主要应用,支 持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 olap是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。olap的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是维这个概念。3. etl工具介绍:etl的定义:将数据抽取(extract)、转换(transform)、清洗(cleansing)、装载(load)的过程。它是构建数据仓库的重要环节。数据仓库是面向主题 的、集成的、稳定的且随时间不断变化的数据集合,用以支持经营管理中的决策制定过程。数据仓库系统中有可能存在着大量的噪声数据,引起的主要原因有:滥用 缩写词、惯用语、数据输入错误、重复记录、丢失值、拼写变化等。即便是一个设计和规划良好的数据库系统,如果其中存在着大量的噪声数据,那么这个系统也是 没有任何意义的,因为“垃圾进,垃圾出”(garbage in, garbage out),系统根本就不可能为决策分析系统提供任何支持。为了清除噪声数据,必须在数据库系统中进行数据清洗。目前有不少数据清洗研究和etl研究,但是 如何在etl过程中进行有效的数据清洗并使这个过程可视化,此方面研究不多。etl为数据仓库服务,数据仓库用于数据分析,数据分析属于bi系统的要干的事儿。 一般中/小型erp系统都会有不成熟的bi系统,为啥叫做不成熟? 因为它们或者有报表分析功能,但不具有olap(在线分析),或者有olap,但却没有数据挖掘和深度分析。或者干脆,来个大集成,直接利用第三方工具来达到相应的目的。 为什么会这样,究其原因,很多情况是因为没有自主的数据仓库,没有数据仓库,其它的做起来也就有些四不象了。而要建立数据仓库,首要的是:etl。 于是,需求就应运而生了。 对了,bi是什么?olap是啥?什么又是数据挖掘?鉴于我只能解释其表面含义,我就不多说了。各位不妨找本数据仓库的书,翻翻前几页,一般就明白了。或者google一把。 我们捡当下最流行的bi应用:olap来说说它与etl的关系。 了解olap的人都知道,它的分析模型由事实表和维表组成。但往往oltp系统中的数据库是为事务而建,而并不为分析而建,而为了bi去改动oltp数据 库是不现实,并且,很多情况下也基本上是不可能的(当然,有些公司把不可能的任务变成可能的,但这显然是一种很僵硬的做法)。 这时候,etl的作用就显出来了,它可以为olap服务,按业务主题提取分析模型进行数据抽取。 (olap分析需要什么样的数据支持?可以参看一下olap的星型模型)。 再说说数据挖掘: 这个课题实在太大,相关的书藉有很多很多,我还得花时间慢慢去学习。简单的说,这涉及erp业务和统计学的知识。现在我暂时还没开始相关学习,但它与 etl的关系却很明显。因为数据挖掘所要求的数据大都是高聚合的已处理的数据,所以,不管从获取难度和效率上来说,都不适合直接从oltp中获取。 同样,需要etl来帮忙。 因此,按本人粗浅的理解: etl实在是: bi系统 设计开发,项目实施 之必备良药! 有句名言讲得好:成为巨人不如站在巨人的肩膀上。 如果想对etl有详尽的了解,不妨先了解一下现有流行的etl工具。 mssql-server的dts etl工具介绍 对于mssql-server的dts,在使用ms sql-server2000时,有最基本的接触,但仅限时简单的数据导入/导出。当开始了解etl时,才发现dts原来就是etl的应用之一。 先不谈论dts的好坏,但它至少ms产品的特点,易学,易用。所以,要了解etl的应用,从dts开始,在我看来,是个不错的选择。我只是学习,所以我没 有能耐去评价它,下面,只能讲dts的功能一一列举出来,可能这些与sql-server的联机帮助有些重复,但对我来说,是一个加深记忆的方法。 一:概念 自完全不同源的数据析取、转换并合并到单个或多个目的。主要应用于企业数据仓库的数据抽取过程,完成从源数据库/文件到数据仓库的抽取和转换过程。 看看,这不就是etl要做的事儿。 二:特征 2.1:基于ole db,很方便从不同的数据源复制和转换数据。 是了,ms总是首要支持自已的其它产品,所以,它选择了最通用的windows的标准。 2.2:有图形化设计器,也可通过编程二次开发。 这也是ms的长项,并且能把其它的东西一股脑儿的集成进来。 2.3:执行效率高于普通ado(sql)操作 据说是这样地,我做过简单的比较,确实不是一个数量级,原理呢?估计可能有较多特殊处理,比如批量插入bcp,传输前的数据压缩等技术,当然,这只是我的猜测。 2.4:可调度。 这对于windows系统,那很容易了,可以利用现成的系统级调度。 三:详细 来说点详细的东东,当然,这里的详细并不指全部,实际上,我也只能挑出比较有代表性的功能点列举一下,要是全部,那还不如抄袭联机帮助了。 3.1:包最小的可调度单元 包是基本任务,由工作流连接而成。包可以嵌套(包中的单个任务可以是执行另一个已存在的包)。 包是调度的直接管理对象,嵌套包保证包任务的重用。 3.2:任务最小的工作流连接单元 分为以下几种任务: 导出和导入数据任务、转换任务、复制数据库对象、邮件/消息发送、transact-sql 语句或 microsoft activex® 脚本执行包、采用com自定义任务。 其中,最常用的应该是普通转换任务。这等同于etl中的t。 3.3:数据连接定义数据源和目的地 分为以下几种: 标准数据库(如 microsoft sql server 2000、microsoft access 2000、oracle、dbase、paradox);与 odbc 数据源的 ole db 连接;microsoft excel 2000 电子表格数据;html 源;以及其它 ole db 提供程序 文件连接数据链接连接(比较特殊) 注意:sql-server作为windows应用产品,dts自然也不支持java。 对于标准数据库是最基本的应用,易于实现。文件连接涉及格式定义,还不算复杂。 3.4:转换数据转换 数据转换,指列进行,有多种方式: 3.4.1:简单复制方式。 3.4.2:简单转换(如,数据格式化,取字符串子串等) 3.4.3:activex脚本(实际上是vbscript和javascript) 3.4.4:调用自定的com对象进行转换。 通常会采用一二方式。如果要将dts集成到你的应用中,可以第三种方式。 3.5:工作流 工作流包括成功,失败,完成。工作流支持脚本控制。可编程控制。 工作流方式对于纯数据抽取意义不大,但是考虑到任务包含收发邮件,信息,上/下传文件,那就有必要了。当然,你也可以将这些任务单独提出到应用端执行,而不采用dts中的任务。 3.6:元数据 元数据方式更多的留备扩展,最基础的应用是用来预定义数据表。 3.7:数据驱动的查询任务(一种特珠的转换方式) 一种很特殊的转换方式,支持参数。这里,单独把它提出来,因为它不是那么容易理解,我花了一些时间,才将其弄明白。 3.7.1:根据源数据的特征决定之后的查询方式(指增,删,改,查询操作)。 3.7.2:支持参数,参数通过定义绑定表来关联,通过定义转换脚本,可以计算出绑定列参数。 3.7.3:转换时可以定义批量处理。 3.7.4:转换支持多阶段抽取,可以定义阶段代码,阶段分为:行转换,转换失败,插入成功,插入失败,批处理完成,抽取完成。 此种应用异常复杂,应属高级应用。简单的看,当转换任务需要根据数据源来确定动作,这是非常有用的。比如你的应用存在多表存储,就可能根据表内的时间来确定之后的动作,达到数据分多表存储的目的。 3.8: 查找查询 作为转换数据任务和数据驱动的查询任务的一种功能。 查找查询使您得以对源和目的之外的其它连接运行查询和存储过程。例如,通过使用查找查询,可以在查询过程中进行单独的连接,并在目的表中包括来自连接的数据。 作为一种扩充功能,实现更复杂的查询操作。 3.9:多任务支持事务处理 除了顺序执行,可以进行并行执行步骤,且支持检查点回滚。 当然,任务的事务仍然依赖于数据源所在所据库是否支持事务。一般情况下,顺序执行已经可以满足抽取需求。 好了,不管对错,还是说说我的看法: 首先:dts中抽取流程定义比较清晰,数据转换功能丰富,可视的设计工具强大,有一定的可扩展性(com定制,脚本支持)。 但是:但学习下来,隐隐约约觉得它有ms产品的通病,就是大而全,如果进行小型应用的集成,它是很方便和够用的,但如果要在大型项目中集成dts,它提供的二次开发方式,就显得有些散乱,缺少一个总体的框架指导。当然,这可能与它的定位有关。informatica etl工具介绍一、总体概述 etl 包括 extract 、 transform 、 cleaning 和 load ,它是用于从生产库中提取数据到数据仓库中,再由具体的报表、统计、分析工具对数据仓库的内容进行分析,分析出自己所需要的数据。 其中 etl 培训的内容是如何利用 informatic powercenter 把源数据库的内容提取存放到目标数据库中。主要 informatic 主要包括四个部分: client , reposity server , reposity database 和 informatic server 每个部分实现自己的功能。 二、系统体系结构 此部分介绍了 informatic etl 工具包括的主要内容。 1.client informatic client 主要有五个部分。 client 可以和 reposity 分离,通过 tcp/ip 连接,连接到远程的 reposity server 。 2. reposity manager 主要用于进行一个 reposity 库的管理,当用户使用 client 工具登录一个 reposity 服务器之后,进行文件夹权限的创建,用户权限、密码的管理等。 3. designer 主要是进行数据抽取的转换工具的设计,主要是 mapping 的设计、设计源数据库的结构,目标数据库的结构,然后设计把源数据导入到目标数据库中,所需要进行的转换操作( transformation )。 同一个 reposity 的 folder 之间可以建立 shortcut 方式,多个 reposity 的 folder 之间只能做拷贝。 4. workflow manager 主要用于流程任务( workflow task )的设计。 进行任务流程的设计、每一个 tast 针对一个 session ,一个 session 针对一个 mapping ,其中 workflow 中的 folder 和 designer 中的 folder 相对应的关系。一版来说,用户都是建立自己的 folder 。 5. workflow monitor 主要进行流程运行、及任务运行时的流程运行情况跟踪。可以跟踪日志。包括 session 日志和 workflow 日志,可以设置生成日志的循环个数。分析 session 运行是对源数据库的数据抽出信息和对目标数据库的更新信息。 6. reposity server application console 主要进行 reposity 的管理,包括 reposity server 的 start , shutdown 操作。进行 reposity 库的 backup 、 restore 等操作,进行 reposity 库级别的管理,级别较高。 7. reposity server reposity server 是为客户端服务的,客户端可以和各种 client 不在一台服务器上。关于数据抽取的设计成果转换成为 xml 格式的源数据,都是通过 reposity server 存放到 reposity database server 上的。8. reposity database server 用于存放的是进行 etl 设计的元数据。可以支持各类的数据库。方式为数据库中用户的一个表目录和用户关系即可。 reposity database 可以和 reposity server 不安装在一台服务器。如果在一台机器上, server 通过 native 方式连接到 database ,如果不在一台及其上,需要在 database 上安装一个 reposity agent ,用户通过 agent ,以 native 方式连接到 reposity 数据库,然后 reposity agent 再以 tcp/ip 方式连接到 reposity server 。 9.informatic server informatic server 是实际执行数据抽取任务的运行环境。即 workflows 、 task 、 sessions 等。它是根据定义的 workflow 元数据库,然后在自己的实际环境中,执行数据抽取操作。三、系统组件功能 informatic 的功能主要体现在 designer 和 workflow manager 上,其中 designer 实现的是对数据抽取的数据转换方式设计,以及效率设计目标等。而在 workflow manager 中再把具体的数据转换方式应用到一个具体的工作任务中,包括目标库、源库的选择,以及一条具体的执行任务的属性设置等等。包括任务的 insert 、 truncate 、 delete 、 increment insert 等。 1.designer 组件 ( 1 )工作区 在 designer 中,涉及到的工作区主要包括有 source analyzer 、 warehouse designer 、 transformation designer 、 mapplet designer 和 mapping designer 。 其中每个工作区的功能分别介绍: source analyzer : source analyzer 的功能是实现对源数据库表的设计,可以手工的进行源数据库的设计,一般都是通过从 flat file 或者 relation dbms 中导入数据库的表结构。 xls 文件结构。 warehouse designer 用于设计目标数据库库的结构,可以利用手工设计,也可以利用 import 工具导入导一个 warehouse 的结构。 transformation designer 用户设计可重用的 transformation 组件,这里的组件,在一个 folder 里面都是可以重用的,而且以 shortcut 的方式使用。 transformation 组件的修改,会直接反映到使用此 transformation 的 mapping 中。 mpplet 设计可以重用的多个组件,只要有 output 组件,可以有 input 组件,也可以没有 input 组件,实现的功能就和一个 expression 的功能类似,实现功能。 mapping designer 实现的功能是设计具体进行抽取数据的 mapping ,这些 mapping 应用到一个 workflow 中,形成了 workflow 的一个 session ( task )。 ( 2 ) 组件功能 支持多种语言开发:c、c+、javaetl 支持的组件主要包括两类: active 组件和 passive 组件,其中 active 组件是对输入记录集在输出时个数有变化的组件, passive 组件,输入的记录集,输出时记录集的个数不发生改变。 informatic 提供的组件包括: (1) source qualifier: reads data from flat file & relational sources (2) expression: performs row-level calculations (3) filter: drops rows conditionally (4) sorter: sorts data (5) aggregator: performs aggregate calculations (6) joiner: joins heterogeneous sources (7) lookup: looks up values and passes them to other objects (8) update strategy: tags rows for insert, update, delete, reject (9) router: splits rows conditionally (10) sequence generator: generates unique id values (11) normalizer:izes records from relational or vsam sources (12) rank: filters the top or bottom range of records (13) union : merges data from multiple pipelines into one pipeline (14) transaction control: allows user-defined commits (15) stored procedure: calls a database stored procedure (16) external procedure : calls compiled code for each row (17) custom: calls compiled code for multiple rows (18) midstream xml parser: reads xml from database table or message queue (19) midstream xml generator: writes xml to database table or message queue 每一类组件都有自己独特的功能和特点,这里介绍主要的组件包括上述红色的内容。每一种组件的详细功能这里不详细介绍。 2.workflow 组件 workflow 是对执行任务的执行进行控制,可以在执行时对执行的任务进行传参数进行传入,这样就能在执行的时候把数据库表进行动态的设置。 可以在执行的时候选择参数文件,对 mapping 、 workflow 中的 session 的参数进行传入。达到动态执行的目的。 workflow 中定义 workflow 、 session 等任务,对这些任务的执行进行管理控制。 四、补充说明 source qualifier 支持同构数据源的连接,衣钩数据源的连接通过 n-1 个 jointer 组件实现。 lookup 为 passive 组件,查出的多条记录集,要么取 first ,或者 last ,或者报错。 lookup 可以时动态 / 静态 ,可以 connected/unconnect 。oracle warehouse builder工具介绍oracle warehouse builder,常简称为owb,能够将无格式结构的平面文件(flat file)加载到数据库的过程自动化。许多数据库管理员对sql*loader工具和shell脚本的混合使用非常熟悉,再加上在各个不同的地方进行一些cron配置就可以完成数据加载的过程。owb也能够完成这样的任务(而且还有更多的功能),通过提供一个向导驱动兼备大量断点和观查点提示及点击功能的图形用户界面来完成这一过程。通过其“设计中心”和“控制中心”界面,用户可以设计并部署etl过程(本文重点关注其中的加载过程,也就是将分隔数值的平面文件内容加载到一个表,而且在加载的过程中数据不发生改变)。此外,etl的部署不局限于你当前正在工作的服务器,owb让你能够在一台服务器上设计etl过程,然后将设计的步骤部署到另一台服务器上,如果你想要,还可以部署到更多的服务器上。这个操作背后的整个程序是怎样一个概念呢?我们来看看要完成整个操作需要进行的步骤,也许能够帮你理清大概的框架:1. 指定源文件,包括文件所在位置及其性质。2. 创建一个外部表,作为数据字典的存储器。3. 确认数据库中“真实”表,如有需要创建该表。4. 在有计划的基础上进行整个过程,或一次性完成整个处理过程。owb对这个过程的处理方法是利用与这些对象相关的元数据(metadata),通过设计映射和进程流(也称为过程流)来绑定他们。事实上,可以将进程流作为一个可视化假象进行创建,也就是说,owb实际所使用的工作流只是owb生成的一个进程流模式图,不过这个模式图足以当作工作流来使用。把这个过程的每一部分都当作一个对象来考虑:文件、文件的位置、外部表、真实表、将flat文件映射到外部表的过程、最后运行的作业等等。所有的这些都是对象,而这些对象都可以通过层级和依赖性将这些对象绑定起来。每个对象类型都存在一个模块当中。由于这个工具是基于java语言的,所以面向对象的设计是可行的。一般来说,每个对象都是一个实例或者是通过某种方法实例化的对象。过程一个典型的etl过程模式包括在循环的基础上加载一个平面文件(你也可以只执行其中的映射部分)。如果你将该过程分解为涉及项目树不同部分的若干步骤,那么就很容易搞清楚整个任务了。一个项目的开始,首先需要在oracle下创建一个一个模块。提示大家,要记住几乎每一个类别都涉及到相同的两个步骤:创建模块和导入元数据。而且抽样并不总是基于同一个表。下图显示了一个展开的项目树:按照我们想要构建etl过程的步骤,在项目树里涉及到的项目领域是:文件(files) 外部表(external tables) 表(tables) 映射(mappings)一旦完成映射的步骤,你就需要下拉到进程流(process flows)和调度(schedules)在计划浏览器面板的“文件(files)”项目下创建一个新模块,指定数据源文件的位置,如下图所示:完成“创建模块”步骤并进入到“导入元数据向导”。这里你如果告诉owb需要加载的内容是平面文件时,就会启动“平面文件抽样向导”,完成平面文件结构的定义。记住要给日期字段添加日期格式。当指定平面文件并对其抽样后,就可以准备创建关于外部表的元数据了。“平面文件抽样向导”的第一个步骤如下图所示:骤如下图所示:图三当要确定字段分隔符时,你除了可以从下拉表中选择向导所提供的分隔符之外,还可以手动输入其他的分隔符。一旦完成了外部表定义,你就可以马上部署外部表,并在目标架构中创建该表。下一步,我们就要创建表了。如果要从头开始创建表,就打开“数据对象编辑器”进行表的设计。确保列定义和外部表相应的列定义相匹配。最好首先部署外部表,然后在sql*plus中通过ctas从外部表(只是表定义,并非数据)创建表。接下来的步骤就是将外部表的内容映射到真实表。创建一个新映射,并如下图所示映射相关列。图四部署该映射,如果部署成功的话,这时候你就可以手动运行(开始)从外部表将数据加载到真实表。通过进入“控制中心”可以核实并查看该过程的运行,如下图所示。图五如果想要将这个进程流自动化进行,就需要创建一个新的“进程模块”。创建进程流模块、程序包和进程流,然后进入到“进程编辑器”。添加映射操作,执行结果如下图所示:图六一旦完成了进程流模式图,我们就可以创建一个新的调度,调度应当是通用的,也就是说不能与任何东西绑定。你必须要回到映射步骤,将映射与调度关联起来。一旦部署了调度,那么就可以将上述的平面文件加载过程自动化了。etl开源工具kettle介绍 现在是一个google的时代,而对于开发者,开源已成为最重要的参考书。对于某课题,不管你是深入研究还是初窥门径。估且google一把,勾一勾同行的成就,你必会获益良多。 说到etl开源项目,kettle当属翘首,项目名称很有意思,水壶。按项目负责人matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。呵呵,外国人都很有联想力。 看了提供的文档,然后对发布程序的简单试用后,可以很清楚得看到kettle的四大块:chef工作(job)设计工具 (gui方式) kitchen工作(job)执行器 (命令行方式)spoon转换(transform)设计工具 (gui方式)span转换(trasform)执行器 (命令行方式)文章出处:/course/7_databases/database_other/200855/113439.htmletl开源工具kitchen介绍说到etl开源项目,kettle当属翘首,因此,偶决定花点时间了解一下。 项目名称很有意思,水壶。按项目负责人matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。呵呵,外国人都很有联想力。 看了提供的文档,然后对发布程序的简单试用后,可以很清楚得看到kettle的四大块: chef工作(job)设计工具 (gui方式) kitchen工作(job)执行器 (命令行方式) spoon转换(transform)设计工具 (gui方式) span转换(trasform)执行器 (命令行方式) 嗯,厨师已经在厨房里,勺子和盘子一应俱全,且看能做出如何的大餐? 一:chef工作(job)设计器 这是一个gui工具,操作方式主要通过拖拖拉拉,勿庸多言,一看就会。 何谓工作? 多个作业项,按特定的工作流串联起来,开成一项工作。正如:我的工作是软件开发。我的作业项是:设计、编码、测试!先设计,如果成功,则编码,否则继续设计,编码完成则开始设计,周而复始,作业完成。 来,看看chef中的作业项: 1.1: 转换:指定更细的转换任务,通过spoon生成。通过field来输入参数。 1.2: sql:sql语句执行, 1.3: ftp:下载ftp文件。 1.4: 邮件:发送邮件。 1.5: 检查表是否存在, 1.6: 检查文件是否存在, 1.7: 执行shell脚本。如:dos命令。 1.8: 批处理。(注意:windows批处理不能有输出到控制台)。 1.9: job包。作为嵌套作业使用。 1.10:javascript执行。这个比较有意思,我看了一下源码,如果你有自已的script引擎,可以很方便的替换成自定义script,来扩充其功能。 1.11:sftp:安全的ftp协议传输。 1.12:http方式的上/下传。 好了,看看工作流: 如上文所述,工作流是作业项的连接方式。分为三种:无条件,成功,失败。这个没啥好说的,从名字就能知道它的意图。嗯,为了方便工作流使用,提供了几个辅助结点单元(你也可将其作为简单的作业项): 1:start单元,任务必须由此开始。设计作业时,以此为起点。 2:ok单元:可以编制做为中间任务单元,且进行脚本编制,用来控制流程。 3:error单元:用途同上。 4:dummy单元:啥都不做,主要是用来支持多分支的情况。文档中有例子,不再多说。 存储方式: 支持xml存储,或存储到指定数据库中。 一些默认的配置(如数据库存储位置),在系统的用户目录下,单独建立了一个.kettle目录,用来保存用户的这些设置。 logview:可查看执行日志。 二:kitchen作业执行器 是一个作业执行引擎,用来执行作业。这是一个命令行执行工具,没啥可讲的,就把它的参数说明列一下。 -rep : repository name 任务包所在存储名 -user : repository username 执行人 -pass : repository password 执行人密码 -job : the name of the job to launch 任务包名称 -dir : the directory (dont forget the leading / or ) -file : the filename (job xml) to launch -level : the logging level (basic, detailed, debug, rowlevel, error, nothing) 指定日志级别 -log : the logging file to write to 指定日志文件 -listdir : list the directories in the repository 列出指定存储中的目录结构。 -listjobs : list the jobs in the specified directory 列出指定目录下的所有任务 -listrep : list the defined repositories 列出所有的存储 -norep : dont log into the repository 不写日志 嗯,居然不支持调度。看了一下文档,建议使用操作系统提供的调度器来实现调度,比如:windows可以使用它的任务计划工具。 三:spoon转换过程设计器 gui工作,用来设计数据转换过程,创建的转换可以由pan来执行,也可以被chef所包含,作为作业中的一个作业项。 下面简单列举一下所有的转换过程。(简单描述,详细的可见spoon文档) 3.1:input-steps:输入步骤 3.1.1:text file input:文本文件输入, 可以支持多文件合并,有不少参数,基本一看参数名就能明白其意图。 3.1.2:table input:数据表输入 实际上是视图方式输入,因为输入的是sql语句。当然,需要指定数据源(数据源的定制方式在后面讲一下) 3.1.3:get system info:取系统信息 就是取一些固定的系统环境值,如本月最后一天的时间,本机的ip地址之类。 3.1.4:generate rows:生成多行。 这个需要匹配使用,主要用于生成多行的数据输入,比如配合add sequence可以生成一个指定序号的数据列。 3.1.5:xbase input: 3.1.6:excel input: 3.1.7:xml input: 这三个没啥可讲的,看看参数就明了。 3.2:output-steps: 输出步聚 3.2.1:text file output:文本文件输出。 这个用来作测试蛮好,呵呵。很方便的看到转换的输出。 3.2.2:table output:输出到目的表。 3.2.3:insert/update:目的表和输入数据行进行比较,然后有选择的执行增加,更新操作。 3.2.4:update:同上,只是不支持增加操作。 3.2.5:xml output: 3.3:look-up:查找操作 database: stream: procedure: database join: 很简单,看看参数就明白了。 3.4:transform 转换 (嗯,重点) 3.4.1:select values: 对输入的行记录数据 的字段进行更改 (更改数据类型,更改字段名或删除) 数据类型变更时,数据的转换有固定规则,可简单定制参数。可用来进行数据表的改装。 3.4.2: filter rows: 对输入的行记录进行 指定复杂条件 的过滤。 用途可扩充sql语句现有的过滤功能。但现有提供逻辑功能超出标准sql的不多。 3.4.3:sort rows:对指定的列以升序或降序排序,当排序的行数超过5000时需要临时表。 3.4.4:add sequence:为数据流增加一个序列, 这个配合其它step(generate rows, rows join),可以生成序列表,如日期维度表(年、月、日)。 3.4.5:dummy:不做任何处理,主要用来作为分支节点。 3.4.6:join rows:对所有输入流做笛卡儿乘积。 3.4.7:aggregate:聚合,分组处理 3.4.8:group by:分组 用途可扩充sql语句现有的分组,聚合函数。但我想可能会有其它方式的sql语句能实现。 3.4.9:java script value:使用mozilla的rhino作为脚本语言,并提供了很多函数,用户可以在脚本中使用这些函数。 3.4.10. row normaliser:该步骤可以从透视表中还原数据到事实表, 通过指定维度字段及其分类值,度量字段,最终还原出事实表数据。 3.4.11. unique rows:去掉输入流中的重复行 在使用该节点前要先排序,否则只能删除连续的重复行。 3.4.12. calculator:提供了一组函数对列值进行运算, 所介绍,使用该方式比用户自定义java script脚本速度更快。 3.4.13. merge rows:用于比较两组输入数据,一般用于更新后的数据重新导入到数据仓库中。 3.4.14. add constants:增加常量值。 这个我没弄明白它的用法? 3.4.15. row denormaliser:同normaliser过程相反。 3.4.16. row flattener:表扁平化处理 指定需处理的字段和扃平化后的新字段,将其它字段做为组合key进行扃平化处理。 3.5:extra:除了上述基本节点类型外还定义了扩展节点类型 3.5.1:split fields, 按指定分隔符拆分字段 3.5.2:execute sql script,执行sql语句 3.5.3:cube input, 3.5.4:cube output等。 这两个没明白是啥意思。 3.6:其它 存储方式: 与chef相同。 数据源(connection);见后。 hops:setp连接起来,形成hops。 plugin step types等节点:这个没仔细看,不知如何制作plugin step。 logview:可查看执行日志。 四:pan转换的执行工具 命令行执行方式,可以执行由spoon生成的转换任务。 同样,不支持调度。 参数与kitchen类似,可参见pan的文档。 五:其它 connection: 可以配置多个数据源,在job或是trans中使用,这意味着可以实现跨数据库的任务。 支持大多数市面上流行的数据库。观点: 1:转换功能全,使用简洁。作业项丰富,流程合理。但缺少调度。 2:java代码,支持的数据源范围广,所以,跨平台性较好。 3:从实际项目的角度看,和其它开源项目类似,主要还是程序员的思维,缺少与实际应用项目(专业领域)的更多接轨,当然,项目实施者的专注点可能在于一个平台框架,而非实际应用(实际应用需要二次开发)。 4:看过了大多数源码,发现源码的可重用性不是太好(缺少大粒度封装),有些关键部分好象有bug。 比如:个别class过于臃肿,线程实现的同步有问题。 5:提供的工具有些小错,如参数的容错处理。4. 数据仓库(data warehouse dw)的架构数据仓库(data warehouse dw)是为了便于多维分析和多角度展现而将数据按特定的模式进行存储所建立起来的关系型数据库,它的数据基于oltp源系统。数据仓库中的数据是细节的、集成的、面向主题的,以olap系统的分析需求为目的。数据仓库的架构模型包括了星型架构(图二:pic2.bmp)与雪花型架构(图三:pic3.bmp)两种模式。如图所示,星型架构的中间为事实表,四周为维度表,类似星星;而相比较而言,雪花型架构的中间为事实表,两边的维度表可以再有其关联子表,从而表达了清晰的维度层次关系。从olap系统的分析需求和etl的处理效率两方面来考虑:星型结构聚合快,分析效率高;而雪花型结构明确,便于与oltp系统交互。因此,在实际项目中,我们将综合运用星型架构与雪花型架构来设计数据仓库。那么,下面我们就来看一看,构建企业级数据仓库的流程。5. 数据集市 data mart数据集市(data mart)的形式实现数据仓库。标准的数据仓库作为企业级应用,其涉及的范围和投入的成本常常是巨大的,它的建设很容易形成高投入、慢进度的大项目。数据集市是

温馨提示

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

评论

0/150

提交评论