Разработан кастомный ETL-движок на Python для репликации данных из Apache Hive в ClickHouse. Применение Python обусловлено его простотой, поддержкой параллельной обработки и облачной интеграцией. Основу движка составляют библиотеки PySpark, argparse, airflow, pendulum и ipywidgets. Алгоритм использует Apache Airflow для планирования задач, Jupiterlab для разработки кода, и Apache Spark для распределенной обработки больших данных.
В движке предусмотрены шаблоны для создания DAG (Directed Acyclic Graph) в Airflow. Классы Python выполняют операции с таблицами в Hive и ClickHouse, файлами HDFS. Класс ManagerHelper управляет взаимодействием с базами данных, включая генерацию SQL-запросов для создания таблиц. Это помогает при работе как с партиционными так и непартиционными таблицами.
Интерфейс пользователя в Jupiterlab позволяет настраивать параметры ETL-процесса, включая выбор полной перезаливки, расписание и названия таблиц. Интерактивность интерфейса обеспечивается библиотекой ipywidgets. Пользователь может инициировать создание DAG или получение информации о таблице через интерактивные элементы.
Цель проекта – оптимизировать перенос данных, повысить их качество и автоматизировать загрузку. Использование ClickHouse с его возможностями обработки аналитических запросов в реальном времени, в сочетании с кастомным ETL-движком, позволяет бизнесу оперативно реагировать на изменения и принимать решения на основе актуальной аналитики.
Изображение носит иллюстративный характер
В движке предусмотрены шаблоны для создания DAG (Directed Acyclic Graph) в Airflow. Классы Python выполняют операции с таблицами в Hive и ClickHouse, файлами HDFS. Класс ManagerHelper управляет взаимодействием с базами данных, включая генерацию SQL-запросов для создания таблиц. Это помогает при работе как с партиционными так и непартиционными таблицами.
Интерфейс пользователя в Jupiterlab позволяет настраивать параметры ETL-процесса, включая выбор полной перезаливки, расписание и названия таблиц. Интерактивность интерфейса обеспечивается библиотекой ipywidgets. Пользователь может инициировать создание DAG или получение информации о таблице через интерактивные элементы.
Цель проекта – оптимизировать перенос данных, повысить их качество и автоматизировать загрузку. Использование ClickHouse с его возможностями обработки аналитических запросов в реальном времени, в сочетании с кастомным ETL-движком, позволяет бизнесу оперативно реагировать на изменения и принимать решения на основе актуальной аналитики.