Отправка HTTP-запросов из MySQL

В данный момент работаю над дипломной работой, цель которой построить и сравнить различные способы построения CDC (change data capture). Один из методов, которые я хочу попробовать, использование триггеров.

Задумка следующая:

  1. Имеется таблица в OLTP БД (например, MySQL), в которой относительно не часто происходят изменения (вставка, обновление, удаление);
  2. Имеется аналогичная таблица в, например, OLAP БД (например, ClickHouse);
  3. Имеется 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 (а точнее, их отсутствие) сделают процесс мучительным и затянутым.

Буду рад ответам и/или советам!


Ответы (0 шт):