Лучший способ ускорить доступ к данным в двух хранилищах данных?

9

Я начинаю проект бизнес-аналитики, который потребует абстрагирования доступа к двум существующим хранилищам данных. Мне нужно спроектировать архитектуру приложения, чтобы позволить бизнес-аналитикам самообслуживания объединять данные и обеспечивать единое представление двух существующих хранилищ. Я придумал что-то вроде этого:

введите описание изображения здесь

Я борюсь с частью виртуализации / кэширования и задаюсь вопросом, существуют ли какие-либо шаблоны корпоративного дизайна для решения моей проблемы. Будет ли архитектура, подобная этой, абстрагировать звездные схемы в хранилищах данных? Я смотрю на такие продукты, как Red Hat JBoss Data Virtualization и Red Hat JBoss Data Grid (среди прочих).

В настоящее время мы не используем Hibernate, и я понимаю, что сетки данных являются хранилищами значений ключей или хранилищ объектов и поэтому непригодны для кэширования реляционной модели. Я должен также упомянуть, что мы стремимся использовать продукты вендоров для части панели самообслуживания, но мы можем закончить тем, что выполним какую-то специальную сборку в этой области, если вендоры не смогут предложить нам все, что мы хотим.

Марк Эллисон
источник
2
Только что нашел эту книгу, которая может быть полезна для меня amazon.com/Data-Virtualization-Business-Intelligence-Systems/dp/…
Марк Эллисон
2
Я не уверен, что вы предоставили достаточно информации о своем проекте, чтобы дать совет по архитектуре.
Владислав Раструсный
Почему реляционные данные нельзя кэшировать в хранилище значений ключей как {key: pk, value: the_rest_of_the_row}? Возможно, вы также захотите кэшировать метаданные таблиц.
9000
2
В чем проблема с классическим подходом?
NoChance

Ответы:

1

Здесь нет большого количества подробностей о том, чего вы пытаетесь достичь, но из того, что вы описали, похоже, что вы могли бы сделать с витриной данных, чтобы абстрагироваться от основных репозиториев и предоставлять минимальное подмножество данных для обслуживать приложение.

Даже если бы вы могли разработать достойный прикладной уровень, вы, вероятно, столкнулись бы с проблемами производительности из-за нагрузки на одну (или обе) базы данных репозитория. Преимущество подхода mart заключается в том, что база данных, с которой взаимодействует приложение, обладает высокой производительностью. Обновления происходят в базах данных хранилища за кулисами и проталкиваются на основе, которую вы считаете нужным.

Дополнительное преимущество заключается в том, что на уровне приложений у вас есть только один поставщик БД.

Робби Ди
источник