Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Выборочная загрузка только измененных файлов

Всем здравствуйте!

Подскажите, пожалуйста, как лучше организовать загрузку данных.

Схема следующая: есть файлы отчетов в excel, каждый файл отчета содержит данные за год. Приложение должно содержать актуальные данные из файлов с 2010 по 2015 год. Сейчас приложение каждый раз загружает данные из указанных файлов excel в цикле с 2010 по 2015 год, что естественно занимает достаточно продолжительное время. Поэтому появилась идея сократить время загрузки за счет использования qvd и выборочной перезагрузки только измененных файлов excel. Данные в этих файлах могут быть изменены в любой момент и за любой период. Буквально сегодня могут быть изменены данные за 2014 год, поэтому я не могу один раз загрузить полностью все файлы, а потом каждый раз перезагружать, к примеру, только текущий год.

Посоветуйте, пожалуйста, как наиболее рационально поступить в данном случае. Как определить файл, данные в котором были изменены и грузить именно его? А возможно, нужно идти совсем в другом направлении?

Спасибо!

2 Replies
Eugeny_Ilyin
Creator II
Creator II

Добрый день.
Собственно Вы уже сами начали отвечать на свой вопрос.
Если использовать Эксель-файлы, то как можно определить, какой из них был обновлен?
Либо использовать какой-то макрос, регистрирующие изменения в отдельную "флаговую" таблицу.
Либо макрос, регистрирующий время изменения записи в отдельном поле, по которому затем и можно будет определять время изменения записи.

Основная идея в том, чтобы иметь какой-то источник информации о том, какие записи были изменены и когда.

А какой именно способ выбрать - это уже от возможностей и используемых инструментов.

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

Также можно почитать здесь и в документации про инкрементальную загрузку.

Anna_Klimkova
Employee
Employee

Добрый вечер, Нина!

Можете попробовать сравнивать время изменения файла Excel и соответствующего файла qvd с помощью функции filetime('путь и имя файла'),

например:

let vEditTime = filetime( 'SiB\StoreMap.qvd' );

let vEditTimeXls = filetime( '..\..\..\SiB\\New\StoreMap.xlsx' );

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