Накопление данных в QVD файле (свойство аддитивности, Qlikview)

Автор Иван, сентября 09, 2015, 08:14:36 am

« предыдущая - следующая »

Иван

сентября 09, 2015, 08:14:36 am Последнее редактирование: сентября 11, 2015, 01:29:31 pm от admin
Привет!

Задался другим интересным вопросом. А можно ли аддитивно складывать данные в один файл QVD? Есть ли аналог операции INSERT INTO в QlikView? Может есть параметр, который позволяет добавлять строчки в уже существующий файл QVD?

Иван

Похоже "печалька" - 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.



Вот тыж блин  :(

admin

Ну как бы это не проблема, смотрим про инкрементальную загрузку.
Все через память, но это даже удобно становится.
таблица:
Load таблица1
concatenate Load ТакаяЖеКакТаблица1
store * from таблица into таблица1

Я наоборот, разделяю свои данные по годам.

Иван

сентября 09, 2015, 09:38:48 am #3 Последнее редактирование: сентября 09, 2015, 10:22:34 am от Иван
В общем, протестировал загрузку из QVD во внутреннюю таблицу и обратно. Очень быстро работает, а именно загрузка из QVD в клик => 106 млн строк за 23 секунды.
Сохранение таблицы в QVD за ~ 18 секунд.

Для сравнения - из csv в QlikView 9,5 млн строк грузится за 23 секунды. Т.е. получается, что QlikView со своим форматом данных работает быстрее в 10 раз, чем с csv файлами.

Вывод: приведенная схема (код) будет быстро работать на большом объеме данных.  :)

PS: картинка по загрузке 202 млн строк (1 минута)


Перекачка данных из одной внутренней таблицы в другую (при использовании NoConcatenate) в размере тех же 202 млн строк проходит за 1 минуту 26 секунд (т.е. приблизительно в 1.5 раза медленней).

***********************
Еще данные можно сохранять в csv формате (разделителем будет по умолчанию запятая):
STORE OneTable INTO 'C:\Projects\QlikView\2.QVD\OneTable.csv' (txt);

LoryMax

А все-таки, какой есть способ дополнять QVD file?  Нет возможности джойнить таблицы, т.к. упираюсь в память.

Цитата: Иван от сентября 09, 2015, 08:29:05 am
Похоже "печалька" - 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.



Вот тыж блин  :(

admin

Привет.
Делите файлы по периодам. Грузите по маске.

Рейтинг@Mail.ru Яндекс.Метрика