Привет!
Задался другим интересным вопросом. А можно ли аддитивно складывать данные в один файл QVD? Есть ли аналог операции INSERT INTO в QlikView? Может есть параметр, который позволяет добавлять строчки в уже существующий файл QVD?
Похоже "печалька" - http://stackoverflow.com/questions/25521936/storing-multiple-tables-into-a-qvd-in-qlikview (http://stackoverflow.com/questions/25521936/storing-multiple-tables-into-a-qvd-in-qlikview)
You cannot store more than one distinct table into a QVD file. The reason for this, is that the QVD format only stores the memory "image" of a single table and as such does not include metadata for any links to other tables.
Therefore, if you wish to store multiple tables in a QVD file you must either:
- Store them as separate QVDs
- Combine them into a single table (e.g. via JOINs, applymap etc.) and then store the table into a QVD file.
Вот тыж блин :(
Ну как бы это не проблема, смотрим про инкрементальную загрузку.
Все через память, но это даже удобно становится.
таблица:
Load таблица1
concatenate Load ТакаяЖеКакТаблица1
store * from таблица into таблица1
Я наоборот, разделяю свои данные по годам.
В общем, протестировал загрузку из QVD во внутреннюю таблицу и обратно. Очень быстро работает, а именно загрузка из QVD в клик => 106 млн строк за 23 секунды.
Сохранение таблицы в QVD за ~ 18 секунд.
Для сравнения - из csv в QlikView 9,5 млн строк грузится за 23 секунды. Т.е. получается, что QlikView со своим форматом данных работает быстрее в 10 раз, чем с csv файлами.
Вывод: приведенная схема (код) будет быстро работать на большом объеме данных. :)
PS: картинка по загрузке 202 млн строк (1 минута)
(https://qliksense-forum.ru/qvf/proxy.php?request=http%3A%2F%2Ffunkyimg.com%2Fi%2F21TGC.png&hash=9cda074e76fc814f4b0e72fd697af14fd352b18c)
Перекачка данных из одной внутренней таблицы в другую (при использовании NoConcatenate) в размере тех же 202 млн строк проходит за 1 минуту 26 секунд (т.е. приблизительно в 1.5 раза медленней).
***********************
Еще данные можно сохранять в csv формате (разделителем будет по умолчанию запятая):
STORE OneTable INTO 'C:\Projects\QlikView\2.QVD\OneTable.csv' (txt);
А все-таки, какой есть способ дополнять QVD file? Нет возможности джойнить таблицы, т.к. упираюсь в память.
Цитата: Иван от 09 сентября 2015, 08:29:05
Похоже "печалька" - http://stackoverflow.com/questions/25521936/storing-multiple-tables-into-a-qvd-in-qlikview (http://stackoverflow.com/questions/25521936/storing-multiple-tables-into-a-qvd-in-qlikview)
You cannot store more than one distinct table into a QVD file. The reason for this, is that the QVD format only stores the memory "image" of a single table and as such does not include metadata for any links to other tables.
Therefore, if you wish to store multiple tables in a QVD file you must either:
- Store them as separate QVDs
- Combine them into a single table (e.g. via JOINs, applymap etc.) and then store the table into a QVD file.
Вот тыж блин :(
Привет.
Делите файлы по периодам. Грузите по маске.