Прямой инструмент Java/Groovy по сравнению с инструментом ETL (Talend/etc) — какие библиотеки вы бы использовали?

Предположим, у вас есть небольшой проект, который на первый взгляд выглядит как хороший инструмент для ETL-инструмента, такого как Talend.

Но предположим далее, что вы никогда не использовали Talend и, кроме того, вы не доверяете инструментам «визуального программирования» в целом и предпочитаете кодировать все по старинке (текст в хорошей IDE!) с помощью соответствующего языка и поддержки библиотеки.

Какие языковые шаблоны и библиотеки поддержки могут помочь вам избежать искушения/ловушки инструмента ETL?


person Alex R    schedule 12.03.2010    source источник
comment
ETL: извлечение, преобразование, загрузка. en.wikipedia.org/wiki/Etl   -  person Thilo    schedule 12.03.2010
comment
Я нашел эту ссылку полезной, когда пытался принять это решение: Университет Кимбалла: новый взгляд на подсистемы ETL   -  person Bradford    schedule 09.09.2011


Ответы (5)


Это зависит от того, является ли результат процессором или самим выходом. Если вам просто нужно доставить вывод, вам не нужно поддерживать код. Если код нужно поддерживать, будете ли вы поддерживать его или кто-то другой?

Если кому-то еще нужно поддерживать, я бы использовал Java или дал им Talend.

Если это одноразовый код, я бы использовал то, что будет проще или интереснее программировать.

Если вам нужно его поддерживать, а обработка сложная, я бы использовал Scala. Она имеет:

  • некоторые библиотеки для взаимодействия с базами данных
  • XML-литералы
  • комбинаторы парсера
  • интересные функции в своих пакетах сбора (карта, фильтр, groupBy, раздел, ...)
  • и, конечно же, любые другие существующие библиотеки Java.
person huynhjl    schedule 12.03.2010
comment
Я проверил сгенерированный Talend код... Вы уверены, что его можно поддерживать после создания? - person yura; 16.09.2011
comment
@yura, я только что мельком взглянул на Talend и лично им не пользовался. Когда я имел в виду, что определения и конфигурации Talend могут поддерживаться (не обязательно сгенерированный код). - person huynhjl; 16.09.2011
comment
Хорошо, я просто хотел узнать ваше мнение, можно ли использовать визуальные языки (например, Talend или Pentaho) для сложных правил ETL, требующих долгосрочной поддержки и обслуживания. - person yura; 16.09.2011

Раньше я думал, что «визуальное программирование» — это что-то для людей, которые не умеют программировать. Затем я познакомился с Talend в проекте и понял, что этот тип инструмента идеально подходит для работы, когда речь идет о перемещении данных из точки А в точку Б и их преобразовании в процессе. Это компонентно-ориентированный дизайн программного обеспечения с более академическим названием.

Я до сих пор считаю себя приличным программистом, который может делать что угодно, а то и кое-что, с помощью текстового редактора и командной строки. Но я также стал большим поклонником Talend.

Полное раскрытие: я сейчас работаю в компании :-)

person drmirror    schedule 09.09.2011

Ознакомьтесь с DataExpress. Это основанный на Scala набор инструментов ETL для разных баз данных.

person Didia    schedule 08.06.2012

Я думаю, что это очень хорошо подходит для основанных на Rails фреймворков, таких как Grails на Groovy или Lift на Scala.

person Daniel C. Sobral    schedule 12.03.2010

В зависимости от размера схемы БД вы можете быстро сопоставить все в Hibernate и просто использовать полученную объектную модель для выполнения своей работы (в зависимости от того, для чего вам нужен инструмент ETL)

person Eric    schedule 12.03.2010