Форум разработчиков QlikView и Qlik Sense. Получи любые ответы на вопросы по QlikView и Qlik Sense в течении нескольких часов!
Вы не вошли.
Страницы 1
Добрый день!
Данные загружаю из SQL Server через ODBS. В запросе выводятся данные с 2013 года.Подскажите пожалуйста как можно организовать загрузку данных, чтобы добавлялась только новая информация, чтобы каждый раз не приходилось перегружать старые периоды?
Неактивен
Добрый день!
Данные загружаю из SQL Server через ODBS. В запросе выводятся данные с 2013 года.Подскажите пожалуйста как можно организовать загрузку данных, чтобы добавлялась только новая информация, чтобы каждый раз не приходилось перегружать старые периоды?
Добрый день!
Для решения указанной задачи вам необходимо организовать так называемую инкрементальную загрузку. Она используется для загрузки новых или измененных данных, при этом старые данные загружаются из QVD файлов, а новые считываются из БД и далее объединяются в единый QVD файл.
Таким образом, базовый алгоритм следующий:
1. Загрузка новых данных из БД (медленный процесс, но загружается ограниченное количество записей);
2. Загрузка старых данных из QVD файла (загрузка большого количества записей, но гораздо более быстрый процесс);
3. Создание (перезапись) QVD файла.
Пример кода:
Таблица:
SQL Select
*
From
[Таблица БД]
Where
[Дата] >= [Дата последней загрузки]
;
Concatenate (Таблица)
Load
*
From
[QVD файл]
;
Store Таблица Into [QVD файл];
С уважением,
Олег Орлов
Неактивен
Или через Partial Reload.
Примерно так:
if IsPartialReload() then
maxdate:
replace load num(max(orderdate)) as lastdate
resident facttable;
lastdate = peek('lastdate');
facttable:
add sql select orderdate, field1, field2
where orderdate > $(lastdate);
exit script;
endif;
Если покажите ваш текст скрипта загрузки, то можно будет ответить точнее.
Редактировался Andrey (2015-03-23 13:53:26)
Неактивен
Добрый день!
у меня есть Excel-файл с данными, которые я подгружаю в приложение QlikView,
задача: обновлять/подгружать данные с заданной периодичностью, например, каждые 10 минут.
Как это лучше реализовать? Нужно ли каждый раз перезагружать все или можно тоже организовать инкрементную загрузку?
Или только через планировщик клика?
Заранее спасибо.
Редактировался Yulia (2016-03-09 15:19:13)
новичок в QlikView
Неактивен
Или через Partial Reload.
Добрый день, не хочет работать как раз передача переменной при Partial Reload в варианте sql
if IsPartialReload() then
maxdate:
replace load num(max(DateMe)) as lastdate
resident TableMe;
lastdate = peek('lastdate');
add sql select ID, DateMe, TovarKod, Number, Place
from TempTovar6
where DateMe>$(lastdate);
exit script;
endif;
ругается:
ODBC error
Connector reply error: SQL##f - SqlState: 37000, ErrorCode: 102, ErrorMsg: [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '>'.
при этом такой же вариант но не с "add sql select ", а с "add load" при работе с экселевским файлом, то вышло всё замечательно
может sql нужно как-то "помочь" понять что есть $(lastdate)?
буду очень благодарен за ответ
Неактивен
Страницы 1
[ Сгенерировано за 0.015 сек, 10 запросов выполнено - Использовано памяти: 1.5 Мбайт (Пик: 1.64 Мбайт) ]