Инструменты ETL и инструменты сборки - PullRequest
2 голосов
/ 12 ноября 2009

Я знаком с инструментами автоматической сборки программного обеспечения (такими как Automated Build Studio). Сейчас я смотрю на инструменты ETL.

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

Я прав?

Ответы [ 5 ]

3 голосов
/ 13 ноября 2009

Правильно, что вы можете развернуть свои собственные сценарии ETL, написанные с использованием предпочитаемого вами средства разработки. Тем не менее, задания ETL часто бывают большими (из-за отсутствия лучшего слова) и требуют значительного администрирования и внимания к мелким деталям (например, программированию). Инструменты ETL позволяют разработчику сосредоточиться на задачах ETL - в отличие от написания и отладки кода, хотя это тоже является частью этого. Существуют некоторые инструменты с открытым исходным кодом, так что вы можете почувствовать, что делает обычный инструмент, прежде чем переходить к пользовательской разработке. Например, более дорогие инструменты обеспечивают происхождение данных, то есть вы можете (графически) отслеживать каждое поле отчета до исходной таблицы посредством всех преобразований (включая версии); после корпоративного слияния это довольно сложная задача.
Например, В Пентахо есть издание сообщества ; если у вас есть MS SQL Server, вы можете получить SSIS. Также посмотрите, можете ли вы найти что-то здесь .

1 голос
/ 03 ноября 2011

Вся деятельность ETL основана на предпосылке, что источник данных несовместим с источником данных назначения. И много раз, люди, которые сбрасывают исходные данные, могут не думать, что эти данные должны быть собраны и объединены. Вот почему весь бизнес ETL существует.

Коммерческий инструмент ETL не будет магически считывать исходные данные и преобразовывать данные в соответствии с правилами целевой базы данных. Правила должны быть определены и введены в инструмент ETL. Интересно, что многие компании предлагают обучение !!! о том, как использовать их собственный язык сценариев. Так что это не всегда так просто. Но для непрограммистов, возможно, это предпочтительный маршрут.

Лично я думаю, что всегда проще написать собственный инструмент ETL на таком языке, как Perl. Просто напишите алгоритм конечного автомата, чтобы копировать исходные данные и преобразовывать их в нужный формат. Я использую Perl для FTP на машинах, читаю файлы, преобразую данные и затем загружаю их в базу данных. Это всегда превосходное решение и намного быстрее, если вы опытный в Perl или аналогичном, или можете нанять кого-то, кто знает Perl.

И последний момент, начните с конца. Создайте исходные данные в структурированном формате, чтобы помочь группе анализа в вашей компании, которая хочет объединить и изучить данные. Это облегчит и ускорит разработку программы ETL.

1 голос
/ 20 мая 2010

Преимущество инструмента ETL максимизируется, если у вас есть много процессов для сборки (мне нравится аналогичный пост jsf80238 по аналогии с забиванием 100 гвоздей). Ключевым преимуществом реальных инструментов ETL являются метаданные, которые они генерируют, и оперативная поддержка. Написание ваших сценариев на Perl / Ruby / etc довольно просто, но ломается, когда нужно отследить проблемы или когда кто-то, кроме автора должен выяснить, в чем дело. за что стоит платить деньги. Я использовал SSIS от Microsoft (2005 год - ОК) и последний Pentaho PDI (довольно хорошо). GUI Pentaho ETL используется бизнес-пользователями (без поддержки ИТ в 99% случаев) на моем рабочем месте и заменил клубок SQL-сценариев и электронных таблиц. Скажите, что вам нравится в остальной части стека Pentaho, но компонент ETL, на мой взгляд, является отличным «ударом по доллару».

0 голосов
/ 20 мая 2010

Вы также можете делать все, что могут делать инструменты ETL с кодом. :-)

Обе упомянутые вами категории инструментов могут использоваться для решения этой проблемы, но они оптимизированы для класса проблем, которые они пытаются решить:

  • ETL обычно поставляются с библиотекой инструментов манипулирования данными (реляционное исчисление, встроенные вычисления и т. Д.), Оптимизированы для обработки больших объемов данных и имеют функции управления заданиями (важно, если это не единичное однократная миграция данных).
  • Инструменты сборки (для меня Ant приходит в голову в качестве прототипа) могут выполнять аналогичные задачи, но сосредоточены на компиляции, организации и манипулировании файлами, а также на упаковке.
0 голосов
/ 22 ноября 2009

Мне нравится ответ Дамира Сударевича, и я хотел бы добавить, что ваш выбор инструмента может также зависеть от того, сколько работы у вас перед вами. Если у вас есть случайная задача ETL и вы уже знакомы с инструментом, который позволит вам выполнить эту задачу, используйте инструмент, который вы уже знаете (этот подход назначает нулевое значение для изучения нового инструмента, который, возможно, недооценивает новые знания). Если у вас много задач ETL, первоначальные инвестиции в изучение нового инструмента вполне могут окупиться. Вы можете использовать плоскогубцы, чтобы гвоздь, и, если у вас есть только один гвоздь, вы можете использовать плоскогубцы. Если вам нужно вбить 100 гвоздей, возьмите молоток.

...