Неофициальный форум разработчиков QlikView и Qlik Sense

Форум разработчиков QlikView и Qlik Sense. Получи любые ответы на вопросы по QlikView и Qlik Sense в течении нескольких часов!

Вы не вошли.

Готовые решения на платйорме QlikView

#1 2015-03-20 15:32:36

Tanya
Участник
Зарегистрирован: 2015-03-19
Сообщений: 1
Windows 7Chrome 41.0.2272.89

Обновление данных

Добрый день!

Данные загружаю из SQL Server через ODBS. В запросе выводятся данные с 2013 года.Подскажите пожалуйста как можно организовать загрузку данных, чтобы добавлялась только новая информация, чтобы каждый раз не приходилось перегружать старые периоды?

Неактивен

#2 2015-03-23 13:37:19

Oleg Orlov
Участник
Зарегистрирован: 2015-02-16
Сообщений: 14
Windows 7Chrome 41.0.2272.101

Re: Обновление данных

Tanya пишет:

Добрый день!

Данные загружаю из SQL Server через ODBS. В запросе выводятся данные с 2013 года.Подскажите пожалуйста как можно организовать загрузку данных, чтобы добавлялась только новая информация, чтобы каждый раз не приходилось перегружать старые периоды?

Добрый день!

Для решения указанной задачи вам необходимо организовать так называемую инкрементальную загрузку. Она используется для загрузки новых или измененных данных, при этом старые данные загружаются из QVD файлов, а новые считываются из БД и далее объединяются в единый QVD файл.

Таким образом, базовый алгоритм следующий:
1. Загрузка новых данных из БД (медленный процесс, но загружается ограниченное количество записей);
2. Загрузка старых данных из QVD файла (загрузка большого количества записей, но гораздо более быстрый процесс);
3. Создание (перезапись) QVD файла.

Пример кода:

Таблица:
SQL Select
    *
From
    [Таблица БД]
Where
    [Дата] >= [Дата последней загрузки]
;


Concatenate (Таблица)
Load
    *
From
    [QVD файл]
;


Store Таблица Into [QVD файл];

С уважением,
Олег Орлов

Неактивен

#3 2015-03-23 13:53:07

Andrey
Участник
Зарегистрирован: 2015-02-04
Сообщений: 20
Windows 7Chrome 40.0.2214.111

Re: Обновление данных

Или через 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)

Неактивен

#4 2016-02-19 20:02:01

Yulia
Участник
Зарегистрирован: 2016-01-13
Сообщений: 34
Windows XPChrome 48.0.2564.109

Re: Обновление данных

Добрый день!
у меня есть Excel-файл с данными, которые я подгружаю в приложение QlikView,
задача: обновлять/подгружать данные с заданной периодичностью, например, каждые 10 минут.

Как это лучше реализовать? Нужно ли каждый раз перезагружать все или можно тоже организовать инкрементную загрузку?
Или только через планировщик клика?

Заранее спасибо.

Редактировался Yulia (2016-03-09 15:19:13)


новичок в QlikView

Неактивен

#5 2022-09-15 20:47:08

SmithAlex
Участник
Зарегистрирован: 2022-09-15
Сообщений: 1
WindowsChrome 105.0.0.0

Re: Обновление данных

Andrey пишет:

Или через 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)?
буду очень благодарен за ответ

Неактивен

Сейчас в этой теме форумчан: 0, гостей: 1
[Bot] claudebot

Подвал форума

Под управлением FluxBB
Модифицировал Visman

[ Сгенерировано за 0.015 сек, 10 запросов выполнено - Использовано памяти: 1.5 Мбайт (Пик: 1.64 Мбайт) ]