Size: a a a

Power BI Group RU

2020 May 17

KK

Konstantin Kadikin in Power BI Group RU
макс и мин, возможно, регулируютразмер столбца
источник

KK

Konstantin Kadikin in Power BI Group RU
тогда печаль
источник

V

Viktor in Power BI Group RU
Konstantin Kadikin
тогда печаль
Если ответ найду, поделюсь
источник

KK

Konstantin Kadikin in Power BI Group RU
Viktor
Если ответ найду, поделюсь
Мне не надо)
источник

AI

Aleksandr Ignatyev in Power BI Group RU
Всем привет.
Подскажите, пожалуйста, лучший по перформансу способ соединения таблиц фактов с времязависимым справочником (scd2) по интервалу дат и id.

Fact: date - id - sales
Dim: start_date - end_date - id - category

Не хочется для каждого поля из справочника создавать в таблице фактов поля через Calculate(... filter(..., date >= start_date, date <= end_date, ‘fact’[id] = ‘dim’[id]))

Также не хочется превращать справочник из scd2 в обычный справочник на каждую дату.
источник

IS

Ilya Shelegin in Power BI Group RU
Aleksandr Ignatyev
Всем привет.
Подскажите, пожалуйста, лучший по перформансу способ соединения таблиц фактов с времязависимым справочником (scd2) по интервалу дат и id.

Fact: date - id - sales
Dim: start_date - end_date - id - category

Не хочется для каждого поля из справочника создавать в таблице фактов поля через Calculate(... filter(..., date >= start_date, date <= end_date, ‘fact’[id] = ‘dim’[id]))

Также не хочется превращать справочник из scd2 в обычный справочник на каждую дату.
Ну как раз последнее имхо самое правильное решение
источник

АВ

Анатолий Ветринцев... in Power BI Group RU
Aleksandr Ignatyev
Всем привет.
Подскажите, пожалуйста, лучший по перформансу способ соединения таблиц фактов с времязависимым справочником (scd2) по интервалу дат и id.

Fact: date - id - sales
Dim: start_date - end_date - id - category

Не хочется для каждого поля из справочника создавать в таблице фактов поля через Calculate(... filter(..., date >= start_date, date <= end_date, ‘fact’[id] = ‘dim’[id]))

Также не хочется превращать справочник из scd2 в обычный справочник на каждую дату.
Мы на стороне etl в факты вставляли ссылку на конкретную запись из scd2, логика etl усложняется на стороне фактов. Но так данные выглядят чище. Это же можно реализовать в dax, просто взять с помощью vlookup id записи который соответствует и времени и id элемента справочника.
источник

AI

Aleksandr Ignatyev in Power BI Group RU
Анатолий Ветринцев
Мы на стороне etl в факты вставляли ссылку на конкретную запись из scd2, логика etl усложняется на стороне фактов. Но так данные выглядят чище. Это же можно реализовать в dax, просто взять с помощью vlookup id записи который соответствует и времени и id элемента справочника.
Пытался с помощью DAX сделать похожее.
Сделал суррогатный ключ из полей start_date, end_date и id в scd2.
Подтянул его в fact'ы через calculate().
Но при построении свяиз по этому полю PBI выдал ошибку circular dependency.
источник

АВ

Анатолий Ветринцев... in Power BI Group RU
Aleksandr Ignatyev
Пытался с помощью DAX сделать похожее.
Сделал суррогатный ключ из полей start_date, end_date и id в scd2.
Подтянул его в fact'ы через calculate().
Но при построении свяиз по этому полю PBI выдал ошибку circular dependency.
Ну это другая ошибка. У каждой строки в справочнике надо сделать ключ, если его нет, то просто индексом в PQ. Далее в фактах calculate( values([record id column]), Filter( справочник, отфильтровать по элемент id и по дате)) - так он вернет айди соответствующей записи. Убедитесь что по каждому элементу справочника нет записей с Пересекающимися периодам действия. Но лучше это делать на стороне источника данных, или же в PQ, так движок vertipaq лучше сломает данные и производительность будет лучше.
источник

AI

Aleksandr Ignatyev in Power BI Group RU
По-моему, я это же и делаю)
Сейчас скрины покажу.
источник

AI

Aleksandr Ignatyev in Power BI Group RU
На стороне справочника сделал клю каждой строки (surrogate_key)
источник

AI

Aleksandr Ignatyev in Power BI Group RU
В факты с помощью calculate его засунул
источник

AI

Aleksandr Ignatyev in Power BI Group RU
И вот ошибка при построении связи:
источник

I

Ilya in Power BI Group RU
Aleksandr Ignatyev
И вот ошибка при построении связи:
Сделать ещё одну такую же dim таблицу и посчитать ключ на ней) но это костыль.
источник

АВ

Анатолий Ветринцев... in Power BI Group RU
Aleksandr Ignatyev
И вот ошибка при построении связи:
А старой связи точно нет? По  айди1.
+ИМХО ключ лучше числом. я на больших таблицах при использовании текстового ключа (банковский Счёт в 20 цифр не помещался в число), когда превратил в число скорость выросла.
источник

AI

Aleksandr Ignatyev in Power BI Group RU
Анатолий Ветринцев
А старой связи точно нет? По  айди1.
+ИМХО ключ лучше числом. я на больших таблицах при использовании текстового ключа (банковский Счёт в 20 цифр не помещался в число), когда превратил в число скорость выросла.
Ни одной связи не было)
источник

AS

Alexey Shcheglov in Power BI Group RU
источник

AS

Alexey Shcheglov in Power BI Group RU
ну, хоть где-то он вернулся)
источник

АВ

Анатолий Ветринцев... in Power BI Group RU
Aleksandr Ignatyev
Ни одной связи не было)
А даты из таблиц косвенно не связаны между собой, например через календарь?
источник

АВ

Анатолий Ветринцев... in Power BI Group RU
Alexey Shcheglov
ну, хоть где-то он вернулся)
😂 пройдёт так же быстро
источник