`
jjjava
  • 浏览: 184707 次
  • 性别: Icon_minigender_1
  • 来自: wuhan
社区版块
存档分类
最新评论

商业智能平台研究(八) ETL 之metadata

    博客分类:
  • BI
阅读更多
商业智能平台研究(八)  ETL 之metadata
metadata
网上有很多写metadata的文章,如果觉得我没有写清楚,也可以参考一下其他人的文章,
元数据的定义就是:描述数据的数据,你非要问什么描述元数据,还是元数据本身,UML中也有这种概念,只不过是描述的对象不一样罢了。

让我们解释的更加通俗易懂一些吧,在javaSE中也有metadata的概念,最早的就算是JavaDoc了,在5.0之后,Annotation就是大量的使用metadata了,这是关于源代码的数据,具体来说就是关于Java的类、方法、字段等关联的附加数据。这些数据可以被Java的编译器或者其它工具(比如Java IDE 象eclipse+junit一样)来发现和使用。
junit在4.0后也使用了Annotation也算是metadata的一种应用。
可见metadata并不是什么高不可攀的技术,我们时刻都在使用。

再来看看metadata在BI系统上的定义吧 , 如果你觉得下面这段话很无聊,请直接跳过下面这段 。
元数据(Metadata)是关于数据、操纵数据的进程,以及应用程序的结构、意义的描述信息,其主要目标是提供数据资源的全面指南。元数据是描述数据仓库内数据结构和建立方法的数据,可将其按用途分为两类:技术元数据(Technical Metadata)、业务元数据(Business Metadata)和内联映射元数据(Inter-Mapping Metadata)。
技术元数据是存储关于数据仓库系统技术细节的数据,是用于开发和管理数据仓库的数据,主要包括数据仓库结构的描述(各个主题的定义,星型模式或雪花型模式的描述定义等)、ODS层(操作数据存储ODS .Operation Data Storage)的企业数据模型描述(以描述关系表及其关联关系为形式)、对数据稽核规则的定义、数据集市定义描述与装载描述(包括Cube的维度、层次、度量以及相应事实表、概要表的抽取规则)。另外,安全认证数据也作为元数据的一个重要部分进行管理。
业务元数据从业务角度描述了数据仓库中的数据,它提供了介于使用者和实际系统之间的语义层,使得不懂计算机技术的业务人员也能够理解数据仓库中的数据。业务元数据包括以下信息:使用者的业务术语所表达的数据模型、对象名和属性名;访问数据的原则和数据来源;系统所提供的分析方法及公式、报表信息。
内联映射元数据(Inter-Mapping Metadata)实现技术元数据与业务元数据的层间映射,使得信息系统的概念模型与物理模型相互独立,使企业的概念、业务模型重组,以及物理模型的变化相互透明。
内联映射元数据从技术上为业务需求驱动、企业数据驱动的双驱动建设模型提供了重要保证,使信息系统的建设具有更高的灵活性与适应性


元数据是跟特定的数据对象有关的,换句话说,talend和kettle的元数据就是不一样的。ETL的元数据就和pentaho report 的元数据不一样,因为他们要描述的东西不一样。这些元数据的存储格式可以有多种,可以储存成XML格式的也可以是放在数据库里面的。事实上这两种最通用的,也是可以互补的两种,没有谁比谁重要之说。
metadata储存在repository的地方,我不知道是不是所有的ETL工具都喜欢这么叫.每个repository都会选用数据库来储存,他们都是按照一定的格式,这些格式最后也是可以变成XML形式的.这是看每个工具的支持程度,kettle 就支持导出到XML格式,其他的工具我就不知道了.

具体解释到kettle来说,metadata就是你定义的每一个动作.kettle的repository里面有如下一些表,我没有列出全部,从表的结构看一下kettle的metadata有哪些
1. R_DATABASE            R_DATABASE_ATIRIBUTE        R_DATABASE_CONTYPE        R_DATABASE_TYPE
2. R_JOB            R_JOB_HOP            R_JOBENTRY            R_JOBENTRY_ATIRIBUTE            R_JOBENTRY_TYPE
3. R_LOG            R_LOGLEVEL
4. R_STEP            R_STEP_DATABASE
5. R_TRANS_ATIRIBUTE        R_TRANS_HOP            R_TRANS_CONDITION
6. R_USER            R_VALUE                R_PERMISSION
7. R_CLUSTER            R_CLUSTER_SLAVE            R_SLAVE
8. R_PARTITION            R_PARTITION_SCHEMA

1 . database的链接信息.在R_DATABASE_TYPE 表里面包含了所有支持的数据库链接信息,一共是25种,算是支持非常的多了.

2. 任务设计部分的表,R_JOB_HOP 是指两个数据之间的链接部分, R_JOBENTRY_TYPE 是目前支持的操作种类,一共有27种,包括Transformation , Job , Shell , Mail , SQL ,FTP ,Table exists ,File Exists , JavaScript , Secure FTP , HTTP , Create File , Delete File , Wait for File , Put a file with SFTP , File Compare , BulkLoad into Mysql , Display Msgbox Info , Wait for , Zip file , XSL Transformatio, BulkLoad from Mysql into File , Abort Job , Get mails from POP , Ping a host , Dummy Job Entry .
其中BulkLoad 只跟Mysql有关,我感觉很奇怪,BulkLoad 是数据库批量处理的方式,大型数据库都是支持的,比如oracle就有sqlloader来支持批量处理,其他的大型数据库应该也有吧,而且在transform里面kettle也有oracle的支持,在任务设计的时候就只有mysql的支持,不知道什么原因.
最后一个Dummy Job Entry 就是什么都不做.

3. Log记录,loglevel 一共有6种,Nothing at all , Minimal loggin , Basic loggin , Detailed loggin , Debugging , RowLevel(very detailed).根据你自己的需要来选择log的级别.

4. 每一步操作的表格与你使用的数据库

5. 转换的定义.一共有70种不同的转化,你不会想看到全部列出来的,其中有几种很有用的,比如DimensionLookup , 它的解释就是"在一个数据仓库里更新一个渐变维,或者在这个维里查询信息.
  还有基于关键字删除记录,
  cuebOutput, 把数据写入一个cube,
  从一个excel文件读数据,执行一个sql脚本,调用数据库的储存过程,
  OraBulkLoader ,调用oracle 的bulk loader to load data ,(应该是指Oracle的SQLLOADER吧).
  ProSAPCONN, 从一个SAP系统取数据.
  MergeRows,合并两个数据流, 并根据某个关键字排序.  这两个数据流被比较,以标识相等的、变更的、删除的和新建的记录.

插一句关于merge的概念,从网上copy下来的:
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。
 
6. 用户与权限.一开始建立的用户有两种,admin和guest ,权限有5种,Read only access , Administrator , Use transformations , Use Jobs , Use schemas .

7. pentaho官方网站上面有一个新闻是关于在mysql的
Kettle集群新记录:
最近Kettle集群基于 Amazon Elastic Computing Cloud做了一次测试,单台服务器输出4000 rows/sec ,数据库为MySQL. 如果你发送数据通过sockets从一个master到5个slave servers, 你将获得 5x4000 row inserts/sec。集群的效果非常好.

我个人也做过测试。数据库是oracle 10.2.0.1,内网连接,从一台机器的oracle到本地机器,没有集群,速度也大概是4000 多一点 ,数据量大概是16万。

8 . 数据库分区是数据库的高级特性之一,oracle的XE版和Enterprise版本的有一个差别就是XE版不支持分区。


kettle还支持metadata搜索,可搜索的选项包括步骤,数据库连接和注释 ,可见metadata对于ETL的重要性就是它能够更好的管理你的数据,而不只是让你的数据呆在数据库里面。kettle对与数据库的元数据管理并不是很好,所谓数据库的元数据就比如数据库中表的名字,每一个column的信息,column的长度,每一个表的constrain,index等,而只有提供这些信息的管理才能够将ETL过程做的更好。下一篇介绍ETL质量控制的时候会看到oracle warehouse builder 对于这些数据管理是多么的强大,目前kettle的能力还不能算是非常的强大的。

pentaho平台本身还有一种metadata , 在官方主页上是这么写的:
       pentaho metadata的能力是让管理员定义一个抽象层来显示数据库信息和商业流程,管理员用关系型数据库的表来表现相互之间的关系,为了复杂和含义模糊的数据库表和列而创建商用术语,为特性用户而设定权限参数,指定默认的数据格式,为多种语言部署提供翻译,商业用户可以使用pentaho新的ad hoc query能力查询他们想要的报表,比如订单的数量和按地区排序的客户开销,SQL可以自动取得这些信息。

数据仓库的建模也需要用到metadata, oracle的数据仓库建模就是用的一种叫 Common Warehouse Metamodel 的metadata , CWM提供一个数据仓库的标准让不同的厂商集成和管理他们的数据,CWM建立在开发的标准XMI(XML for Metadata interchange)  XML 和 UML2 作为建模语言。CWM 用UML2 定义一组核心类,这些类分作package(或者叫做子模型submodels),每一个提供一个特定的数据仓库的domain , 比如 Relational , OLAP ,Transformation , CWM 提供一个强大的数据模型来实现数据仓库的Extraction , transformation , loading , integration and analysis   ,没有一个单独的模型能够满足各种应用程序和开发工具的需求,但是CWM 为这些工具提供特定的扩展,它被设计用来支持关于metadata的快速开发,使用户能够通过扩展来满足他们的需求。(上面这段话翻译自http://www.corba.org/vendors/pages/oracleCWM.html , 翻译的不是很好,如果各位有兴趣可以自己去看看)

下一篇介绍ETL的数据质量控制。
分享到:
评论

相关推荐

    SQL Server 2008 商业智能完美解决方案(3)

    《SQL Server 2008商业智能完美解决方案》研究如下内容: 管理开发生命周期,打造BI团队; 深入研究SQL Servet Analysis Services、Integration Services和 Reporting Services; 使用Business Intelligence ...

    数据仓库中的ETL和元数据

    数据仓库(Data Warehouse, DW)是一种用于存储和管理海量数据的特殊类型的数据库,主要用于支持企业的商业智能(BI)活动,特别是数据分析和决策制定。它通常包含来自多个源系统的数据,并且经过清理和整合以确保数据的...

    数据仓库-ETL和元数据

    数据仓库(Data Warehouse, DW)是一种用于存储和管理海量数据的特殊类型的数据库,主要用于支持企业的商业智能(BI)活动,特别是数据分析和决策制定。它通过整合来自不同源的数据,并将其转化为适合于分析的形式,从而...

    Oracle数据仓库解决方案介绍.pptx

    Oracle 数据仓库管理商业智能应用是指 Oracle 数据仓库的管理商业智能应用,包括数据仓库设计与 ETL 元数据管理、数据仓库核心平台信息发布、商业智能应用等方面的介绍。 Oracle 数据仓库解决方案的特点是指 ...

    SQL Server 2008商业智能完美解决方案 3/3

    《SQL Server 2008商业智能完美解决方案》研究如下内容: 管理开发生命周期,打造BI团队; 深入研究SQL Servet Analysis Services、Integration Services和 Reporting Services; 使用Business Intelligence ...

    SQL Server 2008商业智能完美解决方案 1/3

    《SQL Server 2008商业智能完美解决方案》研究如下内容: 管理开发生命周期,打造BI团队; 深入研究SQL Servet Analysis Services、Integration Services和 Reporting Services; 使用Business Intelligence ...

    SQL Server 2008商业智能完美解决方案 2/3

    《SQL Server 2008商业智能完美解决方案》研究如下内容: 管理开发生命周期,打造BI团队; 深入研究SQL Servet Analysis Services、Integration Services和 Reporting Services; 使用Business Intelligence ...

    Oracle 数据库 10g 内部的 ETL 基础架构

    Oracle数据库10g内部的ETL(Extract, Transform, Load)基础架构是数据仓库和商业智能领域中的核心组件,用于从各种数据源抽取数据、转换数据格式并加载到目标数据库中。在Oracle 10g中,ETL过程被设计得高效且灵活...

    工具使用手册.pdf

    它是一个基于 Java 平台的商业智能套件,之所以说是套件是因为它包括一个 web 服务器平台和多个工具软件:报表、分析、图表、数据集成、数据挖掘等,可以说包括了商业智能的方方面面。 Pentaho 架构图 Pentaho 的...

    Pentaho常见问题小结

    Pentaho是一款开源的企业级商业智能(BI)平台,它集成了数据提取、转换、加载(ETL)、数据分析和报告等功能,为用户提供了一套完整的数据处理工具。以下是针对该主题的详细知识解析: 1. **Pentaho Data ...

    INFORMATIC培训

    - **BAM, Real-time BI**:业务活动监测及实时商业智能工具。 - **Corporate data**:企业级数据集成解决方案。 - **Traditional BI, CPM**:传统的商业智能及绩效管理工具。 - **IT data**:面向IT部门的数据管理...

    sap文件学习,下载学习

    SAP(Systems, Applications, and Products in Data Processing)作为一个企业级的解决方案,为企业提供了完整的商务智能平台。今天,我们将深入探讨 SAP BW 的知识点,并对其进行详细的解释。 首先,SAP BW 全称为...

    BI_数据仓库基础.docx

    - **商业智能(BI)**: 商业智能是一种利用企业已有的数据,通过科学的方法进行分析,为管理层提供决策支持的过程。它可以帮助企业管理层更好地理解业务状况、发现趋势、优化决策。 #### 二、相关概念介绍 - **...

    Oracle Data Integrator技术总揽

    - **数据仓库/商业智能**:ODI 广泛应用于构建数据仓库和实现商业智能分析。 - **面向服务集成**:支持跨系统的数据交换和服务集成。 - **主数据管理**:帮助企业管理和维护关键业务实体的单一视图。 #### 总结 ...

    Pentaho 初级培训资料

    Pentaho 是一个开源的商业智能(BI)套件,它包括了数据提取(ETL)、分析、元数据管理以及报告功能。这个套件主要根据GNU General Public License version 2授权,部分组件则遵循LGPLv2、Common Public License和...

Global site tag (gtag.js) - Google Analytics