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

OSCHINA-MIRROR/WeiYe-Jing-datax-web

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

GitHub вкладчики GitHub проблемы GitHub лицензия Объем кода проекта GitHub

DataX-Web

Количество звезд со временем

DataX Web — это распределённый инструмент синхронизации данных, разработанный поверх DataX. Он предоставляет простой и удобный интерфейс для пользователя, снижает затраты времени на обучение работе с DataX и ускоряет процесс конфигурирования задач. Пользователи могут создавать задачи синхронизации данных через выбор источников данных на странице. Поддерживаемые источники данных включают RDBMS, Hive, HBase, ClickHouse, MongoDB и другие. Для RDBMS поддерживаются пакетное создание задач синхронизации данных, мониторинг прогресса и логов в реальном времени, а также возможность прекращения выполнения задачи. Интеграция и вторичная разработка xxl-job позволяют осуществлять инкрементальное синхронизацию данных по времени или по увеличивающемуся первичному ключу.Поддержка "выполняющего устройства" включает возможность кластерной установки, выбор стратегий маршрутизации между несколькими узлами, контроль за простоями, повторные попытки при ошибках, уведомления об ошибках, зависимость задач, мониторинг CPU, памяти и нагрузки устройств выполнения и многое другое. В будущем планируется добавление поддержки большего количества источников данных, пользовательских функций преобразования данных (UDF), синхронизации структур таблиц, отслеживания происхождения данных и других сложных бизнес-сценариев.# Схема архитектуры:

Технические требования

  • Язык программирования: Java 8 (рекомендованная версия JDK 1.8.201 и выше)
    Python 2.7 (поддержка Python 3 требует замены трёх файлов python в каталоге datax/bin; заменённые файлы находятся в doc/datax-web/datax-python3)

  • Операционная система: macOS, Windows, Linux

  • База данных: MySQL 5.7# Возможности

  • 1. Создание DataX JSON через веб;

  • 2. Сохранение DataX JSON в базе данных для удобства миграции и управления задачами;

  • 3. Временная проверка логов выгрузки через веб, аналогично консоли вывода Jenkins;

  • 4. Отображение записей выполнения DataX, возможность остановки задач DataX с помощью страницы;

  • 5. Поддержка расписаний для задач DataX, возможность динамического изменения состояния задач, запуска/остановки задач, а также прекращения выполнения текущих задач с немедленным применением;

  • 6. Распределение используется централизованной моделью, поддерживающей развертывание в кластере;

  • 7. Дистрибутивное выполнение задач, "выполняющие устройства" поддерживают развертывание в кластере;

  • 8. Выполняющие устройства автоматически регистрируются периодически, центральный распределитель автоматически обнаруживает зарегистрированные задачи и запускает их;

  • 9. Стратегия маршрутизации: при развертывании кластера выполняющих устройств предоставляется множество стратегий маршрутизации, включая: первый, последний, круговой, случайный, согласованный хэш, наименее часто используемый, недавно наименее активно использованный, переключение при ошибке, переключение при нагрузке и т. д.;

  • 10.Стратегия обработки блокировки: стратегия обработки при слишком частых запросах, которые выполнять устройства не могут обработать вовремя, включает: последовательность на одном устройстве (по умолчанию), отклонение следующего запроса, замену предыдущего запроса;

      1. Управление временем выполнения задач: поддерживается настройка времени завершения задач, если задача превышает время выполнения, она будет автоматически прекращена;
      1. Перезапуск задач при неудаче: поддерживается настройка количества попыток повторного запуска задач при неудаче, если задача завершилась неудачей, она будет автоматически повторно запущена согласно установленному количеству попыток;
      1. Предупреждение при неудаче задачи: по умолчанию предоставляется предупреждение по электронной почте при неудаче задачи, а также предусмотрены расширяемые интерфейсы для легкого добавления других методов предупреждения, таких как SMS, DingTalk и т. д.;
      1. Управление пользователями: поддерживается управление пользователями системы онлайн, существуют роли администратора и обычного пользователя;
      1. Зависимость задач: поддерживается настройка зависимостей между задачами, когда родительская задача завершается успешно, она активирует выполнение зависимой задачи, несколько зависимых задач разделены запятой;
    • 16.Отчеты выполнения: поддерживается просмотр данных выполнения и отчетов распределения, такие как график распределения дат распределения, график распределения успешных распределений и т. д.;
      1. Настройка ключевых полей для увеличивающихся данных, создание расписаний задач для автоматической загрузки диапазона данных каждого выполнения, перезапуск задач при неудаче для обеспечения безопасности данных;
      1. Настройка параметров JVM для запуска DataX через страницу;
      1. После успешной настройки источника данных добавляется функция тестирования вручную;
      1. Поддержка шаблонов для часто используемых задач после создания JSON, выбор связывания шаблона для создания задачи;
      1. Добавление поддержки Hive источника данных через JDBC, возможность выбора источника данных на странице создания JSON для генерации информации о столбцах и упрощения настроек;
      1. Приоритетное использование переменных окружения для получения директории файлов DataX, при развертывании в кластере нет необходимости указывать директории JSON и журналов;
      1. Указание Hive разделов с помощью динамических параметров конфигурации также позволяет реализовать динамическое включение данных при постепенной загрузке;
      1. Тип задач был расширен от исходной задачи DataX до Shell задач, Python задач, PowerShell задач;Добавлена поддержка источника данных HBase; JSON сборка может использовать hbaseConfig и column из источника данных HBase;
  • 26. Добавлена поддержка источника данных MongoDB; пользователи могут выбирать collectionName для завершения JSON сборки;

  • 27. Добавлен мониторинг процессора CPU, памяти и нагрузки выполнителя;

  • 28. Добавлен пример конфигурации JSON для 24 типов плагинов DataX;

  • 29. Общие поля (время создания, создатель, время последнего изменения, исправитель) автоматически заполняются при вставке или обновлении;

  • 30. Валидация токенов для Swagger API;

  • 31. К задачам добавлено ограничение времени выполнения; задачи, превышающие это ограничение, уничтожаются, что позволяет избежать зависаний DataX из-за сетевых проблем с использованием стратегий повторной попытки;

  • 32. Добавлен модуль управления проектами, позволяющий организовать управление задачами по категориям;

  • 33. Для RDBMS источников данных добавлена возможность массового создания задач; выбирая источник данных и таблицу, можно массово генерировать задачи синхронизации DataX по шаблону;

  • 34. Добавлена поддержка источника данных ClickHouse в JSON сборке;

  • 35. Графическое представление страницы мониторинга процессора CPU, памяти и нагрузки выполнителя;

  • 36. При постепенной выгрузке данных из RDBMS источников данных добавлена поддержка автоинкрементного ключа и оптимизация параметров конфигурации страницы;

  • 37.Изменено соединение с источником данных MongoDB, перестроен модуль JSON сборки для источника данных HBase;

    1. Добавлена возможность остановки для задач типа скриптов;
    1. Добавлена возможность postSql в JSON сборке RDBMS, а также поддержка нескольких preSql и postSql;
    1. Изменены алгоритмы шифрования информации источников данных и оптимизирован код;
    1. На странице логов добавлены статистические данные о выполнении задач DataX. # Быстрый старт:##### Пожалуйста, нажмите: Быстрый старт
Linux: Одноклик развертывание

Введение:

1. Настройка исполнителя (используется открытое программное обеспечение xxl-job)

    1. "Список центров управления в сети": справа отображается список активных центров управления. После выполнения задачи будет отправлено уведомление о результате выполнения в режиме failover обратно в центр управления, чтобы избежать однопунктовых рисков;
    1. "Список исполнителей": отображает список активных исполнителей. Можно использовать "Активные машины", чтобы просмотреть соответствующие машины группы исполнителей;

Описание свойств исполнителя

```

  1. AppName: (соответствует datax.job.executor.appname в application.yml проекта datax-executor) Уникальное имя каждого исполнителя, которое используется для автоматической регистрации исполнителей с периодичностью. Это позволяет автоматически находить зарегистрированные исполнители для использования при распределении задач;
  2. Название: название исполнителя, которое повышает читаемость исполнителя благодаря более удобному имени;
  3. Сортировка: порядок исполнителей, который используется системой для выбора доступных исполнителей при создании новых задач;
  4. Метод регистрации: способ получения адреса исполнителя центром управления; Автоматическая регистрация: исполнитель регистрируется автоматически, а центр управления использует внутренний реестр для динамического обнаружения адресов машин исполнителей; Ручная регистрация: адреса исполнителей вводятся вручную, несколько адресов через запятую, для использования центром управления;
  5. Адрес машины: действует при методе регистрации "Ручная регистрация". Поддерживает ручное управление адресами исполнителей;

![](https://datax-web.oss-cn-hangzhou.aliyuncs.com/doc/add_datasource.png)

Используется в четвертой части

### 3. Создание шаблонов задач

![](https://datax-web.oss-cn-hangzhou.aliyuncs.com/doc/template_list.png)

Используется в четвертой части

### 4. Сбор JSON-скрипта

- 1. Шаг один, шаг два, выберите источник данных, созданный во втором шаге. JSON-конструктор поддерживает следующие источники данных: Hive, MySQL, Oracle, PostgreSQL, SQL Server, HBase, MongoDB, ClickHouse. Разработка JSON-конструктора для других источников данных находится в процессе, поэтому пока требуется ручной ввод.

![](https://datax-web.oss-cn-hangzhou.aliyuncs.com/doc/build.png)

- 2. Поле отображения

![](https://datax-web.oss-cn-hangzhou.aliyuncs.com/doc/mapping.png)

- 3. Нажмите "Создать", чтобы сгенерировать JSON. В этот момент вы можете выбрать копирование JSON и создание задачи, выбрав DataX задачу и вставив JSON в текстовое поле. Также можно нажать "Выбрать шаблон" для создания задачи напрямую.

### 5. Батч создание задач

![](https://datax-web.сss-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/doc/batch_build_r.png)
![](https://datax-web.сss-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/doc/batch_build_w.png)

### 6. Создание задач (связь шаблона для создания задач не рассматривается, подробнее см. 4. Создание JSON скрипта)

#### Поддерживает задачи DataX, Shell, Python и PowerShell

![](https://datax-web.сss-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/doc/datax.png)

![](https://datax-web.сss-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/doc/shell.png)- Стратегия блокировки: стратегия обработки при слишком частых запросах, когда исполнитель не успевает обрабатывать;
    - Последовательность на одном сервере: запросы распределяются в FIFO очередь и выполняются последовательно;
    - Отказ от дальнейших запросов: если исполнитель занят текущими задачами, новый запрос будет отклонён как неудачный;
    - Замена существующих задач: если исполнитель занят текущими задачами, новые задачи заменят текущие и будут выполнены;
- Для увеличенной новизны рекомендуется установить стратегию блокировки на отказ от дальнейших запросов или последовательность на одном сервере;
    - При выборе последовательности на одном сервере следует правильно настроить количество попыток повтора (количество попыток повтора * время выполнения одной попытки < период выполнения задачи), большое количество попыток может привести к дублированию данных, например, задача выполняется каждые 30 секунд, время выполнения одной попытки составляет 20 секунд, три попытки повтора, если задача провалилась, первый повтор будет выполнен между 1577755680 и 1577756680, следующий повтор начнётся до завершения первого, что может вызвать дублирование данных.- [Настройка параметров для увеличенной новизны](https://github.com/WeiYe-Jing/datax-web/blob/master/doc/datax-web/increment-desc.md)
- [Настройка параметров для разделения](https://github.com/WeiYe-Jing/datax-web/blob/master/doc/datax-web/partition-dynamic-param.md)

### 7. Список задач

![](https://datax-web.oss-cn-hangzhou.aliyuncs.com/doc/job.png)### 8. Вы можете просматривать логи в режиме реального времени и получать информацию о логах, а также завершать выполнение процесса DataX

![Состояние логов](https://datax-web.сss-cn-hangzhou.алиyunсс.com/doc/log_stat.png)
![Детали логов](https://datax-web.сss-cn-hangzhou.алиyunсс.com/img/log_detail.png)

### 9. Мониторинг ресурсов задач

![Мониторинг](https://datax-web.сss-cn-hangzhou.алиyunсс.com/img/monitor.png)

### 10. Администратор может создавать пользователей и редактировать информацию о пользователях

![Пользователи](https://datax-web.сss-cn-hangzhou.алиyunсс.com/doc/user.png)

# Интерфейс

[Адрес репозитория GitHub для фронтенда](https://github.com/WeiYe-Jing/datax-web-ui)

# Участники проекта

- water

Очень приятно стать Committer'ом проекта datax-web. От ручной настройки задач и конфигураций с помощью DataX до графического создания задач и управления ими через web-интерфейс — это значительно повысило эффективность работы с данными. Надеюсь, что этот проект станет незаменимым средством ETL...


- Alecor```
Очень приятно стать Committer'ом проекта datax-web. Цель этого проекта — освободить пользователей от необходимости ручного создания конфигураций DataX и предоставить возможность управления ими через веб-интерфейс. Желаю, чтобы datax-web мог помочь ещё большему количеству людей и обеспечивать простоту и удобство использования!
```- zhouhongfa

- liukunyuan

Большое спасибо за ваш вклад!

# Вклад

Приветствуем ваши вклады! Создайте Pull Request для исправления ошибок или откройте Issue для обсуждения новых возможностей или изменений.

Добро пожаловать в проект! Например, вы можете создать PR для исправления бага или открыть Issue для обсуждения новой возможности или изменения.

# Авторское право и лицензия

Лицензия MIT

Авторское право © 2020 WeiYe

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

> Приглашаем вас зарегистрироваться по адресу [здесь](https://github.com/WeiYe-Jing/datax-web/issues/93). Регистрация необходима для продвижения продукта и повышения мотивации развития сообщества.

# Версия 2.1.2

### Новые возможности1. Добавлен модуль управления проектами, который позволяет организовать управление задачами по категориям;
2. Для источников данных RDBMS добавлена возможность массового создания задач, выбрав источник данных и таблицы, которые будут использоваться для генерации задач синхронизации DataX;
3. Поддержка ClickHouse как источника данных в JSON-конструкторе;
4. Графическое представление мониторинга CPU, RAM и нагрузки для исполняющих агентов;
5. Дополнительно реализовано получение данных из источников RDBMS с использованием ключа первичного ключа и оптимизация параметров конфигурации;
6. Изменено соединение с MongoDB и переработана часть JSON-конструктора для HBase;
7. Добавлена возможность прекращения выполнения скриптовых задач;
8. Добавлены поля preSql и postSql в JSON-конструктор для RDBMS, поддерживаются несколько полей preSql и postSql;
9. Объединены модули datax-registry и datax-rpc;
10. Изменено шифрование информации источников данных и проведена оптимизация кода;
11. Поддержка более широкого набора форматов временных меток для временного синхронного обновления;
12. Добавлена статистика выполнения задач DataX на странице логов. ### Обновление:1. Добавлен выбор имени схемы в JSON-конфигурацию источников данных PostgreSQL, SQL Server и Oracle;
2. Улучшена согласованность названий полей в JSON-конфигурации DataX с ключевыми словами источника данных;
3. Оптимизация отображения кнопок на странице управления задачами;
4. В разделе управления логами добавлена информация о задачах;
5. Исправлена проблема с невозможностью кэширования данных в форме JSON-конфигурирования;
6. Добавлены параметры начала и конца в JSON-конфигурацию Hive.

### Примечание:
Не рекомендуется обновляться до версии 2.1.1, так как изменения метода шифрования информации источников данных могут привести к невозможности расшифровки ранее зашифрованных источников данных, что вызовет ошибки выполнения задач.

# Версия 2.1.1

### Новые возможности:1. Поддержка источников данных HBase, возможность получения `hbaseConfig` и колонок через JSON-конфигурацию;
2. Поддержка источников данных MongoDB, возможность создания JSON-конфигурации путём выбора `collectionName`;
3. Добавлена страница мониторинга CPU, памяти и нагрузки исполнителей;
4. Добавлены примеры JSON-конфигураций для 24 типов плагинов DataX;
5. Автоматическое заполнение общих полей (времени создания, создателя, времени последнего изменения, изменителя) при вставке или обновлении записей;
6. Добавлено проверочное требование для токена в Swagger API;
7. Добавлена возможность установки времени ожидания задачи, автоматического завершения процесса DataX при превышении этого времени, а также использования стратегий повторной попытки для решения проблемы зависания DataX из-за сетевых проблем.### Обновление:

1. Защита паролей и логинов источников данных за счет их шифрования;
2. Шифрование паролей и логинов в JSON-файле, дешифрование при выполнении задач DataX;
3. Улучшение дизайна меню страниц, обновление значков, оптимизация взаимодействия;
4. Исключение из логов ненужной информации, связанной с проектами, уменьшение размера файлов логов, оптимизация вывода больших файлов, улучшение отображения страниц;
5. Получение конфигурации пути логов из yml-файла.

### Исправления:

1. Исправлена ошибка запроса при просмотре большого лога задачи.

# Отправка кода
[Участие в развитии](https://github.com/WeiYe-Jing/datax-web/issues/190)


# Контакты

### Личный WeChat
![](https://datax-web.рн-cn-hangzhou.aliyuncs.com/doc/WechatIMG2.jpeg?x-oss-process=изображение/resize,w_230,h_230)

### Группа общения QQ
![](https://datax-web.рн-cn-hangzhou.aliyuncs.com/doc/qrcode3.jpeg?x-oss-process=изображение/resize,w_250,h_300)

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

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

Введение

DataX интегрирует визуализацию страницы. Можно одним нажатием создать задачу синхронизации данных, выбрав источник данных. Поддерживается пакетное создание задач синхронизации данных RDBMS. Интегрирована система планирования с открытым исходным кодом. Поддерживаются распределённая и инкрементная синхронизация данных, а также просмотр в реальном ... Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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