BI商务智能入门资料

上传人:仙*** 文档编号:89718200 上传时间:2022-05-13 格式:DOC 页数:49 大小:588.50KB
返回 下载 相关 举报
BI商务智能入门资料_第1页
第1页 / 共49页
BI商务智能入门资料_第2页
第2页 / 共49页
BI商务智能入门资料_第3页
第3页 / 共49页
点击查看更多>>
资源描述
未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。1. 目录1. BI 概论 错误!2. 联机事务处理 OLTP 错 误!3. ETL工具介绍:错误!MS SQL-Server的 DTS ETLT具介绍 错误!Informatica ETL 工具介绍 错误!Oracle Warehouse Builder 工具介绍 错误!ETL开源工具 Kitchen介绍错误!4. 数据仓库( Data Warehouse DW )的架构 错误!5. 数据集市 Data Mart 错误!6. 数据挖掘 Data Mining(DM) 错误!数据挖掘的起源 错误!数据挖掘能做什么 错误!数据挖掘中的关联规则 错误!数据挖掘技术实现 错误!数据挖掘与数据仓库融合发展 错误!统计学与数据挖掘 错误!数据挖掘相关的 10 个问题 错误!7. 联机分析处理 OLAP 错误!作用 错误!起源 错误!分类 错误!OLAP的发展背景 错误!联机分析处理的特点 错误!OLAP逻辑概念和典型操作错误!OLAP系统的体系结构和分类错误!联机分析处理的实现方式 错误!主要OLAP厂商产品介绍 错误!OLAP产品错误!OLAP MDX语言错误!8. 其他工具 错误!SAP 错误!IBM 错误!Microstrategy 错误!Cognos 错误!SAS 错误!Microsoft 错误!Oracle 错误!Sybase IQ 错误!1. BI概论BI并不是一项新技术,它将数据仓库(DW)、联机分析处理(OLAP)、数据挖掘(DM)等技术与客户关系管理(CRM )等结合起来 应用于商业活动实际过程当中,实现了技术服务于决策的目的;Mark Hammond从管理的角度看待BI,认为BI是从 根本上帮助你把公司的运营数据转化成为高价值的可以获取的信息(或者知识),并且在恰当的时间通过恰当的手段把恰当的信息传递给恰当的人”。Data-ETLDW-DM/OLAP-Report OLAP(Essbase,ExpServer,Cog nos)基本流程图:2. 联机事务处理 OLTP联机分析处理(OLAP)的概念最早是由关系数据库之父,他同时提出了关于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工具。MS SQL-Serve的 DTS ETL工具介绍对于MS SQL-Server 的DTS,在使用 MS SQL-Server2000时,有最基本的接触,但仅限时简单的数据导入 /导出。当开始了解 ETL时,才发现DTS原来就是ETL的 应用之一。先不谈论DTS的好坏,但它至少 MS产品的特点,易学,易用。所以,要了解ETL的应用,从DTS开始,在我看来,是个不错的选择。我只是学习,所以我没有能耐去评价它,下面,只能讲 DTS的功能列举出来,可能这些与SQL-Server 的联机帮助有些重复,但对我来说,是一个加深记忆的方法。一:概念自完全不同源的数据析取、转换并合并到单个或多个目的。主要应用于企业数据仓库的 数据抽取过程,完成从源数据库 /文件到数据仓库的抽取和转换过程。看看,这不就是ETL要做的事儿。二:特征2.1 :基于OLE DB,很方便从不同的数据源复制和转换数据。是了,MS总是首要支持自已的其它产品,所以,它选择了最通用的Windows 的标准。22 :有图形化设计器,也可通过编程二次开发。这也是MS的长项,并且能把其它的东西一股脑儿的集成进来。2.3 :执行效率高于普通 ADO(SQL)操作据说是这样地,我做过简单的比较,确实不是一个数量级,原理呢?估计可能有较多特 殊处理,比如批量插入 bcp,传输前的数据压缩等技术,当然,这只是我的猜测。2.4 :可调度。这对于 Windows 系统,那很容易了,可以利用现成的系统级调度。三:详细来说点详细的东东,当然,这里的详细并不指全部,实际上,我也只能挑出比较有代表 性的功能点列举一下,要是全部,那还不如抄袭联机帮助了。3.1 :包一一最小的可调度单元包是基本任务,由工作流连接而成。包可以嵌套(包中的单个任务可以是执行另一个已存 在的包)。包是调度的直接管理对象,嵌套包保证包任务的重用。3.2 :任务一一最小的工作流连接单元分为以下几种任务:导出和导入数据任务、转换任务、复制数据库对象、邮件/消息发送、Tran sact-SQL语句或Microsoft ActiveX®脚本执行包、采用 COM自定义任务。其中,最常用的应该是普通转换任务。这等同于ETL中的T。3.3 :数据连接一一定义数据源和目的地分为以下几种:标准数据库(如 Microsoft SQL Server 2000、Microsoft Access 2000、Oracl e、dBase、Paradox );与 ODBC 数据源的 OLE DB 连接;Microsoft Excel 2000 电子表格数据;HTML源;以及其它 OLE DB提供程序文件连接数据链接连接(比较特殊)注意:SQL-Server 作为 Windows 应用产品,DTS自然也不支持 Java 。对于标准数据库是最基本的应用,易于实现。文件连接涉及格式定义,还不算复杂。3.4 :转换一一数据转换数据转换,指列进行,有多种方式:,数据格式化,取字符串子串等)通常会采用一二方式。如果要将DTS集成到你的应用中,可以第三种方式。3.5 :工作流工作流包括成功,失败,完成。工作流支持脚本控制。可编程控制。工作流方式对于纯数据抽取意义不大, 但是考虑到任务包含收发邮件, 信息,上/下传文 件,那就有必要了。当然,你也可以将这些任务单独提出到应用端执行,而不采用DTS中的任务。3.6 :元数据元数据方式更多的留备扩展,最基础的应用是用来预定义数据表。3.7 :数据驱动的查询任务一一(一种特珠的转换方式)一种很特殊的转换方式,支持参数。这里,单独把它提出来,因为它不是那么容易理解, 我花了一些时间,才将其弄明白。,删,改,查询操作)。,参数通过定义绑定表来关联,通过定义转换脚本,可以计算出绑定列参数。,可以定义阶段代码,阶段分为:行转换,转换失败,插入成功,插入失败,批处理完 成,抽取完成。此种应用异常复杂,应属高级应用。简单的看,当转换任务需要根据数据源来确定动作, 这是非常有用的。比如你的应用存在多表存储,就可能根据表内的时间来确定之后的动作, 达到数据分多表存储的目的。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. ClientInformatic 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 ServerReposity server 是为客户端服务的,客户端可以和各种client 不在一台服务器上。关于数据抽取的设计成果转换成为XML格式的源数据,都是通过 ReposityServer 存放到 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 ServerInformatic server是实际执行数据抽取任务的运行环境。即 workflows 、task 、 sessions 等。它是根据定义的 workflow 元数据库,然后在自己的实际环 境中,执行数据抽取操作。三、系统组件功能Informatic 的功能主要体现在 Designer 和 Workflow Manager 上,其中 Designer 实现的是对数据抽取的数据转换方式设计,以及效率设计目标等。而在 Workflow Manager中再把具体的数据转换方式应用到一个具体的工作任务中,包括目标库、 源库的选择, 以及一条具体的执行任务的属性设置等等。 包括任务的 insert truncate 、 delete 、 increment insert 等。1. Designer 组件( 1 )工作区在 Designer 中,涉及到的工作区主要包括有Source Analyzer、 WarehouseDesigner 、 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个joi nter 组件实现。Lookup 为passive 组件,查出的多条记录集,要么取first ,或者 last ,或者报错。Lookup 可以时动态 / 静态,可以 connected/uneonnect。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从外部表(只是表定义,并非数据)创建表。接下来的步骤就是将外部表的内容映射到真实表。创建一个新映射,并如下图所示 映射相关列。图四部署该映射,如果部署成功的话,这时候你就可以手动运行(开始)从外部表将数据加载到真实表。通过进入控制中心”可以核实并查看该过程的运行,如下图所示。T Control CenterNumber cf Days:Job1 ; LOAD_COUNTRFSNumber of lienis:10Status7727 5MW8 3:34 PM LAB USER图五如果想要将这个进程流自动化进行,就需要创建一个新的进程模块”。创建进程流模块、程序包和进程流,然后进入到进程编辑器”。添加映射操作,执行结果如下图所示:一旦完成了进程流模式图,我们就可以创建一个新的调度,调度应当是通用的,也 就是说不能与任何东西绑定。你必须要回到映射步骤,将映射与调度关联起来。一 旦部署了调度,那么就可以将上述的平面文件加载过程自动化了。ETL开源工具KETTL阶绍现在是一个 Google的时代,而对于开发者,开源已成为最重要的参考书。对于某课题, 不管你是深入研究还是初窥门径。估且google 一把,勾一勾同行的成就,你必会获益良多。说到ETL开源项目,Kettle当属翘首,项目名称很有意思,水壶。按项目负责人Matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。呵呵,外国人都很 有联想力。看了提供的文档,然后对发布程序的简单试用后,可以很清楚得看到Kettle的四大块:Chef工作(job)设计工具(GUI方式)Kitchen 工作(job)执行器(命令行方式) Spoon转换(transform)设计工具 (GUI方式)Span转换(trasform)执行器(命令行方式)文章出处:/7_databases/database_other/ 200855H13439.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-user-pass-jobRepositoryn ame任务包所在存储名Repositoryuser name执行人Repositorypassword执行人密码The name of the job to launch 任务包名称-dirThe directory(dontforget the leading/ or )-fileThe file name(Job XML) to launch-level : The logginglevel (Basic, Detailed, Debug, Rowlevel, Error, Nothin g)指定日志级别-log : The logging file to write to 指定日志文件-listdir : List the directories in the repository歹U出指定存储中的目录结构。-listjobs : List the jobs in the specified directory歹U出指定目录下的所有任务-listrep:List the defined repositories歹U出所有的存储-n orep:Dont log into the repository不写日志嗯,居然不支持调度。看了一下文档,建议使用操作系统提供的调度器来实现调度,比 如:Windows 可以使用它的任务计划工具。三:Spoon 转换过程设计器GUI工作,用来设计数据转换过程,创建的转换可以由Pan来执行,也可以被 Chef所包含,作为作业中的一个作业项。下面简单列举一下所有的转换过程。(简单描述,详细的可见Spoon文档)3.1 : Input-Steps:输入步骤file in put :文本文件输入,可以支持多文件合并,有不少参数,基本一看参数名就能明白其意图。in put :数据表输入实际上是视图方式输入,因为输入的是sql语句。当然,需要指定数据源(数据源的定制方式在后面讲一下)system info :取系统信息就是取一些固定的系统环境值,如本月最后一天的时间,本机的IP地址之类。Rows :生成多行。这个需要匹配使用,主要用于生成多行的数据输入,比如配合Add seque nee 可以生成一个指定序号的数据列。In put :In put :In put :这三个没啥可讲的,看看参数就明了。3.2 : Output-Steps :输出步聚file output :文本文件输出。这个用来作测试蛮好,呵呵。很方便的看到转换的输出。output :输出到目的表。,然后有选择的执行增加,更新操作。,只是不支持增加操作。Output :3.3 : Look-up :查找操作DataBase:Stream :Procedure : Database join :很简单,看看参数就明白了。3.4 : Transform 转换(嗯,重点)values :对输入的行记录数据的字段进行更改(更改数据类型,更改字段名或删除)数据类型变更时,数据的转换有固定规则,可简单定制参数。可用来进行数据表的改装。Filter rows :对输入的行记录进行指定复杂条件的过滤。用途可扩充sql语句现有的过滤功能。但现有提供逻辑功能超出标准sql的不多。rows :对指定的列以升序或降序排序,当排序的行数超过5000时需要临时表。seque nee :为数据流增加一个序列,这个配合其它 Step(Generaterows, rows join),可以生成序列表,如日期维如有你有帮助,请购买下载,谢谢! 度表(年、月、日)。,主要用来作为分支节点。Rows :对所有输入流做笛卡儿乘积。,分组处理by :分组用途可扩充sql语句现有的分组,聚合函数。但我想可能会有其它方式的sql语句能实现。Script value :使用mozilla的rhino作为脚本语言,并提供了很多函数,用户可以 在脚本中使用这些函数。Row Normaliser :该步骤可以从透视表中还原数据到事实表, 通过指定维度字段及其分类值,度量字段,最终还原出事实表数据。Unique rows :去掉输入流中的重复行在使用该节点前要先排序,否则只能删除连续的重复行。Calculator :提供了一组函数对列值进行运算, 所介绍,使用该方式比用户自定义JAVA SCRIPT脚本速度更快。Merge Rows :用于比较两组输入数据,一般用于更新后的数据重新导入到数据仓库 中。Add constants :增加常量值。 这个我没弄明白它的用法? ?Row denormaliser :同 Normaliser 过程相反。Row flattener :表扁平化处理指定需处理的字段和扃平化后的新字段,将其它字段做为组合Key进行扃平化处理。3.5 : Extra :除了上述基本节点类型外还定义了扩展节点类型FIELDS,按指定分隔符拆分字段SQL SCRIPT,执行 SQL 语句INPUT, OUTPUT 等。这两个没明白是啥意思。3.6 :其它存储方式:与Chef相同。数据源(Connection);见后。Hops : setp 连接起来,形成 Hops。Plugin step types 等节点:这个没仔细看,不知如何制作 Plugin step 。 LogView :可查看执行日志。四:Pan 转换的执行工具命令行执行方式,可以执行由Spoon生成的转换任务。同样,不支持调度。参数与Kitchen 类似,可参见 Pan的文档。 五:其它Conn ecti on可以配置多个数据源,在 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)的形式实现数据仓库。标准的数据仓库作为企业级应用, 其涉及的范围和投入的成本常常是巨大的,它的建设很容易形成高投入、慢进度 的大项目。数据集市是针对某一主题或者某一部门而构建的更小、更集中的数据仓库,它提供了一条部门/工作组级的分析商业数据的廉价途径。数据集市应该 具备的特性包括:规模小、面向特定的应用、面向部门/工作组、快速实现、投资规模小、易使用、全面支持异种机平台等。用户可根据自己的需求,以自己的 方式来建立数据集市。这种方式比较适合我们的客户。以后若有新的分析需求可 以增加新的数据集市而不对现有结构造成不良影响。数据集市有一个显著的特点是针对分析主题而设计。主题由需求决定。根据客户目前提出的需求,我们把数据集市分为三个主题:生产、库存和工艺。以生产主题为例,OLTP系统负责生产计划和实际操作中各种技术细节的处 理,产生了大量的数据。现在需要在这些生产数据的基础上进行如下分析:针对每一个员工生产加工情况统计分析; 针对每一个车间生产情况统计分析; 针对每一次施工生产情况统计分析; 针对每一种产品类型生产情况统计分析; 针对每一种主材料加工情况统计分析; 分年、季度、月对生产情况统计分析。考察OLTP系统,发现工序执行情况表中包含了所有的生产动态情况,对其 处理得到生产事实表。根据需求,选定部门 (车间) 、员工、施工单、产品类别、材料和时间作为维 度表(Dimension Table)。由于分析时很多具体的细节不需要考虑,所以对OLTP的数据模型进行了筛选和转换。得到的多维数据集模型为星型雪花架构:图 2 生产主题多维度数据集的星型雪花架构图采用相似的方法,可以得到库存和工艺多维数据集结构。 得到多维数据集后, 即可按照数据集的结构设定数据集市的表结构。由于数据集市之间是相互隔离 的,所以各个数据集市可以单独运作。根据业务数据和分析数据的物理模型可以用 SQL Server 的数据转换服务 (Data Transaction Service)实现从OLTP系统到OLAP系统的数据提取、整理和 加载。在加载前还必须进行一致性检查。 对每条业务数据记录加上时间戳。 数据 采集并不对业务数据进行转换和汇总, 因此它保持了业务信息的最低粒度, 不仅 可以作为生成业务统计指标的基础, 而且也是以后对数据仓库进行数据挖掘的数 据基础。各个数据集市的数据提取可以单独运作,通过系统调度可以每日 / 每月 自动从业务数据库中采集统计数据。6. 数据挖掘 Data Mining (DM )数据挖掘(Data Mining),又称为数据库中的知识发现(Kno wledge Discovery in Database, KDD) ,就是从大量数据中获取有效的、新颖的、潜在有用的、最终可理解 的模式的非平凡过程,简单的说,数据挖掘就是从大量数据中提取或“挖掘 ”知识。并非所有的信息发现任务都被视为数据挖掘。例如,使用数据库管理系统查找个别的记录, 或通过因特网的搜索引擎查找特定的 Web 页面,则是信息检索 ( information retrieval )领域的任务。虽然这些任务是重要的,可能涉及使用复杂的算法和数据结 构,但是它们主要依赖传统的计算机科学技术和数据的明显特征来创建索引结构,从 而有效地组织和检索信息。尽管如此,数据挖掘技术也已用来增强信息检索系统的能 力。数据挖掘的起源为迎接前一节中的这些挑战,来自不同学科的研究者汇集到一起,开始着手开发 可以处理不同数据类型的更有效的、可伸缩的工具。这些工作建立在研究者先前使用 的方法学和算法之上,在数据挖掘领域达到高潮。特别地是,数据挖掘利用了来自如 下一些领域的思想: (1) 来自统计学的抽样、估计和假设检验, (2) 人工智能、模式 识别和机器学习的搜索算法、建模技术和学习理论。数据挖掘也迅速地接纳了来自其 他领域的思想,这些领域包括最优化、进化计算、信息论、信号处理、可视化和信息 检索。一些其他领域也起到重要的支撑作用。 特别地, 需要数据库系统提供有效的存储、 索引和查询处理支持。源于高性能(并行)计算的技术在处理海量数据集方面常常是 重要的。分布式技术也能帮助处理海量数据,并且当数据不能集中到一起处理时更是 至关重要。数据挖掘能做什么1) 数据挖掘能做以下六种不同事情(分析方法) :分类(Classification )估值(Estimation )预言( Prediction )相关性分组或关联规则( Affinity grouping or association rules)聚集( Clustering )描述和可视化( Description and Visualization )复杂数据类型挖掘 (Text, Web , 图形图像,视频,音频等 )2) 数据挖掘分类 以上六种数据挖掘的分析方法可以分为两类:直接数据挖掘;间接数据挖掘直接数据挖掘目标是利用可用的数据建立一个模型,这个模型对剩余的数据,对一个特定的变 量(可以理解成数据库中表的属性,即列)进行描述。间接数据挖掘 目标中没有选出某一具体的变量,用模型进行描述;而是在所有的变量中建立起 某种关系 。分类、估值、预言属于直接数据挖掘;后三种属于间接数据挖掘3) 各种分析方法的简介分类 ( Classification ) 首先从数据中选出已经分好类的训练集,在该训练集上运用数据挖掘分类的技 术,建立分类模型,对于没有分类的数据进行分类。例子:a. 信用卡申请者,分类为低、中、高风险b. 分配客户到预先定义的客户分片注意: 类的个数是确定的,预先定义好的估值(Estimation ) 估值与分类类似,不同之处在于,分类描述的是离散型变量的输出,而估值处理 连续值的输出;分类的类别是确定数目的,估值的量是不确定的。例子:a. 根据购买模式,估计一个家庭的孩子个数b. 根据购买模式,估计一个家庭的收入c. 估计 real estate 的价值 一般来说,估值可以作为分类的前一步工作。给定一些输入数据,通过估值,得到未知的连续变量的值,然后,根据预先设定的阈值,进行分类。例如:银行对家庭 贷款业务,运用估值,给各个客户记分(Score 01 )。然后,根据阈值,将贷款级别分类。预言(Prediction ) 通常,预言是通过分类或估值起作用的,也就是说,通过分类或估值得出模型, 该模型用于对未知变量的预言。从这种意义上说,预言其实没有必要分为一个单独的 类。预言其目的是对未来未知变量的预测,这种预测是需要时间来验证的,即必须经 过一定时间后,才知道预言准确性是多少。相关性分组或关联规则( Affinity grouping or association rules)决定哪些事情将一起发生。例子:a. 超市中客户在购买A的同时,经常会购买B,即A = B(关联规则)b. 客户在
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!