Процесс.NET ETL
Сначала немного предыстории; мы разрабатываем хранилище данных и проводим некоторые исследования о том, какие инструменты использовать для нашего процесса ETL. Команда очень ориентирована на разработчиков, все знакомы с C#. До сих пор я смотрел на RhinoETL, Pentaho (Чайник), Astrix Centerprise. SSIS отсутствует по ряду причин, которые выходят за рамки этого вопроса.
В настоящее время я склоняюсь к чему-то более ориентированному на разработчиков, таким как RhinoETL, потому что это похоже на путь наименьшего сопротивления для группы разработчиков. Приносят ли другие продукты, более ориентированные на визуальный дизайн, что-нибудь, чего не может RhinoETL? Есть ли какие-то конкретные вещи, на которые я должен обратить внимание при оценке этих инструментов ETL? Есть ли другие инструменты, которые мы также должны исследовать?
1 ответ
Я знаю, что это поздний ответ, но так как мне нужен был надлежащий Elt со всеми функциями SSIS, но в 100% -ной среде.net я решил разработать свою собственную.
- Репозиторий Github: https://github.com/paillave/Etl.Net
- Начало документации: https://paillave.github.io/Etl.Net
Наверняка, показатели не так хороши, как в SSIS. Я полагаю, что если вы хотите, чтобы огромные производительности для больших томов интегрировались и трансформировались, вам все равно следует использовать SSIS.
Главное, что мне действительно нужно, что никакой другой инструмент kinda-etl, такой как RhinoEtl, не предоставляет, - это правильная система трассировки, которая позволяет иметь следы любых отдельных деталей, которыми легко манипулировать для записи в случае необходимости. Я сделал много готовых адаптеров для файловой системы, ftp, sftp, xml, csv, ядра entityframework и массовой загрузки. Я даже придумал визуальный инструмент для просмотра структуры процесса трансформации.
Это заняло у меня 10 месяцев, и я открыл это. По-прежнему не хватает документации (огромная работа для достижения). Я должен завершить его гораздо большим набором юнит-тестов (что также требует огромных усилий), чтобы достойно выпустить его в бета-версии. Даже если я все еще оставлю это в альфа-версии, это основа всех процессов ETL моей компании, и это работает как ад!
Недавно мы с коллегой провели простое тестирование производительности между RhinoETL и SSIS. Кажется, что для простых потоков данных SSIS всегда превосходил RhinoETL (перемещает 2 000 000 записей примерно на 30% быстрее). Если вы используете систему контроля версий (в нашем случае TFS), вы не можете легко увидеть различия между версиями файлов dtsx (файлов SSIS), где разработка с помощью RhinoETL позволяет вам использовать функции TFS.
Еще одно преимущество RhinoETL видно, если вы разрабатываете пользовательский интерфейс поверх хранилища данных. Вы можете поделиться кодом между этими двумя программами.
Хотя некоторые члены нашей команды служб SSIS являются выходцами из.Net, наше руководство решило продолжить разработку с использованием служб SSIS (хотя они и перешли на SSIS 2008 - совсем другая тема), поскольку они чувствовали, что разработчику легче освоить SSIS, чем. Сеть.