Платформа данных, основанная на Kettle, обеспечивает гибкое выполнение различных сложных требований за счет гибкости Kettle и богатого экосистемного окружения компонентов. Эта платформа может использоваться как простой распределенный менеджер задач Kettle, а также как гибкая платформа управления данными. Объединение этих двух функциональностей представляет собой идеальное сочетание.
Задачи, созданные в этой платформе, принимают конечную форму задач Kettle. В случае специфических требований можно прямо в Kettle вносить изменения для удовлетворения этих потребностей. Гибкость является основой долгосрочного использования.
Другие нестандартные задачи могут быть спроектированы непосредственно в Kettle и затем управляемы и координированы внутри данной платформы.
Платформа достаточно гибка, чтобы объединять различные внешние решения. Хотя она уже очень мощна сама по себе, её уникальная способность к интеграции делает её идеальной для управления всеми фоновыми задачами.Kettle как один из самых лучших открытых ETL-инструментов широко используется. Обычное использование заключается в работе с клиентским интерфейсом для управления, но проблема возникает при переходе в производственную среду, где требуется управление сотнями или даже тысячами задач. При этом использование клиентского интерфейса становится крайне затруднительным. Я знаю несколько решений, таких как использование командной строки, что делает работу чрезвычайно сложной и трудной для обслуживания. Также есть решение создания веб-интерфейсов управления, однако встроенный веб-интерфейс Kettle имеет крайне примитивный дизайн и сложно использовать, поэтому он практически невозможен для применения в производственной среде. Других эффективных средств управления множеством задач я не заметил.На основе вышеописанной ситуации и моего многолетнего опыта работы с кастомизацией и использованием Kettle, я разработал Data Master. На базе Kettle наиболее часто используемые сценарии были перемещены в веб-интерфейс, что позволяет операторам и обычным пользователям реализовывать общие требования. Моя цель — сделать так, чтобы 70% запросов могли быть выполнены через веб-интерфейс, а остальные специфические и редкие запросы выполнялись напрямую в Kettle, после чего они координируются и управляются в рамках данной платформы.
Для получения более подробной информации о преимуществах данной платформы обратитесь к разделу "Характеристики платформы".
https://trimdata.cn:2001/sjds/#/login sys/sys_123## Характеристики платформы
Поддержка одновременного расписывания нескольких репозиториев задач в одном расписании, а также выполнение одной задачи репозитория на нескольких узлах расписания. Также поддерживается управление несколькими узлами расписания одной системой управления.
Добавлена возможность запуска задач при старте, поддержка cron-планировщика, что делает настройку планирования более гибкой.
Внутри платформы поддерживаются создание данных потока задач (временно отменено, так как дизайн слишком сложен и не очень полезен; в настоящее время есть задачи синхронизации данных), KM задач, JavaScript задач, shell задач, SQL задач.
Данная платформа автоматически обнаруживает информацию об ошибках выполнения задач, что облегчает отслеживание состояния работы платформы. При большом количестве задач сложно проверять состояние каждой задачи по отдельности.
Платформа предоставляет базовый журнал выполнения, который служит основанием для обратной проверки состояния выполнения задач, что облегчает выявление проблем после выполнения.
Платформа предлагает заранее спроектированный функционал журналирования данных потока, близкий к уровню бизнес-логики, позволяющий пользователям использовать его по мере необходимости.Платформа предлагает управление преобразованиями, где текущее управление преобразованиями позволяет просматривать, удалять и просматривать диаграммы преобразований. В будущем будут добавлены возможности импорта в зависимости от потребностей.
Управление базами данных представляет собой управление информацией о базах данных, конфигурируемых в Kettle. Если полностью использовать платформу "Мир данных", то все базы данных здесь будут связаны с использованием носителей данных платформы "Мир данных" через JNDI. Конфигурация одного места применима ко всей платформе. Если базы данных конфигурируются напрямую в Kettle, здесь можно расшифровывать пароли.
Эта платформа считывает вашу таблицу v_job
в базе данных, которая представляет собой представление r_job
. Вы можете скрыть некоторые задачи путём изменения этого представления.
Таблица r_job
является системной таблицей репозитория Kettle. Любые задачи, которые вы создаёте и связываете с этим репозиторием, будут записываться в эту таблицу. Поэтому вам достаточно просто подключиться к тому же репозиторию, как это сделано в конфигурациях платформы, и создать задачи. Поскольку все задачи хранятся в одной и той же таблице, вам не потребуется выполнять какие-либо дополнительные действия, чтобы видеть свои задачи и управлять ими через платформу.
Если вы хотите добавить внешнюю задачу в платформу, вам достаточно использовать инструмент Spoon Kettle, подключиться к тому же репозиторию и выполнить операцию импорта. Это действие знакомо специалистам по данным.### Просмотр преобразования
По этому вопросу я всегда был в замешательстве — почему прямым образом запрашивать выполнение преобразования, когда задание и преобразование выполняют свои обязанности. Я считаю, что для выполнения преобразования следует обернуть его в задание, независимо от того, есть ли какие-либо требования других процессов.
В текущей новой версии уже реализовано представление преобразований, поддерживающее прямое обертывание преобразования в задание для выполнения в расписании.
Данная система полностью параметризована и использует организацию параметров, аналогичную передовым фронтенд-фреймворкам, что обеспечивает достаточную гибкость и высокую степень настраиваемости.
Технологический выбор: использование самых популярных и новых версий технологий для фронтенда и бэкенда: Spring Boot 2, Beetl SQL, FastJSON, Druid, Vue 3, VXE Table, Element Plus, различных баз данных.
3.Поддержка множества источников данных: гибкая конфигурация источников данных, одна конфигурация может использоваться в нескольких местах, очень просто менять источник данных в коде; также можно использовать этот источник данных в Kettle. В этом проекте реализован инструмент Db, который упрощает выполнение обычных операций с базами данных, обеспечивает легкость перехода между различными базами данных, что значительно повышает опыт разработки.
Простота запуска: минимальное количество зависимостей проекта, после многочисленных обсуждений было решено, что основные зависимости проекта — Redis (необязательно) и база данных (уже поддерживаются MySQL и Oracle). Это делает проект более простым и позволяет быстро и легко развернуть его.
Полная параметризация: полная параметризация системы, используя метод организации параметров, аналогичный передовым фреймворкам, система становится достаточно гибкой и легко настраиваемой, предоставляется полная документация параметров.
Единый интерфейс: все интерфейсы платформы поддерживают работу с ПК, мобильными приложениями и третьими сторонами, внешнее подключение и совместное использование данных не требуют написания кода, они могут быть легко настроены.Упаковка логов: использование фреймворка логирования Logback, интеграция преобразования фреймворков, позволяющая совмещать с другими системами логирования, таким образом достигается единое представление логов. Также был создан собственный логгер, который позволяет записывать все системные ошибочные логи в базу данных, что облегчает последующее обслуживание и прогнозирование. Кроме того, была создана упрощённая упаковка логов Logback, которая позволяет легко использовать логи во время разработки, не влияя на именование классов и информацию о стеке в логах.
8. Объектно-ориентированность: подход к проектированию систем, основанный на объектно-ориентированном программировании, где всё представлено как объект. Планируется поддержка различных типов баз данных, файлов, FTP и других форматов данных, поддерживающих JDBC.
9. Единая служба словарей: единую службу словарей, которая собирает все словари всей платформы и предоставляет единый сервис, который позволяет легко интегрировать данные со всех мест для использования службы словарей. Для получения подробностей обратитесь к разделу управления словарями в руководстве разработчика.
10. Файловый сервис: унифицированный файловый сервис, обеспечивающий единое представление файловых систем на всех платформах.Поддерживает загрузку файлов в локальную файловую систему, FTP, HDFS, базы данных и другие носители данных. Позволяет четко просматривать и скачивать все загруженные файлы.11. Унифицированная конфигурация: минималистичная реализация распределённого управления конфигурациями с поддержкой наследования конфигураций и отсутствием зависимостей.
Унифицированное верификационно-преобразующее решение: система обеспечивает единое верификационно-преобразующее решение, позволяющее проверять и преобразовывать параметры каждого запроса согласно конфигурациям.
Детализированные системные журналы: записи журнала операций системы точно отражают информацию, включая обычные пути запросов, IP-адреса, действия пользователя и т.д. Внутри системы параметры кода журналов автоматически переводятся на русский язык, что позволяет записывать входящие параметры, результаты выполнения, затраты времени и т.д., что способствует быстрому выявлению проблем производительности и точной оптимизации.
Нестандартная система прав доступа: простая и мощная система контроля прав доступа, где роли могут иметь подроли, а родительская роль по умолчанию включает права своих подролей. Возможность предоставления прав доступа для неавторизованных пользователей, авторизованных пользователей, а также поддержка уровня кнопочных действий для управления правами доступа.15. Миникод: система уже реализует универсальные CRUD-операции и предлагает универсальные шаблоны данных для загрузки, массового импорта данных, экспорта данных, редактирования списков, копирования записей и другие уникальные возможности. В будущем можно будет самостоятельно определять общие методы для различных систем, большинство требований можно будет реализовать через конфигурацию без необходимости писать код. Конфигурации кэшируются в памяти, что не влияет на производительность; изменения конфигураций применяются мгновенно, а также это позволяет очень гибко удовлетворять любые специфические требования, что отличает её от большинства существующих решений миникода.16. Вставка и обновление: система поддерживает удаление дубликатов по бизнес-полю при создании новых записей и массовой загрузке данных. После проверки наличия дубликата система автоматически выбирает вставку или обновление.
Поддержка международизации: интеграция поддержки международизации, которая позволяет легко разрабатывать международные системы.
Расписание задач: система использует xxl-job как механизм управления расписанием задач, что позволяет удобно разрабатывать и управлять расписанием задач.
Интеллектуальный обмен данными: система предлагает интеллектуальное решение для обмена данными, которое позволяет легко настроить ближнее реальное время синхронизацию данных между локальной файловой системой, FTP, Kafka и другими носителями данных, что позволяет просто и быстро выполнять эффективный обмен данными между сетями и удовлетворять сложные требования.
Генератор POJO: система имеет встроенное решение для создания POJO на основе шаблонов Beetl, которое может быть использовано в среде IDEA путем импорта doc/idea-run/pojo.run.xml, после чего можно модифицировать файл конфигурации doc/pojo.json для генерации классов. ## Связанные проекты1. Финальная часть проекта
Основной Java проект## Связанные документы
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )