当前位置: 首页 > news >正文

ETL工具的选择

正确选择 ETL 工具,可以从 ETL 对平台的支持、对数据源的支持、数据转换功能、管理 和调度功能、集成和开放性、对元数据管理等功能出发,具体如下。

支持平台

       随着各种应用系统数据量的飞速增长和对业务可靠性等要求的不断提高,人们对数据抽 取工具的要求往往是将几十、上百个 GB 的数据在有限的几个小时内完成抽取转换和装载工 作,这种挑战势必要求抽取工具对高性能的硬件和主机提供更多支持。 因此,我们可以从数据抽取工具支持的平台,来判断它能否胜任企业的环境,目前主流 的平台包括 SUN Solaris、HP-UX、IBM AIX、AS/400、OS/390、Sco UNIX、Linux、Windows 等。

支持数据源

对数据源支持的重要性不言而喻,因此这个指标必须仔细地考量。

首先,我们需要对项 目中可能会遇到的各种数据源有一个清晰的认识

其次对各种工具提供的数据源接口类型也 要有深入了解,比如,针对同一种数据库,使用通用的接口(如 ODBC/JDBC)还是原厂商自 己的专用接口,数据抽取效率都会有很大差别,这直接影响到我们能不能在有限的时间内完 成 ETL 任务。

这里,笔 者列出一些常见的数据源供参考:DB2、Informix、Oracle、Sybase、SQL Server、 Teredata、OleDB、SAS、Text、Excel、SAP、Peoplesoft、IMS、VSAM、QSAM on 390、FTP、 XML、MessageQueue、Weblog 等。

数据转换功能

数据转换是 ETL 中最令人头疼的问题,由于业务系统的开发一般有一个较长的时间跨度, 这就造成一种数据在业务系统中可能会有多种完全不同的存储格式,甚至还有许多数据仓库 分析中所要求的数据在业务系统中并不直接存在,而是需要根据某些公式对各部分数据进行 计算才能得到。因此,这就要求 ETL 工具必须对所抽取的数据进行灵活的计算、合并、拆分 等转换操作。

通常情况下,我们遇到的 ETL 转换要求包括:

字段映射;映射的自动匹配;字段的拆分; 多字段的混合运算;跨异构数据库的关联;自定义函数;多数据类型支持;复杂条件过滤; 支持脏读;数据的批量装载;时间类型的转换;对各种码表的支持;环境变量是否可以动态 修改;去重复记录;抽取断点;记录间合并或计算;记录拆分;抽取的字段是否可以动态修 改;行、列变换;排序;统计;度量衡等常用的转换函数;代理主键的生成;调试功能;抽 取远程数据;增量抽取的处理方式;制造样品数据;在转换过程中是否支持数据比较的功能; 数据预览;性能监控;数据清洗及标准化;按行、按列的分组聚合等

管理和调度功能

       由于我们对数据抽取的要求越来越高以及专业 ETL 工具的不断涌现,ETL 过程早已不再 是一个简单的小程序就可完成的,目前主流的工具都采用像多线程、分布式、负载均衡、集 中管理高性能高可靠性与易管理和扩展的多层体系架构。因此,这就要求 ETL 在管理和调 度功能上都具备相应的功能。

       管理和调度的基本功能包括:抽取过程的备份与恢复;升级;版本管理;开发和发布; 支持统一以及自定义的管理平台;支持时间触发方式;支持事件触发方式;支持命令行执行 方式;支持用户对计算机资源的管理和分配;负载均衡;文档的自动生成;调度过程中能否 执行其他任务等。

集成和开放性

        随着数据仓库技术在国内应用的不断深入,许多开发商希望不向用户提供 ETL 工具的原 来操作界面,而是将其一些主要功能模块嵌入到自己的系统或其他厂商的系统中,因为在大 多数情况下一般项目只会用到 ETL 工具的少数几个功能,同时也没有必要给用户提供那么复 杂的操作环境,其结果反而使用户容易产生操作错误。

       上述问题就要求 ETL 工具能提供很好的集成性和开放性

可以从几方面考量:与 OLAP 集成;与前端工具集成;与建模工具集成;开放的 API 可将产品集成到统一界面;是否能调 用各种外部应用,包括存储过程、各种流行语言开发的应用程序等;是否支持客户化定制的 转换过程;是否支持与统计分析工具的集成等。

管理元数据

       元数据是关于数据的数据,尤其对于 ETL 来说尤其重要。ETL 中大量的数据源定义、映 射规则、转换规则、装载策略等都属于元数据范畴,如何妥善地存储这些信息已经关系到 ETL 过程能否顺利完成而且影响到后期的使用和维护。任何业务逻辑的微小改变最终都落实为相 应元数据的调整,初期没有一个完善的元数据管理功能而后期作类似调整几乎是“不可完成 的任务”。基于元数据的重要性,国际组织提出一些统一的元数据存储标准,比较知名的如 CWM 等,为不同厂商工具之间互操作提供了可能性,相信也是今后的发展趋势。

       针对 ETL 的元数据管理,笔者认为应包括:元数据存储的开放性;元数据存储的可移植 性;提供多种方式访问元数据;元数据的版本控制;支持开放的元数据标准;支持 XML 进行 元数据交换;支持分布式的元数据访问和管理;生成元数据报表;对于 ETL 过程的冲突分析; 基于元数据的查询功能;元数据的广播和重用;对于 ETL 过程的流程分析等。

主流的 ETL 工具

目前市场上主流的 ETL 工具可以分为两大类:

一类是专业 ETL 厂商的产品,这类产品一 般都具备较完善的体系结构和久经考验的产品,产品的功能之复杂和详尽,往往能令初次接 触的人膛目,但其高昂的价格也会使一般用户望而却步;

另一类是整体数据仓库方案供应商,他们在提供数据仓库存储、设计、展现工具的同时也提供相应的 ETL 工具,这类产品一般对 自己厂商的相关产品有很好的支持并能发挥出其最大效率,但结构相对封闭,对其他厂商产 品的支持也很有限。

专业 ETL 厂商和产品包括 Ascential 公司的 DataStageXE、Sagent 公司的 Solution 和 Informatica 公司的产品

整体方案提供商和产品则包括 Oracle 公司的 Warehouse Builder IBM 公司的 Warehouse Manager , IBM Datastage

相关文章:

ETL工具的选择

正确选择 ETL 工具,可以从 ETL 对平台的支持、对数据源的支持、数据转换功能、管理 和调度功能、集成和开放性、对元数据管理等功能出发,具体如下。 支持平台 随着各种应用系统数据量的飞速增长和对业务可靠性等要求的不断提高,人们对数据抽…...

SpringBoot仿天猫商城java web购物网站的设计与实现

1,项目介绍 基于 SpringBoot 的仿天猫商城拥有两种角色,分别为管理员和用户。 迷你天猫商城是一个基于SSM框架的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程。 后端页面兼容IE10及以上现代浏览器,Chrome,Edge,Firebox…...

C#基础教程22 文件的输入与输出

C# 文件的输入与输出 一个 文件 是一个存储在磁盘中带有指定名称和目录路径的数据集合。当打开文件进行读写时,它变成一个 流。 从根本上说,流是通过通信路径传递的字节序列。有两个主要的流:输入流 和 输出流。输入流用于从文件读取数据(读操作),输出流用于向文件写入数…...

Ubuntu18.04 python 开发usb通信

一、安装环境 1.安装pip sudo python3 get-pip.py 或 sudo -i apt update apt install python3-pip 确定pip是否安装成功: xxx-desktop:~$ pip3 --versionpip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)2.安装pyusb pip3 install pyusb --use…...

RabbitMq 消息确认机制详解 SpringCloud

1 消息可靠性 消息从发送,到消费者接收,会经理多个过程,其中的每一步都可能导致消息丢失. #### 2 常见的丢失原因 发送时丢失: 生产者发送的消息未送达exchange 消息到达exchange后未到达queueMQ宕机,queue将消息丢失 consumer…...

后台导航布局

五、后台导航实例 参考链接: 页面后台导航制作 如何实现html后台导航iframe点击换url(代码) 如何消除html页面下边和右边的滚动条 html页面有多个滚动条时的优化 页面出现不必要的滚动条,怎么调试? 一个页面有两…...

设计模式——抽象工厂模式(创建型)

一、介绍抽象工厂模式是一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。问题假设你正在开发一款家具商店模拟器。 你的代码中包括一些类, 用于表示:一系列相关产品, 例如 椅子Chair 、 沙发Sofa和…...

Java面试题--SpringMVC的执行流程

概要 SpringMVC是一种基于MVC(Model-View-Controller)框架的Web应用开发框架。下面是SpringMVC的详细执行流程。 客户端向DispatcherServlet发送请求。DispatcherServlet收到请求后,根据HandlerMapping(处理器映射)找…...

c# 32位程序突破2G内存限制

起因 在开发过程中,由于某些COM组件只能在32位程序下运行,程序不得不在X86平台下生成。而X86的32位程序默认内存大小被限制在2G。由于程序中可能存在大数量处理,期间对象若没有及时释放或则回收,内存占用达到了1.2G左右&#xff…...

【C语言】指针详解总结

指针1. 指针是什么2. 指针和指针类型2.1 指针-整数2.2 指针的解引用3. 野指针3.1 野指针成因3.2 如何规避野指针4. 指针运算4.1 指针-整数4.2 指针-指针4.3 指针的关系运算5. 指针和数组6. 二级指针7. 指针数组1. 指针是什么 指针是什么? 指针理解的2个要点&#xf…...

Java加解密(八)工具篇

目录Java加解密实用工具1 OpenSSL2 Keytool3 XCA4 KeyStore ExplorerJava加解密实用工具 1 OpenSSL OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。 例如Apache 使用它加…...

Go框架三件套(Web/RPC/ORM)

🧡 三件套介绍 Gorm Gorm 是一个已经迭代了10年的功能强大的 ORM 框架,在字节内部被广泛使用并且拥有非常丰富的开源扩展。 Kitex Kitex 是字节内部的 Golang 微服务 RPC 框架,具有高性能、强可扩展的主要特点,支持多协议并且拥有…...

HR问:假如公司给不到你期望的薪资怎么办?这个问题该如何体面地回答?

对大多数人而言,跳槽就是为了涨薪,工作就是为了挣钱。但如果面试时hr问:假如公司给不到你期望的薪资呢?面对这种问题,该怎么回答才体面?来看一波网友的机智回答:有人委婉拒绝,说“愿…...

LearnOpenGL-高级OpenGL-2.模板测试

本人刚学OpenGL不久且自学,文中定有代码、术语等错误,欢迎指正 我写的项目地址:https://github.com/liujianjie/LearnOpenGLProject 文章目录简单理解模板测试模板介绍模板函数物体轮廓介绍代码给加载的模型添加轮廓简单理解 同深度测试一样…...

【Git从入门到精通】Git入门

什么是版本控制 版本控制是一套系统,按时间记录某一个或一系列文件的变更,查看以前的特定版本。 使用版本控制系统,你可以将文件或者整个项目恢复到先前的状态,还可以对以前的文件进行对比。 本地版本控制系统 本地版本控制系…...

软件测试18

在桌面上打开终端窗口, 执行如下操作: 查看当前系统中开放的端口有哪些查看哪个程序正在使用 3306 端口(需要 root 用户权限) 注意: 1.某些端口号具备固定用途: 例如: 远程访问常用端口号:22 默认情况下是mysql使用的端口号&…...

C语言实现快速排序(hoare法、挖坑法、前后指针法与非递归实现)——不看后悔系列

目录 1. hoare法 方法与步骤 代码实现 2. 挖坑法 方法与步骤 代码实现 3. 前后指针法 方法与步骤 代码实现 4. 快速排序的缺点与优化 1.快速排序的缺点 2.快速排序的优化 ① 三数取中法选 key 代码实现 ② 小区间优化 代码实现 5. 快速排序的非递归实现 附录…...

如何为系统可靠性的量化提供依据

SLA 即 Service Level Agreement,也就是服务等级协议,它指的是系统服务提供者(Provider)对客户(Customer)的一个服务承诺。 而 SLO 就是 SLA 的具体目标管理办法,它由一系列相关的指标 SLI &am…...

量化投资中的因子是什么?因子是如何分类的,包括哪些?

因子就是对个股有解释的因素。因子的种类很多,不同类别的因子从不同的维度对个股收益进行解释。比如基本面因子的数据来源方面有很大一部分是财务报表,从估值、成长、盈利能力等多个方面对股票收益进行解释。量价因子是围绕价格、成交量等技术指标构建的…...

力扣-修复表中的名字

大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1667. 修复表中的名字二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他…...

从锂电池热失控到锡须短路:高可靠性系统安全工程实践

1. 从“工程恐怖故事”到系统安全文化的反思最近在整理资料时,翻到一篇十多年前的旧文,标题叫《工程恐怖:机毁人亡》。文章汇集了几位航空与国防领域工程师亲历的、令人脊背发凉的真实事故案例。这些故事没有出现在主流新闻的头条&#xff0c…...

基于适配器模式构建跨平台待办事项聚合器:设计、实现与实战

1. 项目概述:一个跨平台待办事项聚合器的诞生最近在整理自己的效率工具时,发现了一个挺普遍但又很恼人的问题:我的待办事项散落在各处。工作上的任务在公司的Jira里,个人学习计划在滴答清单,一些临时想法随手记在手机备…...

FanControl终极指南:5步解决Windows风扇噪音与过热难题

FanControl终极指南:5步解决Windows风扇噪音与过热难题 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/f…...

工业DC-DC电源模块性能选型解析|钡特电源 VB15-48S24MD 与 URB4824YMD-15WR3 封装互通

在工业控制、通信设备、仪器仪表等领域,工业 DC-DC 模块电源作为核心供电单元,其稳定性、兼容性与性价比直接影响系统整体可靠性。随着国产化进程加速,国产工业电源模块在技术、品质上已达到国际先进水平,成为硬件工程师选型的重要…...

STM32实战:手把手教你用Cubemx配置交流充电桩的CP信号检测(附代码)

STM32实战:从零构建充电桩CP信号检测系统 充电桩作为新能源汽车基础设施的核心组件,其通信协议的可靠性直接关系到充电安全。在实际工程中,CP(Control Pilot)信号的检测往往是开发者的第一个技术拦路虎。我曾在一个海外…...

多模态AI处理利器:基于MCP协议的Stitch-Pro服务器架构解析

1. 项目概述:一个面向多模态内容处理的“缝合”利器 最近在折腾一个挺有意思的开源项目,叫 stitch-pro-mcp 。这个名字挺直白,“stitch”是缝合,“pro”是专业版,“mcp”则指向了“模型上下文协议”。简单来说&#…...

终极指南:如何为你的戴尔G15笔记本安装免费开源散热控制中心

终极指南:如何为你的戴尔G15笔记本安装免费开源散热控制中心 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 tcc-g15 是一款专为戴尔G15系列游戏笔…...

连开车回家都靠肌肉记忆——芯片工程师到底有多累

下班开车,到家的时候不记得路上发生了什么。这件事很多芯片工程师都经历过。那种精神层面的透支——脑子里塞满了太多东西,意识没有余量去关注开车这件事,只能交给身体的自动驾驶。体力劳动的疲惫,睡一觉就好了。芯片研发的疲惫不…...

高压隔离技术:原理、应用与AMC130x设计解析

1. 高压隔离技术的基础原理与行业需求在工业自动化、新能源发电和电力电子系统中,高压隔离技术如同电路系统的"安全气囊",它能在数千伏的电位差下确保信号和能量的无损传输,同时阻断危险电流的流通。德州仪器(TI&#x…...

开源智能抓取系统Elsa-OpenClaw:从感知到执行的完整技术栈解析

1. 项目概述:当开源大模型遇上“机械爪”最近在AI和机器人交叉领域,一个名为“Elsa-OpenClaw”的项目引起了我的注意。乍一看,这像是一个将大型语言模型(LLM)与机械臂末端执行器(俗称“机械爪”&#xff09…...