Миграция реляционных данных в многомерные: как создать измерение времени из метки времени — службы SSAS

Цель: у меня есть модель реляционной базы данных (RDB). Несколько таблиц имеют отметку времени атрибута. Я хочу создать измерение даты для своей многомерной модели.

Просмотр учебника Microsoft Решение 3. Я заметил, что атрибут FullDateAlternateKey таблицы измерения даты имеет тот же формат, что и атрибут метки времени в таблицах RDB.

Вопрос: Итак, мне было интересно, есть ли способ автоматически сгенерировать схему таблицы измерения даты (с FullDateAlternateKey в качестве первичного ключа) и заполнить ее данными из временных меток в таблицах RDB?

Затем я мог бы сделать атрибут timestamp из таблиц RDB внешним ключом для таблицы измерения времени в моей многомерной модели.


person Testing360    schedule 04.08.2017    source источник


Ответы (2)


Не.

Во-первых, определите «зерно» вашего измерения. Похоже, вам нужно измерение DATE, поэтому зерно будет днем.

Затем выберите столбцы, которые вы хотите добавить в измерение. Примерами являются номер недели, номер дня в неделе, номер дня в году, название дня, название месяца и т. д.

Затем создайте электронную таблицу, содержащую по одной строке на дату для нужного вам диапазона дат, и вычислите нужные столбцы.

Наконец, загрузите и обработайте измерение из электронной таблицы, используя предпочитаемый вами метод ETL/ELT.

Причина, по которой вы не строите его из входящих значений данных, заключается в том, что у вас могут быть пробелы в данных. Измерение даты должно содержать ВСЕ даты в желаемом диапазоне (например, с 1900-01-01 по 2999-12-31), чтобы ваши инструменты BI могли в конечном итоге использовать его для отчетов временных рядов. Если у вас нет ВСЕХ дат и вы пытаетесь отобразить дату на оси x графика, вы получите неверную визуализацию.

Еще одна причина для использования электронной таблицы в качестве источника заключается в том, что параметр DATE является одним из самых изменчивых параметров в вашем дизайне. Ваши пользователи будут запрашивать новые столбцы и варианты столбцов (например, «Можем ли мы иметь столбец с датой вроде 4 августа 2017 г.?»), А электронная таблица — это очень быстрый способ управления данными и перестроения размер при необходимости.

person Ron Dunn    schedule 04.08.2017
comment
Как насчет данных, которые уже есть в базе данных? Как это будет соответствовать измерению времени? Это моя проблема/сомнение. Мне нужно показать данные, поступающие из реляционной базы данных, поэтому мне нужен способ преобразовать атрибут временной метки этих реляционных таблиц в измерение даты, чтобы я мог отображать эти таблицы. Или нет? - person Testing360; 07.08.2017
comment
Я не знаю ваш процесс загрузки, поэтому я не могу определить только одно решение, но рабочим вариантом было бы добавить столбец DATE в вашу таблицу фактов и заполнить его вашей отметкой времени, приведенной к дате. Затем, если у вас есть измерение даты с ключом по дате, вы можете соединить две таблицы. - person Ron Dunn; 07.08.2017

Шаг 1: Выберите уровень детализации и сгенерируйте ключ временного измерения на основе этого уровня детализации. Например, для выбора часа детализации потребуется что-то вроде 2001020323 (ггггммддчч).

Автоматического способа сделать это с помощью SSAS не существует, поэтому лучше всего использовать сценарий для построения таблицы измерения времени в базовом источнике данных, затем импортировать ее в DSV в службах SSAS и использовать для построения измерения времени. (как этот)

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

person Testing360    schedule 04.08.2017
comment
Измерение, которое имеет только метки времени, которые используются в фактах, бесполезно в качестве измерения времени/даты - оно должно быть непрерывным измерением дат или времени, включая те, которые не используются в соответствии с ответом Рона. Вы, безусловно, сможете создать измерение из временных меток вашего факта, запросив его в DSV, но Рон прав: не делайте этого. - person Rich; 10.08.2017
comment
Я должен сопоставить ключи измерения времени, поэтому мне нужен ETL на моей метке времени. - person Testing360; 10.08.2017
comment
Конечно. Но ваше временное измерение должно быть сделано независимо от того, что есть в вашем факте, и тогда вы соответствуете этому. - person Rich; 10.08.2017