PowerQuery (в PowerBI) странная проблема с кэшированием - PullRequest
0 голосов
/ 27 мая 2019

Последние пару дней я пытался преодолеть странную проблему в Power Query в Power BI Desktop.


У меня есть две таблицы, одна называется таблицей «Сопоставления»,и цель этой таблицы - дать мне столбец с именем «FMReference» после нескольких преобразований. Снимок экрана Mappings

У меня есть моя главная таблица с именем "Entry", которая не имеет FMReference и, следовательно, должна быть объединена с таблицей Mappings.Чтобы упростить слияние, я создал простой столбец в обеих таблицах с именем «CombinedForMerge». Скриншот записи

После завершения настройки для столбцов я продолжаю создавать левое внешнее слияние с таблицами Entry и Mappings, используя только что созданные мной столбцы. Снимок экрана с левым наружным слиянием

Как видно на скриншоте, в столбце FMReference указано A4.28, чего я и ожидаю от своих результатов.Однако, когда я расширяю это слияние, чтобы дать мне FMReference, я получаю другое значение, A3.2! Снимок экрана с неправильным значением


Power BI явно кэшировал неправильное значение в PowerQuery, поскольку я отфильтровал таблицу сопоставлений только для одной строки, чтобы получить только одно значение. Снимок экрана Filtered Mappings

Я пытался очистить кэш из параметров Power BI, но это ничего не изменило.

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

Я попытался скопировать результаты таблицы сопоставлений в статическую таблицу и использовалэто вместо слияния.Это сработало, что явно означает, что нужно что-то делать для кэширования преобразований данных в Power BI.

Я обновлял Preview, а также Refreshed ALL несколько раз, но он все равно возвращает неправильный результат.


Я был бы признателен за любую помощь на данный момент, данные очень чувствительны, поэтому я не могу поделиться много, но я рад предоставить более подробную информацию, если это необходимо.

Заранее спасибо!

1 Ответ

0 голосов
/ 29 мая 2019

Я столкнулся с похожим необъяснимым странным поведением при использовании нечеткого слияния, настроенного на точное совпадение. Я поменял местами таблицы и вместо этого использовал слияние по правому краю. По какой-то причине это сработало. Я понятия не имею, что вызвало проблему или почему подход слияния Right Outer сработал. Это было довольно странно.

Итак, я говорю следующее: вместо того, чтобы начать слияние с XXXXEntry и сопоставить XXXXMappings с слиянием Left Outer, вы можете попробовать начать с XXXXMappings и сопоставить с XXXXEntry с правым Outer слиянием.

Один из способов сделать это, если вы все еще хотите объединить то же самое место в том же запросе, это просто отредактировать код существующего запроса в строке формул. Чтобы сделать это, нажмите на Прикладной шаг, связанный с объединением, который, скорее всего, называется объединенными запросами; затем в панели формул поменяйте местами ссылки на таблицы и измените JoinKind.LeftOuter на JoinKind.RightOuter. (Вероятно, одной ссылкой на таблицу будет имя Applied Step перед вашим шагом Merged Queries, а не XXXXEntry. Для меня в примерах до и после, это было # "Измененный тип".)

До:

= Table.NestedJoin(#"Changed Type", {"CombinedForMerge"}, XXXXMappings, {"CombinedForMerge"}, "Changed Type", JoinKind.LeftOuter)

После того, как:

= Table.NestedJoin(XXXXMappings, {"CombinedForMerge"}, #"Changed Type", {"CombinedForMerge"}, "XXXXMappings", JoinKind.RightOuter)

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...