代码之家  ›  专栏  ›  技术社区  ›  janetsmith

web服务是否适合etl目的?

  •  4
  • janetsmith  · 技术社区  · 15 年前

    我的公司正在考虑使用web服务作为etl过程的手段。但是,我认为web服务不适合这个目的,原因如下: 1。在生成大型xml时,web服务可能会消耗大量内存。 2。XML是一种臃肿的格式。 三。如果服务器花费大量时间生成数据,则可能超时 4。文件大小限制?(对于Windows,如果我的内存正常的话,它是2GB)

    我不是一个web服务专家,所以我需要你的意见。:)

    谢谢。

    6 回复  |  直到 15 年前
        1
  •  6
  •   Remus Rusanu    15 年前

    在web服务工具库中有很多技术可以绕过您阐述的所有问题。有面向流的XML分解,有用于传递的XML压缩格式,处理碎片和公平性的协议,还有许多存储系统可以存储一个又一个TB的数据。

    如果通过web服务,你可以想象一些大学新生的家庭作业拼凑出一个接口,它接受一个带有2gb序列化表的glop参数,那么你的所有参数都是有效的。但是,如果你把你的需求交给一个有经验的团队,这个团队知道 WS-ReliableMessaging WS-Transaction 那么就没有理由不围绕web服务进行etl过程。请注意,我并不提倡soap协议本身,但我提倡对所涉及的概念的了解和理解。

    尽管如此,面向web服务的etl过程是否对您有意义取决于一整套其他原因。但是,您对web服务技术的反驳是站不住脚的。

        2
  •  1
  •   duffymo    15 年前

    我不会将web服务用于etl任务。有一些专门的工具(例如从头开始、informatica等)更适合这项任务。

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

        3
  •  1
  •   GrayWizardx    15 年前

    这真的取决于你在做什么,以及你如何去完成它。一般来说,webservices需要比通常投入etl过程更多的关注和支持,但它们在任务中也会出奇地有效。我没有得到足够的细节来说明你的方案是否可行。

    我曾经在webservices上工作过,它传输和接收100+mb的文档,有些是用xml编码的,有些不是,并且在几秒钟内完成(在一个封闭的本地网络上)。这些服务需要大量的优化和规划,但它们在我们的场景中工作得很好,并且它们允许各种各样的客户端通过一个相当标准的接口连接和传输不同数量的数据。这与其他一些etl作业不同,我们的作业是针对每个客户机的,必须为每个客户机设置和维护。

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

    如果您要执行此路线,请坐下来从头到尾草拟流程,包括希望客户端如何连接,请验证数据是否已收到,并验证作业是否已完成。考虑一些场景、客户机和传输的数据类型,然后确定需要什么。与其他工具中已经提供的内容以及完成它所需的时间形成对比。

        4
  •  1
  •   Community CDub    7 年前

    我真的很想知道你们公司为什么 考虑使用真正的etl工具,如 duffymo in his answer 或者, Talend CloverETL 如果开源是一个选项。

    1. 它们总体上对etl来说是好的:)
    2. 构建自己的解决方案听起来像是重新发明轮子。
    3. 其中许多具有面向web服务的特性(请参见 Export a job as webservice 在Talend的维基或者 CloverETL Server HTTP Launch Services 例如)。

    我不是ETL产品专家,我没有检查所有的,但我敢肯定这是一件值得考虑的事情。

        5
  •  0
  •   bmargulies    15 年前

    首先查找mtom,它允许在web服务中传输任意非xml数据。

        6
  •  0
  •   dj_segfault    15 年前

    web服务只适合etl任务。请记住,每个任务都将在自己的线程中免费处理,并且保证在请求之间进行正确的清理。在像tomcat这样的东西中使用web服务并不像你想象的那么重。

    如果您担心xml的膨胀,请考虑json格式。