Притворись сервером MySQL
Для проекта мы работаем с несколькими внешними партнерами. Для проекта нам нужен доступ к их базе данных MySQL. Проблема в том, что они не могут этого сделать. Их база данных хранится в управляемой среде, где у них не так много возможностей для конфигурации. И они не хотят давать нам доступ ко всем их данным. Таким образом, решение, которое они придумали, - объединенный механизм хранения.
Теперь у нас есть одна таблица для каждой таблицы их базы данных. Проблема в том, что объем данных, которые мы получаем, огромен и в будущем даже увеличится. Это означает, что в нашей базе данных выполняется много вставок. Для нас оптимальным решением было бы перехватить весь входящий трафик MySQL, обработать его и затем сохранить его навалом. Мы также подумали об использовании чего-то вроде redis для хранения данных.
Кроме того, мы планируем получить больше данных от разных партнеров. Они могут предоставить нам данные по-разному. Таким образом, использование redis позволит нам хранить все наши данные в одном месте.
Копирование данных в redis после их сохранения в базе данных mysql не вариант. Мы просто не можем обработать столько вставок, и нам нужны данные как можно быстрее.
TL; DR есть способ притвориться сервером MySQL, чтобы мы могли напрямую обрабатывать данные, полученные через механизм федеративного хранения?
Мы также подумали об использовании двигателя с черной дырой в сочетании с бинарной регистрацией на нашей стороне. Таким образом, входящие данные будут записываться только в двоичный журнал и не будут храниться в базе данных. Но тогда производительность все равно будет ограничена дисковым вводом / выводом.