2017-05-15 2 views
1

Je cherche une solution Java pour répondre aux besoins suivants:Tout cadre DSL capable de manipulation de jeu de données?

  1. moteur pour l'exécution de simples DSL
  2. DSL qui permet la manipulation de données. par exemple: étant donné que j'ai besoin d'une opération de regroupement. Je ne veux pas le coder en Java. Je peux juste mettre quelque chose comme

    maxSalaire = max (groupe (salaires, "montant"));

.. ou de l'étendre facilement si aucun opérateur de groupe n'est présent.

  1. fonctions mathématiques doivent être présents, ou prêt pour l'extension

Pour autant que je comprends la chose que je dois est ETL simple. Je suppose qu'Informatica ou Pentaho peuvent faire le travail. D'autre part, j'essaie de comprendre si Spring Batch et Apache Camel peuvent le faire pour moi. Malheureusement, je ne vois pas de DSL pour Spring Batch.

Alors pourriez-vous me diriger vers un cadre ou un type de cadre pour répondre à mes besoins?

Répondre

1

Si vous ne respectez pas le développement normal du serveur Java. Vous pouvez utiliser Apache Pig pour manipuler un grand ensemble de données. (Cependant, Apache Pig nécessite essentiellement l'environnement Hadoop. Je vous recommande d'utiliser un certain environnement cloud, comme DME.)

Vous pouvez voir une syntaxe similaire dans la Pig Latin Basics

+0

Merci, hiropon! Cochon est pour les données stockées dans HDFS, c'est-à-dire sur le disque. En fait, je ne pense pas avoir besoin de stocker mes résultats de transformation de cette façon. Mais d'un autre côté c'est une bonne suggestion car je peux écrire des scripts en Pig DSL sans codage Java. – MiamiBeach

1

Il y a beaucoup de différents cadres/solutions que vous pouvez utilisation. Je nommerai certains d'entre eux afin que vous puissiez vérifier leurs documents/QuickStart pour voir comment il va répondre à vos cas d'utilisation:

+0

Merci Vyacheslav! Flink est intéressant, mais les deux projets ne permettent pas la manipulation de données avec DSL. C'est à dire. Je veux rendre mon flux de données facilement personnalisable sans effort de codage. – MiamiBeach

1

Si vous êtes à la recherche d'une solution simple, vous pouvez regarder la langue d'expression de printemps qui mettent en œuvre des mécanismes qui vous permettent d'effectuer des manipulations de données « simples ».

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

Certaines fonctions mathématiques de base et les opérateurs logiques sont nativement fournis. Si nécessaire, vous pouvez les étendre en enrichissant le contexte d'évaluation de Spring avec des utilitaires (par exemple à venir des mathématiques communes apache).Cela étant dit, cette approche est très limitée et peut ne pas être une bonne solution pour construire un DSL étendu.

Espérons que cela corresponde à vos besoins!