当前位置: 首页 > 科技观察

ETL工具十大必备特性详解

时间:2023-03-12 17:25:03 科技观察

概述Kettle是一款国外开源的ETL工具,纯java编写,可以运行在Windows、Linux、Unix上。说白了就是要了解通用ETL工具必备的特性和功能,才能更好的掌握Kettle的使用。今天主要介绍ETL工具的通用功能。ETL工具的功能之一:连通性任何ETL工具都应该能够连接到各种各样的数据源和数据格式。对于最常用的关系型数据库系统,还应该提供本地连接方式(如Oracle的OCI)。ETL应能提供以下基本功能:连接常用的关系型数据库,获取数据,如常用的Orcal、MSSQLServer、IBMDB/2、Ingres、MySQL、PostgreSQL等。有很多方法可以从带有定界符和固定格式的ASCII文件中获取数据。从XML文件中获取数据。从流行的办公软件获取数据,例如Access数据库和Excel电子表格。使用FTP、SFTP、SSH获取数据(大多数最好不要使用脚本)也可以从WebServices或RSS获取数据。如果还需要某些ERP系统(如OracleE-BusinessSuite、SAP/R3、PeopleSoft或JD/Edwards)中的数据,则ETL工具还应提供与这些系统的连接。也可以提供Salesforce.com和SAP/R3的输入步骤,但不包含在套件中,需要额外安装。从其他ERP和财务系统中提取数据需要其他解决方案。当然,最常见的做法是要求这些系统以文本格式导出数据,以文本数据作为数据源。ETL工具的第二个功能:平台独立性ETL工具应该能够运行在任何平台甚至不同平台的组合上。32位的操作系统在开发的初期可能工作的很好,但是当数据量越来越大的时候,就需要更强大的操作系统了。在另一种情况下,开发通常在Windows或Mac机器上运行。生产环境一般是Linux系统或者集群,你的ETL方案应该能够在这些系统之间无缝切换。ETL工具的第三个功能:数据规模ETL一般可以通过以下三种方式处理大数据。并发性:ETL过程能够同时处理多个数据流,以利用现代多核硬件架构。分区:ETL可以使用特定的分区方案将数据分配到并发数据流中。集群:ETL过程可以分布在多台机器上共同完成。Kettle是一个基于Java的解决方案,可以在任何安装了Java虚拟机的计算机(包括Windows、Linux和Mac)上运行。转换中的每个步骤都是并行执行的,并且可以执行多次,从而加快了处理速度。Kettle在运行转换时,根据用户的设置,可以将数据以不同的方式发送到多个数据流(发送方式有两种:分发和复制)。分发类似于分发扑克牌。每行数据以turn-by-turn的方式只发送到一个数据流。复制是将每一行数据发送到所有数据流。为了更精确地控制数据,Kettle还采用了分区模式,通过分区模式可以将具有相同特征的数据发送到同一个数据流中。这里的分区只是概念上类似于分区数据库。Kettle没有任何数据库分区功能。ETL工具的第四个功能:设计的灵活性ETL工具应该给开发者留下足够的自由使用空间,而不是用一种固定的方式来限制用户的创造力和设计需求。ETL工具可以分为基于过程的和基于映射的。基于映射的函数仅在源数据和目标数据之间提供一组固定的步骤,严重限制了设计工作的自由度。基于映射的工具通常易于使用并且可以快速上手,但对于更复杂的任务,基于流程的工具是一个不错的选择。使用像Kettle这样的基于流程的工具,可以根据实际数据和需求创建自定义步骤和转换。ETL工具的第五个功能:可重用性设计的ETL转换应该是可重用的,这一点很重要。复制和粘贴现有的转换步骤是最常见的重用形式,但它并不是真正的重用。Kettle中有一个映射(子转换)步骤,可以完成转换的复用。这一步可以使用一个转换作为其他转换的子转换。另外,转换也可以在多个作业中多次使用,一个作业也可以是另一个作业的子作业。ETL工具的第六大功能:可扩展性大家都知道,几乎所有的ETL工具都提供脚本来解决工具本身无法以编程方式解决的问题。此外,还有少数ETL工具可以通过API或其他方式向工具添加组件。使用脚本语言编写可以被其他转换或脚本调用的函数。Kettle提供了上述所有功能。Java脚本步骤可以用来开发一个Java脚本,将这个脚本保存为一个转换,然后通过映射(子转换)步骤将其变成一个标准的可重用函数。其实不局限于脚本,每一个transformation都可以通过这个映射(sub-transition)来复用,就像创建一个组件一样。Kettle在设计上是可扩展的,它提供了一个插件平台。这种插件架构允许第三方为Kettle平台开发插件。Kettle中的所有插件,甚至是默认提供的组件,都是真正的插件。内置的第三方插件和Pentaho插件的唯一区别是技术支持。假设你购买了第三方插件(例如SugarCRM连接),技术支持由第三方提供,而不是Pentaho。ETL工具的第七大功能:数据转换ETL项目的很大一部分工作就是做数据转换。在输入和输出之间,数据被验证、连接、拆分、合并、转置、排序、组合、克隆、去重、过滤、删除、替换或以其他方式操作。在不同的组织、项目和解决方案中,对数据转换的需求是非常不同的,因此很难说一个ETL工具至少应该提供哪些转换功能。然而,常用的ETL工具(包括Kettle)提供了一些最基本的集成功能如下:缓慢改变维度查询值行列转换条件分离排序、合并、连接和聚合ETL工具的第八个功能:测试和调试测试通常分为用于黑盒测试(也称为功能测试)和白盒测试(结构测试)。黑盒测试,ETL转换被认为是一个黑盒,测试人员不了解黑盒的功能,只知道输入和预期的输出。白盒测试要求测试人员了解转换的内部工作机制,并据此设计测试用例,检查特定的转换是否有特定的结果。调试其实是白盒测试的一部分,让开发人员或者测试人员一步一步的进行改造,找出问题所在。ETL工具的第九个功能:沿袭分析和影响分析任何ETL工具都应该有一个重要的功能:读取转换的元数据,这是提取由不同转换组成的数据流的信息。谱系分析和影响分析是基于元数据的两个相关属性。沿袭是一种追溯机制,用于查看数据的来源。影响分析是另一种基于元数据的分析方法,可以分析源数据对后续转换和目标表的影响。ETL工具的第十个功能:日志和审计数据仓库的目的是提供准确的信息来源,因此数据仓库中的数据应该是可靠的和值得信赖的。为了保证这种可靠性,保证所有的数据转换操作都能被记录下来,ETL工具应该提供日志记录和审计能力。日志记录了转换过程中执行了哪些步骤,包括每个步骤的开始和结束时间戳。审计可以跟踪对数据的所有操作,包括读取行数、转换行数和写入行数。