Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Ноябрь 25, 2017, 03:08:02 am

Автор Тема: Накопление данных в QVD файле (свойство аддитивности, Qlikview)  (Прочитано 1657 раз)

Оффлайн Иван

  • Наставник
  • **
  • Сообщений: 62
  • Страна: ru
  • Рейтинг: +13/-0
    • Просмотр профиля
    • Теория и практика QlikView
Привет!

Задался другим интересным вопросом. А можно ли аддитивно складывать данные в один файл QVD? Есть ли аналог операции INSERT INTO в QlikView? Может есть параметр, который позволяет добавлять строчки в уже существующий файл QVD?
Бизнес-анализ, http://iiba.ru
Теория и практика QlikView, http://ivan-shamaev.ru/qlikview-theory-and-practic

Оффлайн Иван

  • Наставник
  • **
  • Сообщений: 62
  • Страна: ru
  • Рейтинг: +13/-0
    • Просмотр профиля
    • Теория и практика 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.

Вот тыж блин  :(
Бизнес-анализ, http://iiba.ru
Теория и практика QlikView, http://ivan-shamaev.ru/qlikview-theory-and-practic

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 983
  • Страна: ru
  • Рейтинг: +97/-0
    • Просмотр профиля
Ну как бы это не проблема, смотрим про инкрементальную загрузку.
Все через память, но это даже удобно становится.
таблица:
Load таблица1
concatenate Load ТакаяЖеКакТаблица1
store * from таблица into таблица1

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

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


Оффлайн Иван

  • Наставник
  • **
  • Сообщений: 62
  • Страна: ru
  • Рейтинг: +13/-0
    • Просмотр профиля
    • Теория и практика QlikView
В общем, протестировал загрузку из 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);
Бизнес-анализ, http://iiba.ru
Теория и практика QlikView, http://ivan-shamaev.ru/qlikview-theory-and-practic

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 59
  • Страна: ru
  • Рейтинг: +6/-0
    • Просмотр профиля
А все-таки, какой есть способ дополнять QVD file?  Нет возможности джойнить таблицы, т.к. упираюсь в память.

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

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 983
  • Страна: ru
  • Рейтинг: +97/-0
    • Просмотр профиля
Привет.
Делите файлы по периодам. Грузите по маске.