Size: a a a

2019 September 04

АВ

Анатолий Ветринцев... in Qlik BI chat
Igor Burobin
Вам нужно таблицы соединить "по-вертикали" ? CONCATENATE
Нужно чтобы все селекты были ещё пропущенны через вычисления указанные в первом LOAD
источник

VF

Vladimir Frolov in Qlik BI chat
Так заверните в цикл все лоад
источник

АВ

Анатолий Ветринцев... in Qlik BI chat
Хм...
источник

IB

Igor Burobin in Qlik BI chat
Таблица: LOAD нечто FROM ....
источник

IB

Igor Burobin in Qlik BI chat
далее в цикле CONCATENATE(Таблица) SQL SELECT ... .FROM
источник

OT

Oleg Troyansky in Qlik BI chat
Анатолий Ветринцев
Всем привет! У меня тут проблема с синтетическим ключом...
Есть предшествующий LOAD без FROM - в нем идут вычисления дополнительных полей, потом идёт цикл, который запускает несколько SELECT'ов. Первый селект успешно заливается в первый LOAD таблицу, все оставленные льются в новую,  без нужных мне вычислений и создаётся синтетический ключ аро всем полям... если я убираю дополнительные вычисления в первом LOAD, то на выходе таблица одна. Это как то лечится?
Проблему вызывает предшествуюший LOAD. Вместо него, сначала загрузите все необходимые данные в цикле, если надо с CONCATENATE, а уже потом перезагрузите ещё раз с помощью RESIDENT LOAD и добавьте все преобразования из предшествующего LOAD.
источник

VF

Vladimir Frolov in Qlik BI chat
Можно начать с пустой inline таблицы за пределами цикла, тогда первый шаг аналогичен последующим
источник

АВ

Анатолий Ветринцев... in Qlik BI chat
Oleg Troyansky
Проблему вызывает предшествуюший LOAD. Вместо него, сначала загрузите все необходимые данные в цикле, если надо с CONCATENATE, а уже потом перезагрузите ещё раз с помощью RESIDENT LOAD и добавьте все преобразования из предшествующего LOAD.
Вот наверное да...
источник

MD

Maxim Deviatov in Qlik BI chat
Oleg Troyansky
Это интересный вопрос... AGGR как известно очень тяжёлый на большом количестве данных, поэтому меня не удивляет что это занимает 5-10 минут. В зависимости от конкретных требований, можно попробовать использовать расширенный поиск в Сет Анализе. Иногда можно обойтись малой кровью. Иногда приходится сказать заказчику "Нет". Как поется в песне, "You can't always get what you want"
Интересная идея...  Нужно попробовать! Сет анализ получается на больших объемах в разы быстрее?
источник

MD

Maxim Deviatov in Qlik BI chat
Евгений Стучалкин
Также, можно освоить динамическое формирование скрипта и написание подпрограмм (sub). Поможет автоматизировать много рутинных операций
Евгений, мне кажется это уже слегка жесть))  Саппортить потом такую тему наверное очень непросто.  Я правильно понимаю, что скрипт проще формировать каким-нибудь Питоном? Или вы все из Клика делали?
Может быть есть пример как вы это реализовывали (просто подход оценить)
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
Maxim Deviatov
Евгений, мне кажется это уже слегка жесть))  Саппортить потом такую тему наверное очень непросто.  Я правильно понимаю, что скрипт проще формировать каким-нибудь Питоном? Или вы все из Клика делали?
Может быть есть пример как вы это реализовывали (просто подход оценить)
Никакого питона, только стандартный кодинг в клике)
источник

VF

Vladimir Frolov in Qlik BI chat
+ повторное использование инклюдами
источник

АВ

Анатолий Ветринцев... in Qlik BI chat
Vladimir Frolov
Так заверните в цикл все лоад
Это сработало!!! Спасибо!!!
источник

MD

Maxim Deviatov in Qlik BI chat
Евгений Стучалкин
Никакого питона, только стандартный кодинг в клике)
Deadmatch)))  На пример бы с удовольствием и благодарностью посмотрел)
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
Sub KeepTables (Table2Keep)
////////////////Kill Tables Start
//Удаляет из модели все таблицы кроме одной, которая указанна в переменной vTableToKeep

unqualify *;
let vTableToKeep=Table2Keep; //Вместо НазваниеТаблицы пишем имя таблицы, которую хотим сохранить

tablemap:
mapping load
subfield('$(vTableToKeep)',';'),
1
AutoGenerate 1;



For t = 0 to NoOfTables() - 1
 KillTables:
 Load
 TableName($(t)) as KillTables
  Autogenerate 1 where applymap('tablemap',TableName($(t)))<>1;
Next t;
KillTablesConcat: load Concat(distinct '['&KillTables&']',',') as KillTablesConcat resident KillTables;
let vTables2Kill='drop tables '&peek('KillTablesConcat',0,'KillTablesConcat')&';';
drop tables KillTablesConcat, KillTables;
$(vTables2Kill)
////////////////Kill Tables Stop
end Sub
источник

VF

Vladimir Frolov in Qlik BI chat
KillTables 👍
источник

VF

Vladimir Frolov in Qlik BI chat
Я использую, очень рекомендую
источник

ЕС

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

OT

Oleg Troyansky in Qlik BI chat
Maxim Deviatov
Интересная идея...  Нужно попробовать! Сет анализ получается на больших объемах в разы быстрее?
В тех случаях когда Сет Анализ применим (увы, не всегда), - то да, должен быть намного быстрее чем AGGR, но его нужно правильно построить. При желании, можно и Сет Анализ тоже убить сложной логикой 😊
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
Maxim Deviatov
Deadmatch)))  На пример бы с удовольствием и благодарностью посмотрел)
Обратите внимание, что в таблице KillTablesConcat формируется полностью синтаксис кода, который пишется в переменную $(vTables2Kill), которая дальше вставляется в скрипт, что приводит к выполнению записанног ов нее кода
источник