Как связать Python и Qlik Sence

Автор djania, 01 февраля 2021, 04:26:17

« назад - далее »

djania

Добрый день!
Имеется скрипт на одном сервере, который формирует данные и сохраняет в CSV с определенным интервалом. На другом стоит Qlik Sense. Возможно ли как то в автоматическом режиме настроить Qlik, чтобы он по расписанию забирал и добавлял данные из данного файла?

admin


djania


admin

#3
Настройте задания по расписанию так, чтобы оно срабатывало примерно после обновления данных.
Или же, если данные формируются в питоне, то можно прямо из него через API запустить обновление приложения.
Поищите на github по строке qlik python

Maks248

Создаете приложение Qlik, скрипт которого подключается к серверу с CSV, берет от туда данные и трансформирует.
В QMC, в разделе Tasks создаете задачу, которая запускает ранее созданное приложение Qkik, в задаче указываете периодичность запуска этой задачи.

djania

Цитата: Maks248 от 02 февраля  2021, 11:31:06  Создаете приложение Qlik, скрипт которого подключается к серверу с CSV, берет от туда данные и трансформирует.

Я новичок в Qlik, не подскажите приблизительный синтаксис скрипта, который будет подключаться к другому серверу? Пока мои попытки написать рабочий скрипт не увенчались успехом.

Maks248

#6
А доступ к файлам CSV с сервера Qlik есть?
Например - расшареная папка, либо его можно загрузить по Http?
Http://server.ru/file.csv

вариант забрать файл с компа:

LET vSourcePath='C:\QVProject';

LOAD
*
FROM [$(vSourcePath)\file.csv] (csv);

Вариант, если файл доступен по http:
Создаете Web-подключение справа кнопка создать новое подключение, называете его как-то и указываете где он лежит. Далее, в инструкции From указываете это подключение
FROM [lib://имя вашего подключения]

Это упрощенный вариант.
Ну и далее с трансформацией:

[tmp]:
LOAD
* // здесь какая-то трансформация типа Date(Floor(ИмяПоляСдатойВремя)) as Дата
FROM [$(vSourcePath)\file.csv] (csv);
Store tmp into [$(vSourcePath)\DataTier2\НужноеИмяqvd];

Первый попавшийся пример взял у себя, вам для примера синтаксиса
let vDate=Date(today(),'YYYYMMDD');

tmp:
LOAD
    F1,
    if(F1=6,'WORLD',F2) as F2,
    F3,
    F4,
    F5,
    F6,
    F7,
    F8,
    F9,
    F10,
    F11,
    F12,
    F13,
    F14,
    F15,
    F16,
    F17
FROM [lib://covid19]
(html, utf8, embedded labels, table is @1)
where F1>5 and F2<>'TOTAL';

Store tmp into lib://qvd/Covid$(vDate).txt (txt);
Drop Table tmp;

Делал статистику по ковиду))


ну и подробнее: https://help.qlik.com/ru-RU/sense/November2020/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Store.htm

djania

Спасибо большое, попробую)

djania

Цитата: Maks248 от 03 февраля  2021, 10:40:08  Вариант, если файл доступен по http:
Создаете Web-подключение справа кнопка создать новое подключение, называете его как-то и указываете где он лежит. Далее, в инструкции From указываете это подключение
FROM [lib://имя вашего подключения]


Как быть если доступ запаролен, как можно его указать при подключении?
И указывать в виде [lib://http://.../file_name.csv]?

Maks248

тут сложнее, попробуйте открыть этот файл в браузере по умолчанию с сохранением пароля

djania

Цитата: Maks248 от 03 февраля  2021, 11:39:23  тут сложнее, попробуйте открыть этот файл в браузере по умолчанию с сохранением пароля
Тут такой вариант не получится. Qlik на удаленном сервере находится, полного доступа к нему нет, только в качестве пользователя самого приложения. Думала, может при ссылке где то можно указывать пароль в качестве параметра(((

Яндекс.Метрика