R vs Pentaho Spoon 作为 ETL 工具 [关闭]

Posted

技术标签:

【中文标题】R vs Pentaho Spoon 作为 ETL 工具 [关闭]【英文标题】:R vs Pentaho Spoon as an ETL tool [closed] 【发布时间】:2013-02-21 07:25:47 【问题描述】:

背景(抱歉这么长):

我的任务是维护一个 ETL,它每天收集大约 20-30 MB 的各种在线广告数据,并将其附加到 mysql 中的表中。外部承包商用 Pentaho Spoon(厨房、水壶?)建造了 ETL。 ETL 由大约 250 个作业和转换 (.ktr,.kjb) 组成,每个都有大约 5 到 25 个步骤。在这个大过程中出现问题是很常见的。我发现编写 R 脚本来进行转换和加载效率更高。事实上,我认为除了使用 RMySQL(即 plyr!)调用之外,ETL 可以减少到 1000 行以下的代码。也许 Python 会被用来从网络中提取数据。

我对 R 的使用导致了一些阻力。设计 ETL 的计算机程序员不懂 R,所以如果我离开,就不能叫,而且很多时间都投入在 Spoon ETL 上。此外,与 R 脚本相比,外行可以更轻松地在 Spoon 中直观地遵循这些步骤。就我而言,我认为我们被 ETL 所困。但是,由于我没有计算机科学背景,因此我对此事没有太大的发言权。

如果您对以下内容有任何见解,请发表评论。请知道我已经研究了几个月并阅读了许多意见,但没有像 SO 通常提供的那样简洁或可靠:

    R 被公司的一些人称为不可扩展。我认为相反的主要原因是日志记录功能。 Spoon 的纯日志输出有限,而所有 R 脚本都可以放入每日日志中。修复和避免 .ktrs 中的错误非常乏味,但通过设置标志和/或搜索 R 日志很容易。对此有何想法?

    这就引出了一个大问题。像 Pentaho 这样的 ETL 有什么意义?这篇Do I need a ETL? 的帖子让我相信,如果你使用 R 或其他所谓的 OOL,就没有理由拥有像 Pentaho 这样的工具。如果是这样,有人可以确认吗?我在这里真的需要第二个意见。如果是这样,谁使用像 Pentaho 这样的工具?只是没有编程背景的人,还是其他人?我确实看到很多关于 SO 的 Pentaho 问题。

    使用 R 和使用 Pentaho 的人确实多得多,对吧?这个http://www.kdnuggets.com/2012/05/top-analytics-data-mining-big-data-software.html 让它看起来如此。老实说,我很惊讶 Pentaho 排在第 5 位,这让我非常想知道谁在使用 Pentaho,以及我对它在我的工作环境中的使用的怀疑是否是错误的。

感谢您的任何回复。我并不是要对 Spoon 或 Spoon 用户有任何屈尊俯就;我真的很困惑,需要外界的意见。

【问题讨论】:

建议在 quora 上进一步提出这个问题 - 这似乎是进行主观讨论/辩论的更好场所。我认为这是一个很棒的话题,值得在某个地方讨论。 有趣的不止我一个人在想这个问题:BARUG 想把聚会集中在它上面。 meetup.com/R-Users/events/47885552/…。 FWIW,仅仅一年后我就辞掉了这份工作,因为效率低下让我发疯。令人高兴的是,我认为现在可以在启动环境中有效地使用 R。 我已经在 R 中将 data.table 用于 ETL 过程,它的语法很友好,每个括号 DT[,] 可以在 ETL 方面与转换块进行比较。关于问题 1。您可以创建一个日志记录过程来记录您想要的任何内容:转换时间、已处理的 nrow、捕获的错误消息。只需将 log_dt(data.table/data.frame 对象)拖放到 dbWriteTable。 总之,这是一个很好的问题。有人在 Quora 上问过这个吗? 【参考方案1】:

R 作为 ETL 工具?那是一个新的,但不管你的船是什么。

不过,我想说的是,如果你能获得 250 个工作并将 R 的转换减少到 1000 行以下,我会说你的 ETL 写得不好。

除此之外,您还必须考虑可支持性和可扩展性。我认为使用 Spoon 这样的图形工具而不是 R 代码会容易得多。

我个人认为你被误导了,你问的问题写得不好,但那是一个不同的论点。

关于您的观点,PDI 的日志记录非常好,如果您喜欢合并日志,您可以随心所欲地将所有内容记录到一个大型数据库表中。

ETL 不会消失,即使随着对 HDFS 等非结构化数据存储池的喜爱出现,也要考虑在 R 之外进行的数据分析,如果您想要在数据之上进行报告或 OLAP,它仍然需要无论如何都要转型。

是真的,更多的人使用 R 和 Pentaho?那是个什么样的问题?通过 Pentaho,我假设您的意思是 PDI?这怎么能比得上?数据分析工具 vs ETL 工具,你想统计用户?嗯?另一方面,如果您的意思是整个 R 与 Pentaho,那么我猜不是。您正在查看有关 R 与 Weka 的报告,并使其符合您的 ETL 论点。这不会在一个月的星期天洗掉。

==编辑== 好的,你目前有大约 1000 行 R & Python 代码。随着您老板的需求扩大,这会随着时间的推移而缓慢增长,并且由于您正努力赶上最后期限,因此新代码的编写与您当前拥有的代码一样干净或有良好的文档记录。所以随着时间的推移,它会增长到 5000 行,加上一些 python 脚本。然后有一天你被公共汽车撞了,一些新人必须进来管理你的代码......他们从哪里开始,他们如何进行更改?

如果需要,几乎任何具有少量数据经验的人都可以对 PDI ETL 进行更改。哪里需要一些具有足够深入 R 知识的人才能对您所做的事情进行更改。

ETL 工具旨在快速且易于使用,它们在与不同系统(例如非数据库或基于文件)的数据连接方面提供的功能远远超过 R 所能提供的,尽管我想这就是人们为什么求助于python等。 也就是说,两者都有空间,我见过的社区中有一个用于 PDI 的 R 插件。

除此之外,这些年来我已经看到了足够多的 TSQL 到 ETL 的迁移,从经验中知道,即使在代码中维护 ETL 在短期内看起来很实用,但从长远来看,它只会带来更多的痛苦。

另一方面,如果您可以将 250 个 PDI 转换编码到 1000 行 R,那么您的 ETL 可能会因前任的糟糕设计而变得臃肿。

如果您希望我对您现有的 PDI ETL 结构发表意见,也可以安排。

汤姆

【讨论】:

谢谢你的回答,汤姆。我知道我的问题写得不好,即使我已经在脑海中构思了数周。你完全正确,我被误导了——我不知道我在做什么!这里的重点是这是我的第一份工作。我知道如何使用 R。我从未使用过 ETL 工具。看起来 R 做了 ETL 工具应该做的事情,当然还有数据分析。请描述为什么“R 作为 ETL 工具”这句话很疯狂。即使进行了所有研究,我也不知道 ETL 工具与 R 和 Python 的混合到底是什么。如果需要更多信息,请告知。 我会编辑我的答案...... 我同意 ETL 工具中缺少文档并不像 R 中缺少文档那么痛苦,但是在 R 中这样做你将有更多时间编写更好的文档、更好的调试功能、更容易的更改请求开发。您可以将您的代码组织成有据可查的包,拥有良好的版本控制,还可以轻松地在 DEV/QA/PROD 之间切换存储​​库。

以上是关于R vs Pentaho Spoon 作为 ETL 工具 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 Kettle/Spoon/Pentaho 中循环

「集成架构」ETL工具大比拼:Talend vs Pentaho

开源ETL工具比较,Kettle和Talend,都有啥优势和劣势

开源ETL工具比较,Kettle和Talend,都有啥优势和劣势

使用 StAX / Kettle (Pentaho) 读取 XML 文件

如何从 Pentaho 的 javascript 步骤中的另一行读取?