|
|
|
Данные из разных кубов последовательно
|
|||
|---|---|---|---|
|
#18+
Задача поставлена такая: есть куб с данными с 2010 года. Нативные данные для куба есть только с осени 2017 года. В куб нужно внести новое измерение. Соответственно, для сохранения старых данных, нужно делать новый куб. НООО!!!!!! надо сделать так чтобы конечный пользователь не увидел наличия двух кубов (до даты и после даты) и объединить два куба в один. Брать в этот куб данные до определенной даты из первого, а после этой даты из второго. Условно с 1 января 2019 года ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 14:13 |
|
||
|
Данные из разных кубов последовательно
|
|||
|---|---|---|---|
|
#18+
Можно ли такое сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 14:14 |
|
||
|
Данные из разных кубов последовательно
|
|||
|---|---|---|---|
|
#18+
Mihich, можно и объединив в один (вытащить данные из предыдущего куба в новый, один раз, но медленно, и периодически придётся перевытаскивать если на измерениях с длинными текстами processupdate стоит и часто и много в них обновляется, т.к. иначе измерение начнёт глючить/тормозить) и на разных кубах (несколькими методами: LookupCube и Linked Measure Group / {New Linked Object на мерах в проекте куба} a потом MDX скриптами внутри соединить в одну меру). Причём на разных кубах есть вариант когда оба исходных куба разные, а так-же когда последний куб - основной, а архивный - вспомогательный (связанный, из другой базы). дальше от размеров и нагрузки зависит - такие реализации обычно относительно медленные т.к. работают во первых в поклеточном режиме, а во вторых для оценки каждой новой клетки запускается отдельный запрос (соответственно их может быть тысячи и сотни тысяч) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 14:48 |
|
||
|
Данные из разных кубов последовательно
|
|||
|---|---|---|---|
|
#18+
А можно по подробнее с вытаскиванием данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 15:34 |
|
||
|
Данные из разных кубов последовательно
|
|||
|---|---|---|---|
|
#18+
Mihich, от размеров зависит, генерируешь поток запросов на листовой гранулярности (ключи/меры) и так партицию за партицией обратно в DWH если даже партиции большие - бьёшь на более мелкие куски как удобнее (другие измерения/атрибуты не участвующие в определении SLICE партиции {хотя косвенно в метаданных всё равно будет}), например у тебя пратиции по год-месяцам, можно ещё добавить по департаментам или по городам или по поставщикам и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 15:52 |
|
||
|
Данные из разных кубов последовательно
|
|||
|---|---|---|---|
|
#18+
правильно ли я понимаю: 1) берем Integration Services 2) создаем пакет 3) в нем создаем подключение к кубу и SQL базе 4) добавляем Задачу поток данных 5) входной поток данных из куба Источник "OLE DB" 6) выходной поток в SQL базу Назначение "OLE DB" Так? вот теперь самое интересное: если я тупо беру в входном потоке указываю куб и выбираю таблицы, то там только измерения (( основных кубов нет((( Если писать MDX запрос, то куда его вставлять? Если можно пример таблица фактов поля: nom_pred(int), Nerror(int), timekey(int) и два измерения: Время и Ошибка SQL соответствует таблице фактов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 07:51 |
|
||
|
Данные из разных кубов последовательно
|
|||
|---|---|---|---|
|
#18+
Mihich, В редакторе источника выбираешь соединение с AS сервером OLE DB Режим доступа - команда SQL в переменной. В переменную закидываешь MDX запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 14:17 |
|
||
|
Данные из разных кубов последовательно
|
|||
|---|---|---|---|
|
#18+
MihichА можно по подробнее с вытаскиванием данных? Можно. Берете группу мер, одну, смотрите, с какими измерениями помимо измерения даты она связана, выписываете названия ключевых атрибутов. И пишете SQL запрос поверх openquery, внутри которого MDX запрос, вытягивающий с фильтром WHERE для одной даты (в цикле перебираете от минимальной даты из фактов до максимальной), со всеми физическими мерами и со всеми ключевыми атрибутами используемых измерений. Если помимо простых мер (агрегация SUM есть много last non emty/first child) - перебираете их отдельно, чтобы нули не записывать на каждую из дат внутри, например, приход есть в штуках на 1,2,3 января, ценник на 2, выдергиваете раздельно в 2 таблицы, затем подумаете, как соединить обратно в одну таблицу для новой группы мер, в которой есть новое измерение (которого раньше не было в кубе). Ну и так одну группу мер за другой, каждую в плоскую таблицу SQL, затем подсоединяете столбец с ключом нового измерения - и обратно, в новый куб с таким же названием группы мер и такими же названиями мер. Чтобы упростить процесс. Вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2018, 14:24 |
|
||
|
Данные из разных кубов последовательно
|
|||
|---|---|---|---|
|
#18+
Ух. СПАСИБО БОЛЬШОЕ. Начинаю осваивать. Суть с простыми мерами понял. Дальше буду спрашивать по мере вытягивания данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 19:39 |
|
||
|
Данные из разных кубов последовательно
|
|||
|---|---|---|---|
|
#18+
MihichУх. СПАСИБО БОЛЬШОЕ. Начинаю осваивать. Суть с простыми мерами понял. Дальше буду спрашивать по мере вытягивания данных Почему полезно вытягивать в 2 разные таблицы меры из одной и той же группы мер, если агрегация разная. Поясню. Допустим, у Вас есть строки с продажами и тут же последними ценниками себестоимости. 1 января 10 штук, розничная цена 10 шекелей, оборот 100 шекелей, на тот момент мера last-non-empty для ценника себестоимости была 7 шекелей, маржа на операции 10x(10-7)=30 шекелей, 2 января назначена новая цена себестоимости в 8 шекелей вместо 7, продаж не было, строка дает 0 штук и 0 розницы и 7 шекелей цены, 3 января ничего нет, 4 января снова 10 штук, снова розничная 10, оборот 100 шекелей, цена себестоимости не поменялась, поэтому 8 шекелей в отдельной мере. И вот Вы начинаете выгрузку из OLAP куба в плоскую таблицу. Чтобы выгрузить - Вы берете non empty ограничение по мере в штуках и получаете строки от 1 и 3 января. Но не увидите строку от 2 января, когда поменялся ценник. Затем у Вас появится новое измерение "дата изменения цены поставщика". Понятно, что для строки 3 января нужно привязать новое измерение ко 2 января, а для строки 1 января новое измерение к декабрю прошлого года. Но у Вас этой информации для такого расчета не будет. А вот если есть отдельная таблица фактов продаж и отдельная таблица истории цен себестоимости - тогда да, таки можно будет правильно новое измерение привязать. Понимаете, в чем цимес? Поэтому нужно сесть вместе с бизнесом и подумать, стоит ли игра свеч, какая информация может быть потеряна при таком или другом алгоритме выгрузки обратно из OLAP в SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 19:47 |
|
||
|
Данные из разных кубов последовательно
|
|||
|---|---|---|---|
|
#18+
Andy_OLAP, То есть для строки 4 января найти привязку к дате изменения 2 января, строк в 3 января никаких нет, опечатался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 19:49 |
|
||
|
Данные из разных кубов последовательно
|
|||
|---|---|---|---|
|
#18+
Спасибо. Понял. Буду учитывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 08:36 |
|
||
|
|

start [/forum/topic.php?fid=49&fpage=19&tid=1857761]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 9ms |
| total: | 143ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...