2009-06-24 6 views
1

В компании я работаю имеет много «сложных» пакетные процессы файлов на основе, с последовательностями файлов, такие как:«сделать» как планирования последовательность задач

  • взять файл A
  • извлечения файла B
  • присоединиться поля в файле A в файл B, чтобы сделать файл с
  • запустить некоторые эвристики на файл C, чтобы сделать файл D
  • загрузки файла на сервер D X
  • построить отчет на основе на файлах D и A и отправить их по адресу [email protected]

Для выполнения каждого шага может потребоваться много часов (файлы могут содержать миллиарды строк данных). В то время как вещь склеивается с GNU Makefiles, с разделами, такими как:

fileC: Поданный выполнения анализа $ ^> $ @

В Makefiles полезны для моделирования зависимостей между этапами, а также позволяет все после определенного шага, который нужно повторить (если есть проблема с шагом, или эвристика меняется и так далее).

Использование Makefile всегда кажется мне плохой, поскольку они предназначены для создания программного обеспечения, а не для запуска пакетных процессов. Кроме того, Makefiles не предоставляют какой-либо формы рамки тестирования.

Мой вопрос в том, как вы скопируете большие последовательности больших операций, подобных этим?

+3

Просто потому, что make хорош в создании программного обеспечения, это не значит, что это плохо во всем остальном! –

+1

Повторное тестирование: вы можете использовать ключ -dry-run или -n, чтобы просто показать, какие цели будут построены без их создания, и вы можете настроить «тестовую среду» с использованием --assume-old и - предположим новые варианты. –

ответ

6

Файл Makefile может использоваться для building software.
Но они не ограничиваются этой деятельностью.

Makefiles can help sequence many things.
Какой includes test frameworks.

Вы использовали сборку, тестирование, установку, основанную на Makefile?
Есть tools to make Makefiles!

Вот некоторые вне пути используются для,

Другие ссылки внутри StackOverflow на,

+1

Я запомню это. Взгляните на The Make Book, и вы поймете, сколько использует Makefile. http://oreilly.com/catalog/9780596006105/book/index.csp – scvalex

0

Имеет данные в файлах переросли структуру файла? Возможно, пришло время начать думать о новых источниках данных, если данные в файлах действительно хорошо структурированы.

Я чувствую, что замена файлов A и B на хорошо структурированные данные в базе данных не является вариантом. Как об этом:

  1. Загрузите структурированные данные из файла A и извлеченного файла B в ряд реляционных таблиц базы данных.
  2. Выполнять соединения из таблиц для создания данных в другой таблице (или даже в памяти).
  3. Запустите необходимые эвристики
  4. Создайте выходной файл D из полученных данных.
  5. Создайте отчет из полученных и исходных данных.

Шаги 1 + 4 все равно будут медленными, но я уверен, что вы можете ускорить весь процесс, используя более эффективные структуры данных для реальной обработки.

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

4

Makefiles на самом деле довольно хороши для такого рода вещей и довольно широко используются. Они могут использоваться для всего, что связано с отслеживанием зависимостей (я слышал анекдот об экспертной системе, реализованной как make-файл). Gnu make может выполнять несколько заданий параллельно.

Вы не должны слишком задумываться о make-файлах, поскольку альтернативами являются инструменты планирования предприятия, такие как Control-M. Эти инструменты являются:

  • Многое, гораздо сложнее

  • Очень дорогой

  • довольно непрозрачным и несколько сложнее проверить, чем Makefile

  • Политически трудно получить набор на ваш локальный компьютер, чтобы вы могли их протестировать.

Палка с Makefiles, если у вас есть очень веские причины не делать этого. Средства управления системой предприятия могут быть побеждены, если у вас действительно большие установки с сотнями или тысячами гетерогенных систем. Если вы не работаете на этой шкале, есть очень веские причины не использовать инструменты такого типа.

Основным аргументом в пользу систем высокого класса «предприятие» является то, что развертывание инфраструктуры такого типа имеет тенденцию расширять внутреннее святилище иерофантов в лагере по священным знаниям о том, как управлять этими «корпоративными» системами. Этот процесс известен как «здание империи» в литературе по искусству. Когда оспаривается, строитель империи может легко ослепить управление наукой, подразумевая, что у них есть особые знания, и что никто другой не имеет права делать что-либо с их «корпоративными» системами, которые слишком сложны для простых смертных, чтобы понять.

Бюрократия «Архитектура предприятия» может быть довольно трудно спорить, если вы не знакомы с инструментами. Make-файлы знакомы, каждый инструмент. Вы можете спорить о make-файлах на равной основе.

Stick с файлами-фактурами. Это держит этих ублюдков честным.

Смежные вопросы