Отправка HTTP-запросов из MySQL
В данный момент работаю над дипломной работой, цель которой построить и сравнить различные способы построения CDC (change data capture). Один из методов, которые я хочу попробовать, использование триггеров.
Задумка следующая:
- Имеется таблица в OLTP БД (например, MySQL), в которой относительно не часто происходят изменения (вставка, обновление, удаление);
- Имеется аналогичная таблица в, например, OLAP БД (например, ClickHouse);
- Имеется Apache Airflow, в котором создан DAG, пишущий принимаемые значения в ClickHouse.
Я бы хотел узнать, есть ли возможность написать такой триггер в MySQL для этой таблицы таким образом, чтобы при ивенте отправлялся HTTP POST запрос в Apache Airflow с типом ивента и значениями, которые были изменены/записаны/удалены из таблицы, чтобы Python/SQLOperator записывал данные в ClickHouse?
В моём представлении это выглядит примерно таким образом:
CREATE TRIGGER http_trigger
AFTER UPDATE ON users
FOR EACH ROW
BEGIN
--Отправка запроса
DECLARE response_body TEXT;
SELECT http_request('https://airflow/api/dags/update_users_table', 'POST', CONCAT('event_type=', event_type, 'user_id=', NEW.user_id, ...)) INTO response_body;
-- Обработка ответа
...
END;
Поиск информации дал понять, что это возможно лишь скомпилировав user defined function на C, но, боюсь, мои знания C (а точнее, их отсутствие) сделают процесс мучительным и затянутым.
Буду рад ответам и/или советам!