Мне трудно управлять хранилищем и доступом к большому набору данных в приложении Ruby on Rails.Вот мое приложение в двух словах: я выполняю алгоритм Дейкстры в части, касающейся дорожной сети, а затем отображаю узлы, которые он посещает, с помощью API карт Google.Я использую открытый набор данных дорожной сети США для построения графика, повторяя два txt-файла, указанных в ссылке, но у меня возникают проблемы с хранением этих данных в моем приложении.
У меня сложилось впечатление, что большой набор данных, подобный этому, не является объектом ActiveRecord - мне не нужно изменять содержимое этих данных, а иметь возможность обращаться к ним и локально кэшировать их в хэше, чтобы выполнять над ними методы ruby.Я попробовал несколько вещей, но у меня возникли проблемы.
Я подумал, что было бы наиболее разумно проанализировать текстовые файлы и сохранить график в формате yml.Затем я смог бы загрузить график в БД в качестве начальных данных и захватить график, используя Node.all или что-то в этом роде.К сожалению, файл yml становится слишком большим для рельсов для обработки.Запуск Rake заставляет систему работать на 100% бесконечности ...
Далее я решил, что, поскольку мне не нужно изменять данные, я могу просто создать графиккаждый раз, когда приложение загружается как начало его «инициализации».Но я точно не знаю, куда поместить этот код, мне нужно запустить несколько методов или хотя бы блок данных.А затем сохраните его в некоторой глобальной переменной / переменной сессии, к которой я могу получить доступ во всех контроллерах / методах.Я не хочу передавать этот большой набор данных, просто иметь к нему доступ из любого места.
Это способ, которым я сейчас занимаюсь, но это просто неприемлемо.Я анализирую текстовые файлы, которые создают график для действия контроллера, и надеюсь, что он начинает вычислять до истечения времени ожидания сервера.
В идеале, я хотел бы сохранить график в базе данных, котораяЯ мог бы захватить все содержимое, чтобы использовать его локально.Или, по крайней мере, требуется только один раз проанализировать данные при загрузке приложения, и тогда я смогу получить доступ к ним из разных просмотров страниц и т. Д. Я чувствую, что это будет наиболее эффективным, но я сталкиваюсь с препятствиями намомент.
Есть идеи?