Загрузка данных из ранее загруженной таблицы
Существует два способа загрузки и преобразования данных из ранее загруженной таблицы.
- Resident LOAD — где для загрузки новой таблицы используется логическое условие Resident с последующим оператором LOAD.
- Предшествующий оператор load — где загрузка выполняется из предшествующего оператора LOAD или SELECT без указания источника.
Элемент Resident или предшествующий элемент LOAD?
В большинстве случаев с помощью обоих методов можно добиться одного и того же результата. Использование предшествующего оператора LOAD является более быстрым методом, но в некоторых случаях предпочтительнее использовать Resident LOAD:
- В случае необходимости использования предложения Order_by для сортировки записей перед обработкой оператора LOAD.
- В случае необходимости использования одного из следующих префиксов предшествующий элемент LOAD не поддерживается:
- Crosstable
- Join
- Intervalmatch
Resident LOAD
Можно использовать логическое условие Resident в операторе LOAD, чтобы загрузить данные из ранее загруженной таблицы. Это удобно, когда необходимо выполнить вычисления с данными, загруженными с помощью оператора SELECT, когда нет возможности использовать функции Qlik Sense, такие как обработка даты или числовых значений.
Пример:
В этом примере интерпретация даты выполняется в загрузке Resident, поскольку ее выполнение в исходной загрузке Crosstable LOAD невозможно.
Предшествующий оператор Load
Операция предшествующей загрузки позволяет загружать таблицу одной операцией, но при этом определяет несколько последующих преобразований. По существу, именно оператор LOAD выполняет загрузку из нижеуказанных операторов LOAD или SELECT, не указывая классификатор источника, такой как From или Resident, который обычно указывается. Таким образом, можно выстроить в столбик любое количество операторов LOAD. Сначала будет оценен самый нижний оператор, затем оператор над ним и так до самого верхнего оператора.
Тот же результат можно достичь с помощью оператора Resident, но в большинстве случаев с предшествующим оператором LOAD это будет быстрее.
Еще одним преимуществом предшествующего оператора load является возможность хранить вычисление в одном месте и использовать его в операторах LOAD, размещенных выше.
Пример 1: Преобразование данных, загруженных оператором SELECT
В случае загрузки данных из базы данных с помощью оператора SELECT нельзя использовать функции Qlik Sense для интерпретации данных в операторе SELECT. В таком случае необходимо добавить оператор LOAD, в котором выполняется преобразование данных, над оператором SELECT.
В этом примере интерпретируется дата, сохраненная в виде строки с помощью функции Qlik Sense Date# в операторе LOAD. При этом предшествующий оператор SELECT используется в качестве исходного.
Пример 2: Упрощение скрипта с помощью многократного использования вычислений
В этом примере вычисление в скрипте используется несколько раз:
Использовав это вычисление однажды, его можно использовать повторно в функции Age в предшествующем операторе LOAD:
Ограничения предшествующих загрузок
- Следующие префиксы невозможно использовать вместе с предшествующим оператором LOAD: Join, Crosstable и Intervalmatch.
- При использовании distinct для загрузки уникальных записей поместите distinct в первый оператор LOAD, так как distinct затрагивает только таблицу назначения.