1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-asofdate-etl

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Вики-страница (https://github.com/hzwy23/asofdate-etl/wiki)

Национальный код-облако, адрес управления (https://gitee.com/hzwy23/asofdate4etl)

Адрес управления на GitHub (https://github.com/asofdate/batch-scheduler)

«Я не очень хорошо владею Java, поэтому прошу вас помочь мне с ошибками и нестандартными моментами в проекте. Буду очень признателен за вашу помощь».

Связанные проекты

Независимое развёртывание диспетчера задач (https://github.com/hzwy23/task-executor)

Веб-сайт инициирует задачу планирования, которая будет запускать пакетные задачи через интерфейс вызова диспетчера задач Feign.

В этом проекте используется Consul в качестве регистрационного центра. Если вам нужно использовать Eureka, вы можете изменить pom-файл и переключить регистрационный центр на Eureka.

Версия Java

JDK1.8

Если JDK — 1.9, добавьте следующее в файл pom.xml:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>

Основные функции проекта:

  • Главное меню (рисунок) (./doc/homepage.jpg)
  • Главная страница диспетчеризации пакетов (рисунок) (./doc/batchpage.jpg)
  • Основная страница управления системой (рисунок) (./doc/systemmanagepage.jpg)
  • Справочная главная страница (рисунок) (./doc/help.jpg)
  • История групп задач (рисунок) (./doc/grouphistory.jpg)

Краткое описание проекта batch-scheduler

Это корпоративная система пакетного планирования, основанная на зрелой платформе Spring и предоставляющая услуги планирования ETL. Часть управления правами использует проект hauth (https://github.com/asofdate/hauth-java).

Проект batch-schduler отличается от обычных систем планирования задач тем, что его цель — решать задачи планирования больших объёмов данных, которые зависят друг от друга, а не просто выполнять задачи по расписанию. Поэтому между batch-scheduler и обычными системами планирования задач есть некоторые различия.

Компоненты, используемые в проекте:

  1. spring-boot — отличная среда быстрой разработки из сообщества Spring;
  2. spring-security — управление аутентификацией пользователей;
  3. quartz — планировщик;
  4. swagger2-ui.

Описание основных функций

Основной рабочий процесс службы планирования

Пакет  Группа задач  Информация о задаче
Пакет содержит группу задач, группа задач содержит информацию о задаче.
В пакете несколько групп задач должны быть связаны зависимостями, иначе они будут выполняться параллельно.
Несколько задач в группе задач также должны быть связаны зависимостями, чтобы избежать параллельного выполнения.

ETL-система планирования имеет минимальную единицу планирования — задачу. Задача может быть следующих типов:

> Хранимые процедуры базы данных (реализованы, модульные тесты пройдены, успешно)
> Скрипт оболочки (реализован, модульный тест пройден, успешно)
> Сценарий пакетной обработки CMD (реализован, модульный тест пройден, успешно)
> Двоичный исполняемый файл (реализован, не протестирован)
> Исполняемый JAR-файл (реализован, не протестирован)

Задача находится над группой задач. Группа задач — это пакет задач. Одна и та же задача может входить в группу задач несколько раз. В группе задач можно настроить зависимости между задачами, и ETL-планировщик будет выполнять задачи в соответствии с этими зависимостями.

Группа задач находится над пакетом. Один и тот же пакет может содержать несколько групп задач. Планировщик ETL будет анализировать зависимости между группами задач и выполнять их в соответствии с зависимостями.

Когда пакет запускается, планировщик сначала анализирует зависимости между группами задач в пакете. На основе зависимостей он находит самую верхнюю группу задач. Если существует несколько верхних групп задач, они запускаются одновременно.

После запуска группы задач планировщик анализирует зависимости задач внутри группы и выполняет самую верхнюю задачу. После завершения одной задачи автоматически запускается следующая задача.

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

Этот процесс продолжается до тех пор, пока все группы задач не будут завершены. Когда все задачи выполнены, планировщик завершает работу.

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

Создание проекта

  1. Проект batch-scheduler использует управление зависимостями Maven, поэтому после клонирования проекта установите Maven. Maven автоматически загрузит зависимые пакеты.

  2. Структура таблицы базы данных находится в каталоге проекта db mysql_init.sql. Чтобы импортировать её в базу данных MySQL, выполните следующую команду:

mysql -uroot -p dbname < mysql_init.sql

Замените dbname на имя вашей базы данных.

Файл конфигурации параметров Spring-Boot находится в application.properties. Пожалуйста, настройте его в соответствии со спецификациями Spring.

Порт по умолчанию для запуска — 8023.

После запуска проекта введите в браузере следующий URL: http://localhost:8023

Имя пользователя для входа: admin

Пароль: hzwy23

Имя пользователя: demo

Пароль: 123456

Чтобы скомпилировать проект, убедитесь, что у вас есть доступ к репозиторию Maven.

mvn clean package -DskipTests=true

Способы общения

Электронная почта: hzwy23@163.com

QQ-группа: 118183812

История изменений:

2019-02-28 Добавлен компонент Spring Cloud, отделена функция выполнения диспетчера, после отделения функции выполнения диспетчера от диспетчера выполнение диспетчера не зависит от веб-развёртывания, подходит для развёртывания Docker.

2018-12-28 Используется асинхронный механизм Spring (@Async) для реализации мониторинга состояния и выполнения задач.

2018-12-27 Версия Spring-Boot обновлена до 2.1.1, зависимость spring-batch удалена.

2017-11-02 Удалены sun.misc.BASE64Encoder и sun.misc.BASE64Decoder в проекте, заменены на Apache Commons Codec.

2017-09-12 Порт по умолчанию изменён на 8023, HTTPS отключён, используется протокол HTTP. Если требуется включить HTTPS, измените конфигурацию.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Это корпоративная система ETL-планирования, которая реализует ETL-сервисы на основе зрелой платформы Spring. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-asofdate-etl.git
git@api.gitlife.ru:oschina-mirror/mirrors-asofdate-etl.git
oschina-mirror
mirrors-asofdate-etl
mirrors-asofdate-etl
master