Web服务是否适合ETL用途?

时间:2009-12-24 01:16:01

标签: java web-services etl

我的公司正在考虑使用Web服务作为ETL过程的意思。但是,我不认为Web服务符合此目的,原因如下: 1.生成大型xml时,Web服务可能会占用大量内存。 2. xml是一种臃肿的格式。 3.如果服务器花费大量时间来生成数据,可能会超时 4.文件大小限制? (对于Windows,它是2Gb,如果我的记忆对我有用的话)

我不是网络服务专家,所以我需要你的意见。 :)

感谢。

6 个答案:

答案 0 :(得分:6)

Web服务工具棚中有许多技术可以解决您所阐述的所有问题。有面向流的XML碎化,有用于交付的XML压缩格式,处理碎片和公平性的协议,并且有许多存储系统可以容纳数TB的TB级数据。

如果通过网络服务,你想象一个大学新生家庭作业混合接口,接受一个带有2GB序列化表格的单个glop参数,那么你的所有参数都是有效的。但是,如果您向具有WS-ReliableMessagingWS-Transaction所涉及概念知识的经验丰富的团队提出您的要求,那么就没有理由不围绕Web服务进行ETL过程。请注意,我并不主张SOAP协议本身,但我确实提倡对所涉及的概念进行知识和理解。

现在要说的是,面向Web服务的ETL过程是否对您有意义取决于一系列其他原因。但是,您对Web服务技术的反驳并不成熟。

答案 1 :(得分:1)

我不会将Web服务用于ETL任务。有适合该任务的专用工具(例如,Ab Initio,Informatica等)更适合。

如果你有大量的数据,我会说网络引入的额外延迟的代价是令人望而却步的。

答案 2 :(得分:1)

这确实取决于你在做什么以及你是如何努力完成它的。一般来说,Web服务需要比通常用于ETL过程的更多关心和喂养,但它们在任务中也可以令人惊讶地有效。我没有为你的场景提供足够的细节来说明它是否会起作用。

我曾经在Webservices上工作,它传输和接收100多个MB文档,有些文件不是用XML编写的,而是在几秒钟内完成(在封闭的本地网络上)。这些服务需要大量的调优和规划,但它们确实适用于我们的场景,它们允许各种各样的客户端通过相当标准的接口连接和传输不同数量的数据。这与我们所拥有的其他一些ETL工作不同,工作是针对每个客户的,并且必须为每个客户设置和维护。

这完全取决于你在做什么以及你的约束是什么。

如果您打算沿着这条路线坐下来从头到尾草拟整个过程,包括您希望客户端如何连接,验证数据是否已收到并验证作业是否已完成。考虑一些场景,客户端和传输的数据类型,然后计算出所需的内容。与其他工具中已有的功能形成对比,以及完成工作所需的时间。

答案 3 :(得分:1)

我真的想知道为什么贵公司考虑使用真实的ETL工具,例如duffymo in his answerTalendCloverETL提到的那些工具开源是一种选择。

  1. 它们通常有利于ETL目的:)
  2. 构建自己的解决方案听起来像重新发明轮子。
  3. 其中许多都有面向Web服务的功能(例如,请参阅Talend wiki中的Export a job as webserviceCloverETL Server HTTP Launch Services)。
  4. 我不是ETL产品专家,我没有检查它们,但我很确定这是需要考虑的事项。

答案 4 :(得分:0)

首先查找MTOM,它允许在Web服务中流式传输任意非XML数据。

答案 5 :(得分:0)

Web服务适用于ETL任务。请记住,每个任务都将在其自己的线程中免费处理,并保证在请求之间进行适当的清理。在Tomcat之类的东西中使用Web服务并不像你想象的那么重。

如果您担心XML的膨胀,请考虑使用JSON格式。