Size: a a a

2021 September 30

GE

Galina E in Qlik BI chat
Коллеги,а никто не проводил исследований, что быстрее работает сейчас конструкция типа load *, ....;
Load * from qvd-файл ;

Или сначала загружаем и потом  делаем преобразования из resident таблиц.

Ранее (несколько лет назад) всегда считала/учили, что второй вариант, но что-то опытные изыскания сейчас говорят, что либо не принципиально, либо первый вариант быстрее.  Причем у первого варианта время исполнения  скрипта всегда быстрее, но либо в 2 раза,либо на не сильно значительнее, но быстрее (менее 30сек) .
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
да первый быстрее по идее
источник

АМ

Антон Михеев... in Qlik BI chat
Всякого рода трансформации при загрузке напрямую из источника могут существенно увеличить время. В идеале конечно грузить в qvd из источника с какой то периодичностью, а уже в приложение сначала оптимизированная загрузка, а потом через резиденты трансформ
источник

АМ

Антон Михеев... in Qlik BI chat
и кстати еще замечено, что часть преобразований можно отдать например на сторону SQL через запрос в самом скрипте клика, тогд тоже быстрее, но это нагрузка на SQL
источник

АМ

Антон Михеев... in Qlik BI chat
с другой стороны если вы напрямую из источника только тянете, то если данных полно, то лучше сразу в первой же загрузке все преобразования делать, да долго, но не перегружать потом из резидента
источник

GE

Galina E in Qlik BI chat
Я выгружаю из источника в qvd и уже из qvd загружаю  +  трансформацию возможную делаю.
Это сущестаенно , просто для меня пости очевидно
источник

АМ

Антон Михеев... in Qlik BI chat
Ну если так, то можно выиграть время за счёт первой загрузки в оптимайзед из qvd, а дальше уже крутить вертеть аггрегации, джоины, маппинги и прочее удовольствие.
источник

GE

Galina E in Qlik BI chat
Да вот в том-то и дело, что выигрыша нет :), скорее в  сумме наоборот.
Поэтому и возник вопрос.
источник

АМ

Антон Михеев... in Qlik BI chat
А у вас когда первичная загрузка идёт из qvd нет никаких пребразований точно?
источник

EI

Eugeny Y. Ilyin ( Sa... in Qlik BI chat
Было дело - сервер был развернут в облаке на 32Gb памяти. Вот на таких примерах и понимаешь разницу в загрузках.
источник

GE

Galina E in Qlik BI chat
Нет :)
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
Precending load (первый вариант), судя по всему образует составной запрос со всеми своими уровнями вложенности. Это эквивалент того, как грузить одним лоадом, просто все вычисления оборачивать во много функций. например, если у меня есть поле applymap('map',Field,null()) as MapField, то если я хочу иметь в таблице его, и вычисления на его основе, то с одним лоадом придется писать что то типа floor(applymap('map',Field,null())) as MapFieldFloor, что сделает мой код более сложным в поддержке и чтении. А Precending load позволяет мне в формулах сослаться на имя вычисляемого поля.

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

И кстати каскад лоадов по своей логике не равен резиденту. Вас может ждать сюрприз с исопльзованим rowno() и агрегаций))
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
еще Precending Load не дружит с кросс тейблом
источник

A

Aleksandr in Qlik BI chat
и сортировки ещё могут "порадовать"
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
точняк
источник

GE

Galina E in Qlik BI chat
Ну rowno помню, только apply навешиваю.
Некорректность и сюрпризы не рассматриваю пока.
источник

GE

Galina E in Qlik BI chat
Не, ну то, что не дружит ясно, я же и не пытаюсь.
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
я к тому что этот подход по своей логике работы впринципе отличен от резидента. Хотя чаще всего его используют именно как аналог резидента.
источник

GE

Galina E in Qlik BI chat
А что с аггрегацией, кстати может быть? Вроде не помню возможных косяков при precending  load
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
там оно с rowno() не дружит. Но точно не помню, давно не сталикивался
источник