热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ETL入门系列之ETL工具的功能

通过了解一般ETL工具必备的特性和功能,这样可以判断出Kettle是否适用你手边的工作。连接任何ETL工具都应用有能力连接到类型广泛的数据源和数据格式。ETL应该能提供下面最基本的

通过了解一般ETL工具必备的特性和功能,这样可以判断出Kettle是否适用你手边的工作。

连接

任何ETL工具都应用有能力连接到类型广泛的数据源和数据格式。ETL应该能提供下面最基本的功能:

  • 连接到普通关系型数据库并获取数据,如常见的Oracle、MS SQL Server、IBM DB/2、Ingress、MySQL和PostgreSQL
  • 从有分隔符或固定格式的ASCII文件中获取数据
  • 从XML文件中获取数据
  • 从流行的办公软件中获取数据,如Access数据库和Excel电子表格
  • 使用FTP、SFTP、SSH方式获取数据(最好不用脚本)

除了上述这些功能,还要能从Web Services或RSS中获取数据。

平台独立

一个ETL工具应该能在任何平台上甚至是不同平台的组合上运行

数据规模

一般ETL能通过下面3种方式处理大数据

  • 并发:ETL过程能够同时处理多个数据流,以便利用现代多核的硬件架构
  • 分区:ETL能够使用特定的分区模式,将数据分发到并发的数据流中
  • 集群:ETL过程能够分配在多台机器上联合完成

设计灵活性

一个ETL工具应该留给开发人员足够的自由度来使用,而不能通过一种固定的方式来限制用户的创造力和设计的需求。

ETL工具可以分为基于过程和基于映射的。基于映射的工具一般易于使用,可快速上手,但是对于更复杂的任务,基于过程的工具才是最好的选择。

复用性

设计完的ETL转换应该可以被复用,这也是ETL工具的一个不可或缺的特征。

扩展性

几乎所有的ETL工具都提供了脚本,以编程的试来解决工具本身不能解决的问题。

数据转换

常用的ETL工具提供了下面一些最基本的整合功能:

  • 缓慢变更维度
  • 查询值
  • 行列转换
  • 条件分割
  • 排序、合并、连接
  • 聚集

测试和调试

测试通常分为黑盒测试(也叫功能测试)和白盒测试(结构测试)。

黑盒测试,ETL转换就被认为是一个黑盒子,测试者并不了解黑盒子的功能,只知道输入和期望的输出。

白盒测试,要求测试者知道转换内部的工作机制并依此设计测试用例来检查特定的转换是否有特定的结果。

调试实际是白盒测试中的一部分,通过高度可以让开发者或测试者一步一步地运行一个转换,并找出问题的所在。

血统和影响分析

血统分析和影响分析是基于元数据的两个相关特性。

血统是一种回溯性的机制,它可以查看到数据的来源。例如,“价格”和“数量”字段作为输入字段,在转换中根据这两个字段计算出“收入”字段。即使在后面的处理流程里过滤了“价格”和“数量”字段,血统分析功能也能分析出“收入” 字段是基于“价格”和“数量”字段的。

影响分析是基于元数据的另一种分析方法,该方法可以分析源数据字段对随后的转换以及目标表的影响

日志和审计

为了保证数据仓库里的数据可靠性,同时保证可以记录所有的数据转换操作,ETL工具应该提供日志和审核功能。

日志可以记录下在转换过程中执行了哪些步骤,包括每个步骤开始的结束时间戳。

审核可以追踪到对数据做的所有操作,包括读行数、转换行数、写行数。


推荐阅读
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了sqlserver云存储和本地存储的区别,云存储是将数据存储在网络上,方便查看和调用;本地存储是将数据存储在电脑磁盘上,只能在存储的电脑上查看。同时提供了几种启动sqlserver的方法。此外,还介绍了如何导出数据库的步骤和工具。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
author-avatar
邱文馨4966
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有