У меня есть база данных MySQL, где я храню следующий BLOB (который содержит объект JSON) и ID (для этого объекта JSON). JSON-объект содержит много различной информации. Скажем, «город: Лос-Анджелес» и «штат: Калифорния».
На данный момент существует около 500 тыс. Таких записей, но они растут. И каждый объект JSON довольно большой.
Моя цель - выполнять поиск (в реальном времени) в базе данных MySQL.
Скажем, я хочу найти все объекты JSON, которые имеют "штат" в "Калифорния" и "город" в "Сан-Франциско".
Я хочу использовать Hadoop для этой задачи.
Моя идея состоит в том, что будет «задание», которое будет принимать, скажем, 100 записей (строк) из MySQL, проверять их в соответствии с заданными критериями поиска, возвращать те (идентификаторы), которые соответствуют требованиям.
Плюсы / минусы? Я понимаю, что можно подумать, что я должен использовать для этого простую мощь SQL, но дело в том, что структура объектов JSON довольно «тяжелая», и если я скажу ее как схемы SQL, будет как минимум 3-5 объединений таблиц, что (Я действительно пытался) создает головную боль, и создание всех правильных индексов съедает оперативную память быстрее, чем я могу себе представить. ;-) И даже в этом случае каждый SQL-запрос должен быть проанализирован на предмет использования индексов, иначе при полном сканировании это буквально боль. И с такой структурой у нас единственный путь «вверх» - это просто вертикальное масштабирование. Но я не уверен, что это лучший вариант для меня, так как я вижу, как будут расти объекты JSON (структура данных), и я вижу, что их число также будет расти. : -)
1010 * * Помощь? Может ли кто-нибудь указать мне простые примеры того, как это можно сделать? Имеет ли это смысл вообще? Я что-то упустил?
Спасибо.