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