|
|
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
День добрый, уважаемые! Постоянно возникает задача трансформации и валидации различных данных. Постоянно она решается через hardcode, и это не очнь хорошо. Есть ли какие-то решения на Джаве для создания натраиваемой цепочки трансформации данных? Попробую объяснить на примере. Допустим в памяти у нас оказался каким-то образом инстанс Джава класса Project. Нам надо 1. провалидировать его. если у Project поле name не заполнено - отбой. 2. трансформировать его. если у Project поле manager пусто то надо поставить туда "empty", а еще из второго находящегося в памяти класса ProjectData проставить приведенное к верному формату поле StartDate, вычесть из даты начала проекта текущую дату и получить поле projectDuration итд. Итоговый объект отправить куда следует. Отмечу что в данной задаче не важна интеграция с источниками и потребителями данных. Фреймворков для этого довольно много, не сложно взять один из них, или раз и навсегда написать адаптер самому. А вот работа с трансформацией, валидацией и обогащением данных может часто меняться, переиспользоваться, причем нам, как разработчикам, желательно чтобы этот код был более - менее читаем не программирующими людьми, которые смогут сами ревьюить эти трансформации. Есть ли какие-то советы на этот счет? Сам я тоже делал домашнюю работу, просмотрев инет заметил следующее: 1. различные ETL фреймворки. Pentaho, Talend - самые на слуху. 2. перевод данных в XML структуру и манипуляции при помощи XSLT 3. манипуляции через скрипты написанные на JavaScript к примеру, запускать на Java Scripting API 4. создание своего DSL на XText или на чем-то еще Можете ли посоветовать что-нибудь? Чем бы воспользовались для такой задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2017, 23:54 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
Dymytry1. различные ETL фреймворки. Pentaho, Talend - самые на слуху. 2. перевод данных в XML структуру и манипуляции при помощи XSLT 3. манипуляции через скрипты написанные на JavaScript к примеру, запускать на Java Scripting API 4. создание своего DSL на XText или на чем-то еще эти варианты подходят для них? автор не программирующими людьми, которые смогут сами ревьюить эти трансформации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 00:34 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
DymytryДопустим в памяти у нас оказался каким-то образом инстанс Джава класса Project. если это поток данных (ETL) то откуда классы? Классы для программистов! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 00:37 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
Petro123Dymytry1. различные ETL фреймворки. Pentaho, Talend - самые на слуху. 2. перевод данных в XML структуру и манипуляции при помощи XSLT 3. манипуляции через скрипты написанные на JavaScript к примеру, запускать на Java Scripting API 4. создание своего DSL на XText или на чем-то еще эти варианты подходят для них? автор не программирующими людьми, которые смогут сами ревьюить эти трансформации. Ну.. относительно. В идеале иметь графический интерфейс для описания трансформаций. Некоторые ETL движки это позволяют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 13:22 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
Petro123DymytryДопустим в памяти у нас оказался каким-то образом инстанс Джава класса Project. если это поток данных (ETL) то откуда классы? Классы для программистов! Понятно, что вопросы интеграции с источниками и моделью данных будут решать программисты. Это должно быть создано заранее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 13:23 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
DymytryПопробую объяснить на примере. Допустим в памяти у нас оказался каким-то образом инстанс Джава класса Project. Нам надо Постановка не верная. Вы должны описать РАБОЧЕЕ МЕСТО (АРМ) вашего НЕ программиста. As is to be. Предмет автоматизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 17:57 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
Petro123DymytryПопробую объяснить на примере. Допустим в памяти у нас оказался каким-то образом инстанс Джава класса Project. Нам надо Постановка не верная. Вы должны описать РАБОЧЕЕ МЕСТО (АРМ) вашего НЕ программиста. As is to be. Предмет автоматизации. Рабочее место: 1. задача минимум - удобная IDE для написания кода транформации. 2. задача посерьезнее - IDE + средства тестирования, отладки. 3. задача максимум - IDE с графическим интерфейсом который позволяет визуально набрасывать трансформацию данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 18:51 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
Dymytry, Нда. Как про сферический конь в вакууме. ТЗ вы никогда не писали. Возьмите флейту. Трансформация воздуха на входе в музыку на выходе. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 20:24 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
Dymytry, As is to be означает рассказ ка ЭТО делается сейчас, и как предположительно в 10 раз быстрее будет с помощю проектируемого ПО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 20:30 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 00:57 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
забыл ник https://docs.jboss.org/jbpm/v6.0/userguide/wb.Workbench.html + Drools? Если только не бедет оверхеда. Он всё уверяет, что у него предмет данные и ETL, а тут предмет процессы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 08:31 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
Petro123Dymytry, As is to be означает рассказ ка ЭТО делается сейчас, и как предположительно в 10 раз быстрее будет с помощю проектируемого ПО. as is Ну, сейчас просто пишется соответствующий бин на спринге который делает эту работу. Т.е. сейчас программист пишет джава код в котором отражена вся эта логика. Если надо изменить - он переписывает по заданию от аналитика. to be логика преобразования рисуется сразу аналитиком в визуальной тулзе или пишется на DSL деплоится в систему админом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 12:37 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
Dymytryлогика преобразования рисуется сразу аналитиком в визуальной тулзе или пишется на DSL деплоится в систему админом Это утопия. Нельзя заменить программиста рисовалкой. Не каждый владелец зеркалки - фотограф. Не каждый пользователь фотошопа - дизайнер. Так и здесь. Нельзя аналитику дать инструмент и заменить программиста. В любой ситуации вы упретесь в то что инструмент чего-то не умеет и нужно доделывать сам инструмент. Или в то что трансформация не на столько примитивная, что аналитик зная входные и выходные данные сможет построить весь процесс трансформации. Программист это не кодер, который не знает ничего кроме синтаксиса языка программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 12:43 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЭто утопия. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 13:29 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
Dymytry, Если ваше руководство настолько упёртое, то возьмите BPM. Просто ваши затраты не окупятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 13:33 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczDymytryлогика преобразования рисуется сразу аналитиком в визуальной тулзе или пишется на DSL деплоится в систему админом Нельзя заменить программиста рисовалкой. Не каждый владелец зеркалки - фотограф. Не каждый пользователь фотошопа - дизайнер. Так и здесь. Нельзя аналитику дать инструмент и заменить программиста. В любой ситуации вы упретесь в то что инструмент чего-то не умеет и нужно доделывать сам инструмент. Речь о том, чтобы заменить программиста только в одной из очень многих частей системы. Это одна маленькая часть логики. Доделывать периодически инструмент, конечно, придется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 13:52 |
|
||
|
DSL для транформации данных. Есть что?
|
|||
|---|---|---|---|
|
#18+
DymytryРечь о том, чтобы заменить программиста только в одной из очень многих частей системы. Это одна маленькая часть логики Откройте мастер импорта excell из текстовогл файла. Подходит? Делайте. И не пытайтесь автоматизировать классы и бины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 14:13 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=56&tid=2122424]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 384ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...