Лучший способ изменить гранулярность таблицы фактов? - PullRequest
0 голосов
/ 17 декабря 2018

У нас есть куб, созданный несколько лет назад, и у нас есть запрос на изменение зерна.Чтобы упростить мой сценарий, этот факт содержит измерения для даты (ежедневно), рынка (Латам, Северная Америка и т. Д.) И показатель количества посещений.

Появилась новая просьба включить страну и штат.Это то, о чем я думаю:

  • добавление нового затемнения Geography с помощью Country, State (и, возможно, почтового индекса для проверки на будущее?)
  • обновление исторических записей с неизвестными (пока мыработа над обновлением исторических данных)
  • обновление логики в ETL для загрузки через страну / штат

Любые другие вещи или ошибки, о которых я должен подумать?

1 Ответ

0 голосов
/ 23 декабря 2018

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

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

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

  1. Ваши рыночные данные должны быть представлены кубу в виде представления.Если он не создан, а в DSV замените таблицу «другой таблицей» и укажите ее в новом представлении.Расширьте это представление, чтобы оно содержало объединенную геоинформацию - строку для каждого штата / страны / рынка.

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

  3. Создайте источник строки для ваших старых + новых данных фактов зерна.Я предполагаю, что они будут получены из отдельных источников.Это может быть объединение всех двух представлений со старым [Рынок], отраженным как [Состояние] для старых данных фактов.Или вы можете просматривать представления для каждого, реализующего их в своем кубе как отдельные разделы.

  4. Измените имя иерархии ключевых атрибутов с [Рынок] на [Состояние] (при условии, что Штат -> Страна и Штат -> Рынок).

  5. Измените свой ключ / имя из полей ключа / имени для рынка на поля для [Состояние]. Добавьте иерархию атрибутов для страны и новую для рынка снова, убедившись, что она совпадает спрежде чем избежать взлома старых отчетов.

  6. Добавить отношение атрибута между округом и рынком (только если он является строгим родителем для всех записей фактов)

  7. В группе мер /Панель использования измерений конструктора кубов удаляет и повторно добавляет прямую связь между фактом и измерением.

Это разработано, чтобы дать вам самое гладкое соответствие с любым MDX, записанным против старых данных.Ваше измерение сохранит свое имя, которое может показаться устаревшим.Конечно, вы можете изменить конструкцию, чтобы дать измерению новое имя, если вы готовы разрушить старые отчеты, которые потребляются из куба.

Ваша страна и штат не зависят от этого атрибута, и (например) данные могут появляться на рынке LATAM и в стране США.

Тогда вам просто нужнодобавить новое измерение, которое проще.

  1. Создайте набор строк, из которого будет построено новое измерение, и убедитесь, что в нем есть строка для Country = "UNKNON" и State = "UNKNOWN".Всегда лучше обозначать измерения целым числом, и, скажем, мы даем эту запись [GeoId] = 0.

  2. Подайте данные нового зерна в куб с ключом для нового измерения.Ваши старые данные фактов должны быть представлены кубу как представление, и это представление может иметь буквальное значение 0, служащее для нового столбца [GeoId] во всех записях.

  3. Объедините все это вместе или служите им для разделения разделов группы мер.
    Добавьте отношение к новому измерению в использовании группы мер / измерений.

Это практически неразрывное изменение почти всех потребителей из ваших данных куба.

...