Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: orcdunaev от 05 марта 2017, 09:26:19

Название: Автоматическая загрузка данных по расписанию
Отправлено: orcdunaev от 05 марта 2017, 09:26:19
Здравствуйте!
Подскажите, пожалуйста, как сделать, чтобы документ сам загружал данные по расписанию или с какой-то периодичностью.
Догадываюсь, что копать надо в сторону скриптов, но описании объектной модели не нашел никаких методов связанных с загрузкой.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: admin от 06 марта 2017, 06:59:03
Привет, о какой программе идет речь?
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: orcdunaev от 06 марта 2017, 01:33:46
QlikView 11.20 для Windows Personal edition.
Автоматическую загрузку хочется делать не только для десктопного приложения, но и для просмотра в браузере.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: millik от 06 марта 2017, 02:43:31
Автоматическое обновление данных доступно только в серверных решениях.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: kvv от 06 марта 2017, 03:20:52
Привет.
Например, можно использовать виндовый шеддулер.
В bat-файл пишем следующее:
Цитировать"C:\Program Files\QlikView11\Qv.exe" /r "C:\Projects\QlikView\Load.qvw"
И bat-файл запускаем по шеддулеру.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: millik от 06 марта 2017, 06:49:23
Цитата: kvv от 06 марта  2017, 03:20:52  
Привет.
Например, можно использовать виндовый шеддулер.
В bat-файл пишем следующее:
Цитировать"C:\Program Files\QlikView11\Qv.exe" /r "C:\Projects\QlikView\Load.qvw"
И bat-файл запускаем по шеддулеру.

Ну так конечно тоже вариант. =)
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: admin от 06 марта 2017, 07:24:38
И еще какой Вариант!  :)
Qvd-файлы сформированные Qlikview 12.10 прекрасно открываются в Qlik Sense... ;)
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: orcdunaev от 06 марта 2017, 08:08:51
Товарищи, спасибо за ответы. Но я в клике новичок, мне надо разжевывать.)
С бат-файлом не прокатит. Это мне на каждый комп, где будут смотреть аналитику, надо будет ставить бат-файлы.
Цитата: millik от 06 марта  2017, 02:43:31  
Автоматическое обновление данных доступно только в серверных решениях.
Millik, что означает "в серверных решениях"?
Вот у меня есть комп, на нем установленный сервер Qlik.
Вижу какие-то сэмплы по адресу: http://localhost/qlikview/index.htm (http://localhost/qlikview/index.htm)
Т.е. автозагрузка данных по расписанию возможна, если мое приложение опубликовано с помощью Qlik Access Point, как эти сэмплы?
А где это настраивается? 
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: admin от 06 марта 2017, 08:20:29
Зачем на каждом ?
Сделайте один комп главным, псевдо-сервером. На нем запускайте сценарий обновления данных.
Папку с файлами qvd расшарьте по сети, и коллегам в приложениях пропишите путь на вашу папку.
В итоге, один комп будет обновлять данные и складывать их по папкам, а станции будут обращаться к этой папке и забирать необходимую информацию.

Только откуда у вас сэмплы если версия десктопная?  ;)

P.S. Все-таки серверная версия. Тогда все настройки через консоль.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: orcdunaev от 06 марта 2017, 08:42:33
Цитата: admin от 06 марта  2017, 08:20:29  
Зачем на каждом ?
Сделайте один комп главным, псевдо-сервером. На нем запускайте сценарий обновления данных.
Папку с файлами qvd расшарьте по сети, и коллегам в приложениях пропишите путь на вашу папку.
В итоге, один комп будет обновлять данные и складывать их по папкам, а станции будут обращаться к этой папке и забирать необходимую информацию.

Только откуда у вас сэмплы если версия десктопная?  ;)

P.S. Все-таки серверная версия. Тогда все настройки через консоль.

А, вот как... Да, тогда это вариант.
А где в серверной версии настраивается?
Зашел в консоль сервера, вижу в свойствах документов на вкладке Perfomance поле Timeout (minutes). Поставил туда 1, открыл документ, но не вижу, чтобы он обновлял данные.
Это то самое?
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: orcdunaev от 06 марта 2017, 09:46:45
И еще момент. Если рассматривать вариант с батником.
Поправьте, если я где-то не прав. Алгоритм получается такой:
1) Есть скрипт qlik, который сохраняет полученные данные в qvd.
2) Есть батник, который выполняется по расписанию и запуском скрипта обновляет файл qvd.
3) пользователь открывает приложение qlik, оно тянет данные из обновленного qvd.
Но если у пользователя открыто приложение qlik, оно же автоматически не обновит свои данные из обновившегося qvd? Пользователю все равно придется тыкнуть мышкой, чтобы инициировать повторную загрузку?
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: admin от 07 марта 2017, 07:02:41
Пригласите к себе специалиста по Qlikview для проведения обучения и первоначальной настройки.
Так будет намного эффективнее чем самим изучать руководство (http://help.qlik.com/en-US/qlikview/12.0/Subsystems/QMC/Content/Administering.htm).
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: orcdunaev от 07 марта 2017, 05:44:30
Цитата: admin от 07 марта  2017, 07:02:41  
Пригласите к себе специалиста по Qlikview для проведения обучения и первоначальной настройки.
Так будет намного эффективнее чем самим изучать руководство (http://help.qlik.com/en-US/qlikview/12.0/Subsystems/QMC/Content/Administering.htm).

Проблема в том, что специалист - это я.) Другого не будет.)
Поэтому был бы все же благодарен форумчанам за подсказки по конкретным вопросам.
Руководство тоже осилю, но далеко не сразу... А по конкретным моментам желательно что-то сделать уже сейчас.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: admin от 09 марта 2017, 07:13:01
Привет.
Вкратце, суть сервера в том, чтобы используя свои процессоры и свою память - раскрывать ваши приложения, производить вычисления и работать с данными исключительно на ресурсах сервера.
А пользователю формировать окна с визуализацией.

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

Qlikview-сервер, по сути тот же настольный Qlikview, плюс Веб сервер с оболочкой администрирования, в которой есть сервис запуска заданий (Tasks) по расписанию. На одно приложение должно быть как минимум одно задание, если мы хотим его регулярно обновлять.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: orcdunaev от 09 марта 2017, 08:13:35
Спасибо за развернутый ответ.
Буду пробовать задания на веб-сервере.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: suboral от 08 октября 2018, 05:52:18
Аналогичный вопрос по Qlik Sense.
Каждый месяц формирую отчет из 1с(в теории можно его сразу выгружать в директорию).
В отчете меняется только имя файла и сами данные, формат один и тот же(номер строки заголовка, расположение колонок, название заголовков).
Каким способом можно сделать, чтобы Qlik мог сам(автоматически или полуавтоматически) брать файл из директории, загружать из него данные отдельной таблицей, и создать по этой таблице два новый приложения(которые тоже одинаковые, меняются только данные).
Пример, есть отчет по продажам за Август, я его загружаю в Qlik как таблицу, копирую приложение прошлого месяца(Июля), и везде меняю значения с Июля на Август, т.е. с Count ({<[Июль.Просрочка] = {"<0"}>} [Июль.Просрочка]) на Count ({<[Август.Просрочка] = {"<0"}>} [Август.Просрочка]).

Скорее всего какой-то скрипт, можете дать пример, который я уже под себя допилю или ткните точно куда смотреть.

Спасибо!
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: admin от 08 октября 2018, 06:43:21
Привет.
Непонятно зачем делать новые приложения.
В принципе, загрузку данных и формирование qvd можно делать и из QlikView.

Что касается дублирования приложений и их обновление автоматом в Qlik Sense....
Ну, как бы можно использовать внешние скрипты .qvs. Скриптами на Power Shell делать дубли, в которых будет подтягиваться внешний скрипт/скрипты.
Но к чему этот "зоопарк" из технологий? Не проще купить?
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: suboral от 09 октября 2018, 02:55:14
Привет.
Приложение то одно и тоже, меняются только данные, поэтому я беру приложение за Июль и меняю в нем обращение к таблицам(уже не к Июлю, а к Августу).
QlikView не пользовался, как то начал в Sense и пока там остался.
т.е. хотите сказать в View это можно все сделать стандартными способами, "кнопками"?
А что купить вы предлагаете?
p.s. сейчас качаю Qlikview покапаюсь там, посмотрю, что умеет.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: admin от 09 октября 2018, 03:11:33
Теперь более менее понятно.
Вариантов может быть несколько.
Самый простой: по дате формировать имя файла для загрузки, с предварительной проверкой на его существование.  В этом случае загрузка не произойдет пока файл с необходимым именем не появится.
В итоге, в скрипт не заходим, просто жмем кнопку обновить и все.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: suboral от 09 октября 2018, 04:02:04
Но так можно только в View штатной функцией, в Sense такого нет?
View только что установил, боюсь долго буду ковырять, хоть примерно куда лезть, чтобы сделать: "по дате формировать имя файла для загрузки, с предварительной проверкой на его существование"
И после этого мы только загрузим данные за новый месяц, а приложение такое же только с заменой данных новым месяцем?
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: Hugo от 09 октября 2018, 04:13:04
Думаю самое простое - заменять файл-источник на новый. Т.е. не менять его имя, менять содержимое.
В таком варианте просто обновляете данные и всё, кстати для Сенса есть Extension с такой кнопкой.
Но если нужно - можно и в скрипте формировать имя, ну или вообще грузить всё и отбирать нужное фильтрами (если данных не уж так много, что сразу всё не взять).
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: suboral от 09 октября 2018, 04:27:40
Очень хочется понять как все это реализовать, то что вы пишите, но не пойму как.
Т.е. я понимаю идею, а вот куда конкретно тыкнуть не ясно.
Extension - в смысле какое-то расширение?
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: Hugo от 09 октября 2018, 04:34:20
Есть расширение Reload Button - ну это если нужна такая кнопка.
Ну а июль-август и т.д. - может просто менять в скрипте это поле на нейтральное название? Тогда в функциях ничего менять не нужно.
Ну или переписать на использование переменной, которую задавать кодом загрузки.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: suboral от 09 октября 2018, 04:38:35
Ну с переименовыванием справлюсь, да и загрузка тоже не главная проблема, хотя в концепции автоматизации без нее никуда.
Изначально моя проблема состояла из двух задач:
1. Автоматическая загрузка данных - это буду сейчас пробовать по вашему совету через Reload Button
2. Или создание новых приложений по заданному шаблону с использованием загруженных данных из первого пункта, или дублирование уже созданных шаблонов с заменой старых данных, на новые из загруженных из первого пункта. Конечно правильнее создать по шаблону с новыми данными, а то замена это какие-то костыли.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: suboral от 09 октября 2018, 05:53:16
Кнопку reload поставил. Теперь вопрос, т.к. у меня в одной базе данных много приложений, которые различаются данными по месяцам, т.е. приложение одинаковые, в них разные только данные, reload тут не поможет, но его можно как-то использовать, пока не пойму как, но это все равно вторично, первично, это дублировать приложение, возможно именно в какому-то скрипте дублирования приложения, можно и менять источник данных на новый файл.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: Hugo от 09 октября 2018, 10:32:06
Не понятно зачем нужно дублировать приложение? Почему в одно приложение не загружать только нужные данные, если не хотите всегда грузить всё и отбирать фильтрами?
Действително как говорили выше - можно формировать имя загружаемого файла по выбранной дате, и этими данными заменять текущие.
Выбрали дату, нажали Reload Button - если нужный файл в нужном месте есть, то он загрузится.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: admin от 10 октября 2018, 07:17:44
На самом деле, почему разные приложения для разных периодов? Много данных? Нехватка ресурсов?
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: suboral от 10 октября 2018, 11:19:00
Для каждого периода собственное приложение, для сравнения по месяцам.
И пока это писал, кажется понял, почему вы недоумеваете. Если у меня сейчас 1 приложение = 1 месяц, то лучше будет 1 приложение = несколько месяцев, а уже внутри приложения фильтровать по месяцам и я смогу смотреть каждый месяц по отдельности или даже квартально, если выберу сразу 3 месяца, верно понял идею?
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: Hugo от 10 октября 2018, 11:39:03
Загружаете все данные - можно перебирая все существующие файлы каталога.
Если в данных есть реальные даты, то на лист ставите фильтр (я использую Climber Selection Bar) по годам/квараталам/месяцам/неделям/дням ну или как угодно. Для этого нужно в скрипте создать таблицу с этими полями.
Связь с данными по дате.
Далее при выборе периода будете в визуализациях видеть только этот период событий.
Образать лишнее можно или корректируя список/наличие файлов, или корректируя создание календаря.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: admin от 10 октября 2018, 01:28:28
Цитата: suboral от 10 октября  2018, 11:19:00  
Для каждого периода собственное приложение, для сравнения по месяцам.
И пока это писал, кажется понял, почему вы недоумеваете. Если у меня сейчас 1 приложение = 1 месяц, то лучше будет 1 приложение = несколько месяцев, а уже внутри приложения фильтровать по месяцам и я смогу смотреть каждый месяц по отдельности или даже квартально, если выберу сразу 3 месяца, верно понял идею?
Именно так.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: suboral от 10 октября 2018, 03:05:23
Спасибо, это упрощает мне работу)
Дальше буду думать об выгрузке этого отчета из 1с, на какой-нибудь сервер вроде ftp и автоматическую загрузку в qlik, и может Reload Button чтобы работал по расписанию.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: admin от 10 октября 2018, 03:16:12
Цитата: suboral от 10 октября  2018, 03:05:23  
Спасибо, это упрощает мне работу)
Дальше буду думать об выгрузке этого отчета из 1с, на какой-нибудь сервер вроде ftp и автоматическую загрузку в qlik, и может Reload Button чтобы работал по расписанию.
База 1с на SQL ?
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: suboral от 10 октября 2018, 03:36:41
Этого не знаю, у меня к ней доступа. В этом проще, поставлю задачу ИТ отделу, они уже сделаю мне выгрузку.
Название: Re: Автоматическая загрузка данных по расписанию
Отправлено: admin от 11 октября 2018, 07:50:10
Ну если есть ИТ, значит SQL.
Будет проще, если они пропишут источники данных, которые нужны.
И им работы меньше по выгрузке .