2017-05-15 34 views
1

我要寻找一些基于Java的解决方案以满足以下需求:任何基于DSL的框架都能够进行数据集操纵?

  1. 引擎简单DSL的执行
  2. DSL它允许数据集操作。例如:因为我需要一些分组操作。我不想用Java编写它。我可以放下类似

    maxSalary = max(组(薪金,“金额”));

..或者如果组运营商不存在,很容易扩展它。

  • 数学函数应当存在,或准备用于扩展
  • 据我明白我需要的东西是简单的ETL。我想Informatica或Pentaho可以完成这项工作。另一方面,我尝试了解Spring Batch和Apache Camel是否可以为我做到这一点。不幸的是,我没有看到春季批次的任何DSL。

    所以,你可以请我指导一些框架或框架类型,以适应我的需求?

    回答

    1

    如果你不坚持正常的Java服务器端开发。 您可以使用Apache Pig来操作大型数据集。 (但是,Apache的猪基本上需要Hadoop的环境。我建议你使用一些云计算环境,如EMR)

    你可以看到在Pig Latin Basics

    +0

    谢谢hiropon! Pig用于存储在HDFS中的数据,即在磁盘上。实际上我不认为我需要以这种方式存储转换结果。但另一方面,这是一个很好的建议,因为我可以在没有Java编码的情况下在Pig DSL中编写脚本。 – MiamiBeach

    1

    类似的语法有很多不同的框架/解决方案,您可以的使用。我将列举一些他们的,所以你可以检查自己的文件/快速入门,看看它是如何将适合您的使用情况:

    +0

    谢谢维亚切斯拉夫! Flink很有趣,但是这两个项目都不允许使用DSL进行数据操作。即我想让我的数据流很容易定制,而无需编码工作。 – MiamiBeach

    1

    如果你正在寻找一个简单的解决方案,你可以看看其实现,将允许你执行“简单”的数据处理机制,春节表达语言。

    https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html

    一些基本的数学函数和逻辑运算符本身提供。如果需要,可以通过使用实用程序丰富Spring评估上下文来扩展它们(例如,来自Apache常见数学)。

    这就是说,这种方法是非常有限的,可能不是一个很好的解决方案来建立一个扩展的DSL。

    希望这适合您的需求!