数据识别、解析、过滤和转换 -- GUI?

Data recognition, parsing, filtering, and transformation -- GUI?

提问人:blunders 提问时间:12/3/2010 最后编辑:Matthew Murdochblunders 更新时间:3/1/2013 访问量:3701

问:

寻找一个非基于云的开源应用程序来进行数据转换;尽管对于一个专为数据转换而构建的杀手级(我的意思是杀手级)应用程序,我可能愿意花费高达 1000 美元。

我看过 PerlKapow KatalystPentaho Kettle 等等。

Perl、Python、Ruby 显然是语言,但找不到任何仅用于处理数据的框架/DSL;这意味着它们真的不是一个很好的开发环境,这意味着没有用于构建正则表达式、输入/输出(CSV、XML、JDBC、REST 等)的内置 GUI,没有用于测试一行又一行数据的调试器——它们也不错,只是不是我想要的,它是为复杂的数据转换而构建的 GUI;也就是说,如果 GUI/app 文件是脚本语言,而不仅仅是存储在一些人类不可读的 XML/ASCII 文件中,我会很高兴。

Kapow Katalyst 是为通过 HTTP(HTML、CSS、RSS、JavaScript 等)访问数据而设计的,它有一个很好的 GUI 来转换非结构化文本,但这不是它的核心价值产品,而且太贵了。它在遍历文档命名空间路径方面做得很好;猜测它只是后端的 XPath,因为语法似乎是相同的。

Pentaho Kettle 有一个漂亮的 GUI,用于大多数常见数据存储的输入/输出,以及它自己处理数据处理的方式;这没关系,只是有一个很小的学习曲线。Kettle 的调试器还可以,因为数据很容易看到,但错误和异常没有与输出线程化,并且没有办法真正调试问题;这意味着您无法重新加载输出/错误/异常,但可以查看系统反馈。综上所述,Kettle 数据转换_______很好,可以说它让我觉得我一定错过了什么,因为我完全被“如果不可能,就用 JavaScript 编写转换”感到困惑;嗯,什么?

那么,有什么建议吗?请注意,我并没有真正指定任何转换,但是如果您真的使用产品进行数据整理,我想知道它;我猜,甚至出类拔萃。

不过,总的来说,目前我正在寻找一种能够处理 1000-100,000 行和 10-100 列的产品。如果它可以分析数据集,那就太酷了,这是 Kettle 的一个功能,但不是很好。我还想要内置的单元测试,这意味着我能够构建数据的控制集,并运行对控制集所做的更改。然后,我希望能够在构建转换时有选择地过滤掉行和列,而无需更改构建;例如,我通过转换运行一个数据集,过滤结果,下一次运行这些数据集在第一次“逻辑”出现时自动阻止;这反过来又意味着要“查看”的数据更少,每次增强迭代的运行时间也会减少;如果当我过滤掉应用程序正在跟踪这些行/列时,那将是疯狂的,(并且输出被过滤掉了)。并经过单元测试/突出显示任何更改。如果我所做的更改会影响应用程序日志,并且它能够根据我“破坏分支”来跟踪单元测试 - 它会给我一个警告,让我转储数据存储的分支......和/或跟踪下一代输出中差异的主键,甚至尝试使用模糊逻辑来匹配它们。是的,我知道这是一个白日梦,但嘿,我想我会问,以防万一有什么我从未见过的东西。

欢迎发表评论,我很乐意回答任何问题,或提供更多信息。

Python Ruby Perl Kettle 数据操作

评论

1赞 S.Lott 12/3/2010
高达 1000 美元?你是怎么得出这个数字的?你看过什么产品?
0赞 blunders 12/7/2010
@S.Lott:“最高 1000 美元?你是怎么得出这个数字的?公司预算,虽然真的对花钱不感兴趣。我看过 CloverELT;CE 几乎没有转型支持。事实上,似乎大多数 ETL 甚至不进行复杂的转换。还没有到达 Talend,尽管 Java 版本似乎比 Perl 版本多了 60-70% 的转换。在我看来,大多数 ETL 都集中在 E 和 L 上,而不是 T;虽然我对此完全陌生,过去主要使用 Kapow/RoboSuite 从网络中提取数据;现在我只专注于数据转换构建
0赞 blunders 12/7/2010
@S.Lott :这是他们刚刚发布的 CloverETL 的 CE 功能的细分: cloveretl.com/products/community-edition/features
0赞 Roman Luštrik 7/6/2011
你试过R(r-project.org)吗?不过,没有 GUI。
0赞 Codek 12/16/2011
关于在 Kettle 中使用 javascript 步骤的评论是一件积极的事情!关键是,有很多步骤和转换可以做大约 90-95% 的事情。但!如果您有一些不寻常的要求,您仍然可以在 javascript 步骤中完成。B.T.W. 你也可以使用 Java、Ruby 和 OpenFormula 等。

答:

1赞 Mark Thomas 12/3/2010 #1

我不确定你到底要做什么样的数据或什么样的转换,但如果主要是数学转换,也许你可以尝试 FreeMatOctaveSciLab。如果它更像是数据仓库式的修改,请尝试开源 ETL 工具,如 CloverTalendJasperETL Community Edition 或 Jitterbit

评论

0赞 blunders 12/3/2010
感谢您的建议,确实下载了 Talend-CE,但在“尝试”了 5 分钟后,我放弃了。我现在就来看看 Clover、JasperETL-CE 和 JitterBit。至于数学转换,目前还不需要,但我仍然会检查这些应用程序,这样我就可以对它们有一个粗略的感觉。再次感谢!
3赞 glenn mcdonald 12/3/2010 #2

谷歌优化

评论

0赞 blunders 12/3/2010
很酷,谢谢 -- 你用过吗?看起来它只是为了利基任务,但开源并且非常擅长它所做的事情;这对我来说很好。
2赞 glenn mcdonald 12/3/2010
是的,我用过它。它非常专注于清理电子表格。我把它看作是对 Excel 的重新构想,从表格数据的需求开始,而不是空网格。
2赞 Thad Guidry 12/16/2011 #3

Talend 将需要超过 5 分钟的时间,可能接近 1 小时才能开始连接基本转换,并能够满足您保留版本控制转换的要求。您描述了一个 Pipeline 流程,当您知道如何操作时,该流程可以在 Talend 中轻松完成,其中工程中有多个输入和输出,因为相同的原始数据会经过各种转换和筛选,直到它作为您想要的最终输出到达。然后,您可以安排作业以对类似数据重复该过程。回去花更多的时间在 Talend 上,我相信你会在你需要的东西上取得成功。

我也恰好是 Google Fine 的提交者之一,并且在我的日常工作中也使用 Talend。实际上,我有时会先在 Google Fine 中为 Talend 建模。(有时甚至使用 Refine 对无聊的 ETL 执行清理也会自行转换!LOL ) 我可以告诉你,我在 Talend 上的经验在 Google Fine 的一些功能中发挥了很小的作用。例如,Talend 和 Google Refine 都为您的转换提供了表达式编辑器的概念(如果需要,Talend 会为此使用 Java 语言)。

Google Refine永远不会是一个ETL工具,从某种意义上说,我们并没有设计它来竞争,因为ETL通常用于大型数据仓库后端处理和转换。但是,我们设计了 Google Refine 来补充现有的 ETL 工具(如 Talend),允许轻松的实时预览,以便就您的转换和清理做出明智的决策,如果您的数据不是非常庞大,那么您可以选择在 Refine 中执行您需要的内容。

评论

0赞 blunders 12/16/2011
+1 @Thad Guidry: Thanks, I've in fact tried both of them. Don't recall much about Talend other than it has rerolled out two versions (Java/Perl) and each supports different functions. Google Refine is nice, and agree it'll never be an ETL, but does off the self fill in functional gaps that are present in Excel; for example native RegEx support. That said, while it's possible I missed it, or the feature has since been introduced, I recall Google Refine lacking an API or CLI. Thanks for posting, and really do believe Google Refine is an awesome tool.
0赞 Thad Guidry 10/5/2012
@blunders There are 3 known APIs that are available: github.com/PaulMakepeace/refine-client-py github.com/maxogden/refine-python github.com/maxogden/refine-ruby