Есть ли название для процесса создания группы обеспечения доступности баз данных на основе базовых данных и зависимостейPython

Программы на Python
Ответить
Anonymous
 Есть ли название для процесса создания группы обеспечения доступности баз данных на основе базовых данных и зависимостей

Сообщение Anonymous »

Я беру на себя монорепозиторий программ обработки данных, которые выполняются итеративно поэтапно (например: этап 1 запускает программу 1 до программы 30, затем данные проверяются. Этап 2 начинается с программы 20 и выполняется до программы 80 с заморозкой входных данных в состоянии программы 19, если исходные входные наборы данных не изменились. Это продолжается до конечного продукта данных) и преобразую весь процесс в Python. Единственные зеркала, которые у меня есть для управления зависимостями кода, — это внутреннее зеркало conda.
Текущий процесс включает около 300 программ и зависимостей, таких как "

Код: Выделить всё

Program 40
запускается и записывает в набор данных Z только в том случае, если программа 23 запущена, набор данных X помечен как готовый к анализу, программа 37 не включена в этот этап и этап выполнения < 3".
Эти зависимости отслеживаются вручную. Программисты указывают статус своей программы из этого основного списка для каждого итеративного запуска, и им необходимо координировать свои действия друг с другом, чтобы создать список входных данных для любого данного этапа. Точка начала и остановки для каждого этапа определяется тем, какие входные данные «заморожены», какие программы изменены, какие флаги среды установлены и т. д. Неожиданные побочные эффекты, что неудивительно, довольно распространены, когда программистам не удается обновить входной файл в соответствии с изменениями в их коде.
Я хочу автоматизировать и обновить этот процесс, заменив список ввода вручную на группу DAG, в которой указано, какие программы запускать на данном этапе, и который я могу передать планировщику заданий. Однако мне кажется, что я начинаю с уровня, предшествующего уровню dag, где программа Z на самом деле не заботится о запуске после программы Y , сразу после программы, которая изменяет переменные или артефакты входного набора данных (файлы конфигурации, переменные env, плоский набор данных, файлы журналов и т. д.).
Я думаю, что до тех пор, пока каждый программист точно определяет, какие входные данные нужны конкретной программе X в анализируемом виде, и пока у меня есть начальный линейный список программ (чтобы знать, изменяют ли обе программы X и Y какую-то переменную, какая программа должна запускаться первой), я думаю, что я должен иметь возможность генерировать DAG реальных программ для запуска на любом заданном этапе порядка выполнения. Это также имеет то преимущество, что DAG всегда будет правильным, если входные переменные программы изменяются или какая-то зависимость обновляется так, что она больше не зависит напрямую от предыдущей программы (это случается довольно часто).
Я должен предположить, что это довольно распространенная проблема, поэтому, прежде чем пытаться изобретать заново. колесо: существует ли существующий инструмент, процесс или шаблон проектирования, который пытается решить эту проблему? И в идеале есть ли способ объединить изменения в данных, конфигурациях и коде в виде зависимостей?
Пакет Python под названием Pants показался очень близким к этому, но я не смог его протестировать из-за требований к установке и отсутствия поддержки conda.

Подробнее здесь: https://stackoverflow.com/questions/798 ... data-and-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»