提问人:blunders 提问时间:12/3/2010 最后编辑:Matthew Murdochblunders 更新时间:3/1/2013 访问量:3701
数据识别、解析、过滤和转换 -- GUI?
Data recognition, parsing, filtering, and transformation -- GUI?
问:
寻找一个非基于云的开源应用程序来进行数据转换;尽管对于一个专为数据转换而构建的杀手级(我的意思是杀手级)应用程序,我可能愿意花费高达 1000 美元。
我看过 Perl、Kapow Katalyst、Pentaho 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 的一个功能,但不是很好。我还想要内置的单元测试,这意味着我能够构建数据的控制集,并运行对控制集所做的更改。然后,我希望能够在构建转换时有选择地过滤掉行和列,而无需更改构建;例如,我通过转换运行一个数据集,过滤结果,下一次运行这些数据集在第一次“逻辑”出现时自动阻止;这反过来又意味着要“查看”的数据更少,每次增强迭代的运行时间也会减少;如果当我过滤掉应用程序正在跟踪这些行/列时,那将是疯狂的,(并且输出被过滤掉了)。并经过单元测试/突出显示任何更改。如果我所做的更改会影响应用程序日志,并且它能够根据我“破坏分支”来跟踪单元测试 - 它会给我一个警告,让我转储数据存储的分支......和/或跟踪下一代输出中差异的主键,甚至尝试使用模糊逻辑来匹配它们。是的,我知道这是一个白日梦,但嘿,我想我会问,以防万一有什么我从未见过的东西。
欢迎发表评论,我很乐意回答任何问题,或提供更多信息。
答:
我不确定你到底要做什么样的数据或什么样的转换,但如果主要是数学转换,也许你可以尝试 FreeMat、Octave 或 SciLab。如果它更像是数据仓库式的修改,请尝试开源 ETL 工具,如 Clover、Talend、JasperETL Community Edition 或 Jitterbit。
评论
谷歌优化?
评论
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 中执行您需要的内容。
评论