Луиджи против весенней партии - PullRequest
0 голосов
/ 21 марта 2019

Я должен загрузить TXT-файлы в таблицы оракула.В настоящее время процесс выполняется с использованием сценариев bash, загрузчика sql и инструментов командной строки для проверки.

Я пытаюсь найти более надежные альтернативы.Я выбрал два варианта: Luigi (среда Python) и Spring Batch.

Я сделал небольшой POC, используя Spring Batch, но я считаю, что он содержит много стандартного кода и может быть излишним.Я также предпочитаю Python, а не Java.Преимущество Batch - это схема отслеживания заданий, которая поставляется из коробки с платформой.

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

Не могли бы вы дать мне некоторые плюсы и минусы каждого фреймворка для этого варианта использования?

1 Ответ

1 голос
/ 21 марта 2019

Я бы сказал, что они не являются эквивалентными технологиями. Luigi - это скорее структура управления рабочими процессами / процессами, которая может помочь организовать и организовать множество различных пакетных заданий

Цель Luigi - решить все вопросы, связанные с долгосрочными пакетными процессами. Вы хотите связать много задач, автоматизировать их, и произойдут сбои. Этими задачами могут быть все что угодно, но обычно это такие долго выполняемые вещи, как задания Hadoop, выгрузка данных в / из баз данных, запуск алгоритмов машинного обучения или что-то еще. https://luigi.readthedocs.io/en/stable/

Spring Batch дает вам многократно используемую среду для структурирования пакетного задания. Он дает вам множество возможностей, таких как возможность чтения ввода из текстовых файлов и записи вывода в базы данных.

Облегченная, комплексная пакетная среда, разработанная для разработки надежных пакетных приложений, жизненно важных для повседневной работы корпоративных систем.

Spring Batch предоставляет многократно используемые функции, которые необходимы для обработки больших объемов записей, включая ведение журнала / трассировку, управление транзакциями, статистику обработки заданий, перезапуск заданий, пропуск и управление ресурсами https://spring.io/projects/spring-batch

Теоретически можно запускать задания Spring Batch с Луиджи.

Исходя из краткого описания вашего варианта использования, это звучит как хлеб с маслом того, что вдохновляло Spring Batch в первую очередь. Фактически, их 15-минутное демонстрационное приложение охватывает случай использования чтения из файла и загрузки записей в базу данных JDBC https://spring.io/guides/gs/batch-processing/.

...