Распознавание, анализ, фильтрация и преобразование данных - GUI? - PullRequest
5 голосов
/ 03 декабря 2010

В поисках не облачного приложения с открытым исходным кодом для преобразования данных; хотя для приложения-убийцы (и я имею в виду убийцу), только что созданного для преобразования данных, я мог бы потратить до 1000 долларов.

Я смотрел на Perl , Kapow Katalyst , Чайник Pentaho и другие.

Perl, Python, Ruby , которые явно являются языками, но не могут найти никаких каркасов / DSL только для обработки данных; это означает, что они на самом деле не очень хорошая среда разработки, то есть нет встроенного графического интерфейса для построения RegEx, ввода / вывода (CSV, XML, JDBC, REST и т. д.), нет отладчика для тестирования строк и строк данных - они тоже неплохо, просто не то, что я ищу, это графический интерфейс, созданный для сложных преобразований данных; Тем не менее, я хотел бы, чтобы файл GUI / приложения был на языке сценариев, а НЕ просто сохранялся в каком-то не читаемом человеком файле XML / ASCII.

Kapow Katalyst предназначен для доступа к данным через HTTP (HTML, CSS, RSS, JavaScript и т. Д.), Имеет приятный графический интерфейс для преобразования неструктурированного текста, но это не является его основной ценностью и является слишком дорого. Это делает хорошую работу по обходу путей пространства имен документа; предполагая, что это просто XPath на бэкэнде, поскольку синтаксис выглядит одинаково.

Pentaho Kettle имеет приятный графический интерфейс для INPUT / OUTPUT наиболее распространенных хранилищ данных и свой собственный подход к обработке данных; что хорошо, и просто имеет небольшую кривую обучения. Отладчик Kettle в порядке, в том, что данные легко увидеть, но ошибки и исключения не связаны с выводом, и нет способа действительно отладить проблему; Это означает, что вы не можете перезагрузить вывод / ошибку / исключение, но можете просмотреть обратную связь системы. Все это говорит о том, что преобразование данных Kettle - это _______ ну, давайте просто скажем, что у меня возникло ощущение, что я, должно быть, что-то упустил, потому что я был полностью озадачен "если это невозможно, просто напишите преобразование в JavaScript"; ммм, что?

Итак, есть предложения? Поймите, что я на самом деле не специфицировал преобразований , но подумайте, если вы действительно используете продукт для сбора данных, я бы хотел узнать об этом; даже превосходить, я думаю.

В целом, в настоящее время я ищу продукт, способный обрабатывать 1000-100000 строк с 10-100 столбцами. Было бы очень круто, если бы он мог профилировать наборы данных, что характерно для Kettle, но не очень хорошо. Мне бы также хотелось встроенного модульного тестирования, то есть я могу создавать контрольные наборы данных и выполнять изменения, внесенные в контрольный набор. Затем я хотел бы иметь возможность выборочно отфильтровывать строки и столбцы при построении преобразования без изменения сборки; например, я запускаю набор данных посредством преобразования, фильтрую результаты, и при следующем запуске эти наборы автоматически блокируются при первом «логическом» вхождении; что, в свою очередь, будет означать меньше «данных» для просмотра и сокращение времени выполнения для каждой расширенной итерации; что было бы безумно приятно, так это то, что если бы я отфильтровал строки / столбцы, приложение отслеживало их (и выходные данные были отфильтрованы). и юнит протестировал / выделил любые изменения. Если бы я внес изменение, которое повлияло бы на журналы приложений и его способность отслеживать модульные тесты, основанные на том, что я "сломал ветку" - это дало бы мне предупреждение, дало бы мне сбросить ветвь, сохраненную в данных ... и / или отследить первичные ключи для определения различий в выходных данных следующего поколения или даже попытки сопоставить их с помощью нечеткой логики И да, я знаю, что это несбыточная мечта, но, эй, подумал, что я спрошу, на случай, если есть что-то, чего я просто никогда не видел.

Не стесняйтесь комментировать, я был бы рад ответить на любые вопросы или предложить дополнительную информацию.

Ответы [ 3 ]

3 голосов
/ 03 декабря 2010
2 голосов
/ 16 декабря 2011

Talend потребуется более 5 минут вашего времени, возможно, ближе к 1 часу, чтобы начать соединять базовые преобразования и быть в состоянии выполнить ваше требование также и для контроля версий с контролем версий. Вы описали процесс конвейера, который можно легко выполнить в Talend, когда вы знаете, как, когда у вас есть несколько входов и выходов в проекте, когда одни и те же необработанные данные проходят через различные преобразования и фильтрацию, пока они не будут получены в качестве конечного результата, как вам нужно. Затем вы можете запланировать свою работу, чтобы повторить процесс над аналогичными данными. Вернитесь и проведите больше времени с Talend, и я уверен, что вы преуспеете в том, что вам нужно.

Я также являюсь одним из приверженцев Google Refine и также использую Talend в своей повседневной работе. На самом деле я иногда моделирую свои преобразования для Talend сначала в Google Refine. (Иногда даже используя Refine для очистки очищенных ETL-трансформаций! LOL) Я могу вам сказать, что мой опыт работы с Talend сыграл небольшую роль в некоторых функциях Google Refine. Например, и Talend, и Google Refine имеют концепцию редактора выражений для ваших преобразований (для этого при необходимости Talend переходит на язык Java).

Google Refine никогда не будет инструментом ETL, в том смысле, что мы не разработали его для конкуренции в этом пространстве, где ETL обычно используется для обработки и преобразования серверной части большого хранилища данных. Тем не менее, мы разработали Google Refine, чтобы дополнить существующие инструменты ETL, такие как Talend, благодаря простому предварительному просмотру в реальном времени для принятия обоснованных решений о ваших преобразованиях и очистке, и если ваши данные не слишком велики, вы можете решить, что вам нужно, в самом Refine .

1 голос
/ 03 декабря 2010

Я не уверен, какие именно данные или какие преобразования вы пытаетесь выполнить, но если это в основном математическое преобразование, возможно, вы можете попробовать FreeMat , Octave или SciLab .Если это больше в стиле хранилища данных, попробуйте инструменты с открытым исходным кодом, такие как Clover , Talend , JasperETL Community Edition или Jitterbit .

...