Этот вопрос действительно слишком широкий, но я постараюсь описать некоторые из имеющихся у вас вариантов.
Извлечь
Вариант 1. Создание хранимых процедур, которыежить либо в самой исходной БД, либо в вашей отчетной БД (используя перекрестный вызов базы данных (очевидно, это имеет свои недостатки, т.е. базы данных становятся связанными вместе)), которые считываются непосредственно из исходных таблиц.Эти процедуры должны быть в состоянии работать как в полном (все данные), так и в инкрементном (только последний) режиме.Возможно, вы захотите сделать некоторое перекрытие и для своей инкрементальной нагрузки.
Вариант 2: Вы устанавливаете сбор данных изменения (здесь возникает проблема с тем, чтобы убедиться, что вы не заполняете свои журналы, но это дает вам более тонкий уровеньподробно) или отслеживание изменений (получите только последнюю версию записи, а не изменения) в исходной базе данных и прочитайте из полученных таблиц изменений, чтобы получить измененные записи из исходной базы данных.
Вариант 3: Создатьреплика только для чтения вашей исходной базы данных и чтение из этой реплики.
Преобразование
Вариант 1. Мой личный выбор - использовать SSIS для процесса извлечения.Он создан для таких вещей.Особенно, когда вы переходите между серверами, и вы также сможете получать данные от остальной части организации, такие как кадровые записи и тому подобное.Вы должны установить структуру, в которой у вас есть проект, и каждый проект состоит из списка пакетов служб SSIS, которые должны выполняться в полном или инкрементном режиме.Вы можете либо загрузить напрямую в исходную базу данных, либо создать посредническую базу данных, чтобы подготовить любые сложные данные для дальнейшей обработки.Возможно, вам придется сложить вещи после того, как вы их взяли, чтобы выполнить некоторые из более сложных вещей.
Вариант 2: вы пишете хранимые процедуры, которые читают из источника и отправляют прямо в пункт назначения.Это можно сочетать с вариантом 1 в разделе «Извлечение».Вам необходимо убедиться, что они могут объединяться, поэтому вы можете использовать отдельные операторы INSERT и UPDATE или использовать MERGE.
Load
Вариант 1: отложите данныеиз процесса ETL в схему типа «звезда» или «снежинка» (звезда будет требовать меньше соединений, и в SSAS встроены функции оптимизации для схем типа «звезда»).Затем вы можете использовать это для перемещения ваших данных в SSAS либо в многомерную, либо в табличную модель.
Вариант 2: вы записываете свои данные в форму, которую требуют ваши отчеты, в виде отчета.Очевидно, это может привести к сумасшедшему количеству наборов данных, но у него есть свои победы, если требуется только небольшое количество отчетов, которые не изменятся.Это зависит ...
У вас действительно есть слишком большой выбор, поскольку вы пытаетесь спроектировать полное решение BI, и у всех нас будут разные представления о том, что лучше для вас.