Как не удивительно, но иногда для новичка загрузка данных в Qlik – не простая задача. Есть ряд типичных ошибок, которых можно легко избежать, поэтому ниже перечислю наиболее типичные из ошибок загрузки данных в скрипте Qlikview и расскажу, как их решить.

1. Управление запятыми

Предыстория:           Написал комментарии к полям.

Вероятная причина:      Забыл удалить запятую там, где сейчас находится последнее поле

Это очень частая ошибка. Понять, что причина ошибки именно в этом можно из сообщения об ошибке скрипта. Нам нужны запятые между именами полей в списке, а после последнего поля запятую мы удаляем.

Qlik Script Editor Errors

Qlik Script Editor Errors

Несмотря на удаленную запятую, нам все еще будет нужна точка с запятой.

Qlik Script Editor Errors

НА ЗАМЕТКУ! Изучите основные правила синтаксиса скрипта, где ставится двоеточие, точка с запятой, кавычки и запятые.

2. Пропущена директория QVD

Предыстория:           У меня нет описания ошибки или написано «Невозможно открыть файл корректно…»

Вероятная причина: Ссылка на несуществующую директорию с файлом.

Эта ошибка в скрипте QlikView, как правило, возникает, если мы пытаемся сохранить файл QVD в папку, которой не существует. Всегда создавайте папку для QVD, прежде чем запускать эту команду в скрипте QlikView.

Qlik Script Editor Errors

Qlik Script Editor Errors

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

3. Забыл добавить дополнительные таблицы

Предыстория:       Почему у меня вдруг появились синтетические ключи?

Вероятная причина: Не перетащил таблицы с помощью resident load.

Существует много случаев, когда нам нужно загрузить таблицу уже из ранее загруженных таблиц. Если мы добавили в новой таблице такие поля, которые хоть немного отличаются от предшествующих, то система не свяжет их между собой. Скорее всего, именно поэтому будет создан новый и длинный синтетический ключ. Если это похоже на ваш случай, то с большой вероятностью вы забыли добавить в скрипт первоначальную таблицу.

Qlik Script Editor Errors

Вот наш скрипт. Ничего ли мы не забыли? Отметьте, что у нас появился синтетический ключ, который нам и не нужен.

Qlik Script Editor Errors

Обновленный скрипт содержит выражение, чтобы удалить оригинальную таблицу, после чего лишние синтетические ключи будут удалены.

Qlik Script Editor Errors

4. Таблицы не объединились

Предыстория:    Я потерял новую версию таблицы.

Вероятная причина:      Автоматическое объединение в процессе resident load.

Эта ошибка связана с первой вариантом ошибки работы с resident load, описанным выше. В этом же случае возникает вопрос – что случилось с моей таблице: нет ни старой, ни новой таблицы?

Все, что нам нужно помнить в этом случай, так это то, что Qlik загружает новую таблицу, которая содержит те же поля, что предыдущая. Новая таблица будет объединена со старой. Если мы добавим выражение noconcatenate, то мы решим возникшую проблему, сообщив Qlik-у, что нам не нужно объединять таблицы.

Qlik Script Editor Errors

Простое добавление noconcatenate решит возникшую проблему:

Qlik Script Editor Errors

5. Перекрестное соединение таблиц

Предыстория:        Перезагрузка данных зависла.

Вероятная причина:      Объединение без ключей.

Когда у меня впервые возникла такая ошибка, то я и не знал, что делать. Выполнение скрипта зависло и все, ничего не работает, а выполнение скрипта висело уже пять минут и ничего не менялось, что очень не похоже на QlikView. Что в это время делал Qlik? Система старательно пыталась найти связи между таблицами.

Поэтому, используя join, убедитесь, что Qlik, действительно, найдет поля с одинаковым названием и сможет объединить их. Если же поля не совпадают, то Qlik начнет связывать каждую строку одной таблицы с каждой строкой другой таблицы, что, конечно, приведет к подвисанию скрипта.

Итак, у нас была таблица 1: 100,000 строк, таблица 2: 5,000 строк

Итоговая объединенная таблица: 500,000,000

Qlik Script Editor Errors

Qlik объединил каждую строку одной таблицы с другой.

Qlik Script Editor Errors

Обратите внимание, что поля не имеют идентичного названия.

Qlik Script Editor Errors

В этой случае у нас получилась таблица с 40 млн. строк (20,000 x 20,000)

Qlik Script Editor Errors

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

6. Повторение фактов после объединения

Предыстория: Моя объединенная таблица имеет больше записей, чем я запустил.

Вероятная причина:  Повторяющиеся ключи

Представим ситуацию, что нам нужно объединить две таблицы. В случае если в таблице есть повторы, итоговая таблица будет иметь эти повторы. Для решения этой задачи стоит использовать функцию lastvalue с group by, чтобы убедиться, что нужное поле будет использоваться только один раз ID. Для того чтобы убедиться в корректности объединения строк, смотрите в обзоре таблиц, сколько строк было и стало после объединения.

Qlik Script Editor Errors

Это типичное объединение таблиц, но здесь есть и одна проблема.

Qlik Script Editor Errors

У нас должно получиться только 19 транзакций, но поскольку в данных Customer ID повторяется, у нас получилось 26 строк.

Qlik Script Editor Errors

А вот уже откорректированный код.

Qlik Script Editor Errors

Теперь мы вернулись к 19 строкам.

Qlik Script Editor Errors

На этом все на сегодня. Практичных вам разработок с Qlik!