OLTP-приложение для чтения данных Проектирование хранилища данных

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

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

У меня такой вопрос: считается ли плохой дизайн транзакционной системы для доступа к данным, хранящимся в хранилище данных? Очевидно, что основной целью нашего хранилища является создание отчетов, что заставляет меня задаться вопросом, следует ли нам разрешать другим системам, не связанным с отчетностью, считывать данные. Мои инстинкты не позволяют приложениям читать и отображать данные, есть ли веские причины для их прослушивания?!

2 ответа

Решение

Нет ничего плохого в том, что ваши OLTP-системы имеют доступ к данным DW, и, по мере развития систем, вы увидите, что грань между транзакционными и информационными системами размыта.

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

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

Еще одна последняя вещь, попытайтесь выяснить, почему вы не решаетесь делиться данными между этими базами данных. Это то, на что вы можете положить руку, или это действительно потому, что наша отрасль научила вас думать, что они должны быть отдельными? Помните, что, в конце концов, наша задача - не создавать хранилища данных и системы бизнес-аналитики; они должны решать деловые проблемы надежными, прагматичными и экономически эффективными способами.

Нет ничего принципиально неправильного в том, чтобы сделать хранилище хабом для потребителей данных приложений, а также потребителей аналитических данных. Вот некоторые моменты, чтобы подумать, хотя.

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

Убедитесь, что ваш склад хорошо нормализован (имеется в виду, по крайней мере, Бойс-Кодд / 5-я нормальная форма или что-то близкое к ней). Это хороший совет для любого склада, но, возможно, особенно, если вам нужно поддерживать неаналитические запросы.

Ваши приложения должны обновить склад? Если это так, то вам нужно рассмотреть, как это интегрируется с остальной частью процесса ETL.

Подумайте, стоит ли предоставить приложению собственную витрину данных. Это может быть самым безопасным вариантом для начала.

Другие вопросы по тегам