Перейти к основному содержимому Перейти к дополнительному содержимому

Преобразование данных

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

Одним из преимуществ в управлении данными является возможность выбрать только загрузку подмножества данных из файла, например нескольких выбранных столбцов из таблицы, чтобы обработка данных выполнялась более эффективно. Данные можно загрузить несколько раз, чтобы разбить необработанные данные на несколько новых логических таблиц. Также можно загрузить данные из нескольких источников и объединить их в одной таблице в программе Qlik Sense.

В этом разделе справки будут выполнены некоторые основные преобразования данных с помощью оператора Resident load, а затем оператора Preceding load.

Resident LOAD

Можно использовать классификатор источника Resident в операторе LOAD, чтобы загрузить данные из ранее загруженной таблицы. Это также удобно, когда необходимо выполнить вычисления с данными, загруженными с помощью оператора SELECT, когда нет возможности использовать функции Qlik Sense, такие как обработка даты или числовых значений.

В этом примере вы создадите новую таблицу с именем Sales_Buckets, а затем загрузите данные из таблицы Table1 с помощью резидентной загрузки. В таблице Sales_Buckets вы создадите переменную с именем quantity_threshold, а затем воспользуетесь оператором Where, чтобы загрузить только данные, удовлетворяющие этому пороговому значению.

  1. Откройте редактор загрузки данных в приложении Scripting Tutorial.
  2. Щелкните вкладку Sales.
  3. Добавьте следующее выражение в конец скрипта:
  4. SET quantity_threshold = 12000;
    
    					Sales_Buckets:
    					LOAD
    					"Sales Qty" as "High_Quantity",
    					"Item Description" as "Item",
    					"Customer Number" as "Customer"
    					Resident Table1
    					Where ("Sales Qty" > $(quantity_threshold));
    				

    Скрипт должен выглядеть следующим образом:

    Окно скрипта загрузки со скриптом для создания новой таблицы с именем Sales_Buckets

    Окно скрипта загрузки со скриптом для создания новой таблицы с именем Sales_Buckets.
  5. Щелкните команду Загрузить данные.
  6. Откройте раздел Просмотр модели данных. Можно увидеть, что создана новая таблица с именем Sales_Buckets, содержащая данные, загруженные в соответствии с указанными вами полями и заданным вами пороговым значением.
  7. Таблица Sales_Buckets в просмотре модели данных

    Таблица Sales_Buckets в просмотре модели данных.
  8. Добавьте данные в таблицу в приложении. Добавьте Item и Customer в качестве измерений. Добавьте High-Quantity в качестве меры, агрегированной по Count, а затем снова агрегированной по Sum. Затем добавьте новый столбец в качестве меры со следующей формулой:
  9. = Sum(High_Quantity) / Count(High_Quantity)

    Новая мера в формулой

    Новая мера в формулой.

    В вашей таблице, например, показано, что клиент Customer 10025737 сделал 4 больших заказа Качественных сушеных грибов со средним количеством 14 800. Чтобы выполнить сортировку данных в этих полях, закройте режим изменения, щелкнув элемент Готов.

    Таблица, отображающая клиентов, сделавших большие заказы

    Таблица, отображающая клиентов, сделавших большие заказы.
  10. Теперь, когда мы завершили этот пример, закомментируйте скрипт для переменной quantity_threshold и таблицы Sales_Buckets.
  11. Конец скрипта должен выглядеть теперь следующим образом:

    Закомментированный скрипт

    Закомментированный скрипт.

Предшествующий оператор LOAD

Предшествующий оператор load позволяет выполнять преобразования и применять фильтры таким образом, чтобы загрузка данных осуществлялась за один проход. По существу, именно оператор LOAD выполняет загрузку из нижеуказанных операторов LOAD или SELECT, не указывая классификатор источника, такой как From или Resident, который обычно указывается. Таким образом, можно выстроить стопкой любое количество операторов LOAD. Сначала будет оценен самый нижний оператор, затем оператор над ним и так до самого верхнего оператора.

Как отмечалось ранее в этом учебном пособии, данные в Qlik Sense можно загружать с помощью операторов LOAD и SELECT. Каждый из них создает внутреннюю таблицу. Оператор LOAD используется для загрузки данных из файлов или из встроенной таблицы, тогда как оператор SELECT используется для загрузки данных из баз данных. В этом учебном пособии вы использовали данные из файлов. В этом примере будет использоваться встроенная таблица. Однако следует отметить, что предшествующий оператор load может быть использован выше оператора SELECT для изменения данных. Основания для этого являются такими же, как вы увидите при использовании оператора LOAD.

Данный пример не относится к данным, которые мы загружаем в этом учебном пособии. Он используется только в качестве примера того, как выглядит предшествующий оператор load. Вы создадите встроенную таблицу редактора загрузки данных с именем Transactions. Интерпретация даты будет выполнена в предшествующем операторе LOAD, где будет создано новое поле с именем transaction_date. Это поле создается из поля sale_date.

  1. Создайте новое приложение и назовите его ReformatDate.
  2. Откройте редактор загрузки данных, а затем создайте новую вкладку с именем TransactionData.
  3. Добавьте следующий скрипт:
  4. Transactions: 
    Load *,
    Date(Date#(sale_date,'YYYYMMDD'),'DD/MM/YYYY') as transaction_date;
    Load * Inline [ transaction_id, sale_date, transaction_amount, transaction_quantity, customer_id, size, color_code 
    3750, 20180830, 23.56, 2, 2038593, L, Red 
    3751, 20180907, 556.31, 6, 203521, m, orange 
    3752, 20180916, 5.75, 1, 5646471, S, blue 
    3753, 20180922, 125.00, 7, 3036491, l, Black 
    3754, 20180922, 484.21, 13, 049681, xs, Red 
    3756, 20180922, 59.18, 2, 2038593, M, Blue 
    3757, 20180923, 177.42, 21, 203521, XL, Black ];

    Скрипт должен выглядеть следующим образом:

    Загрузите скрипт с предшествующим оператором load

    Скрипт загрузки с предшествующим оператором load.
  5. Щелкните команду Загрузить данные.
  6. Откройте раздел Просмотр модели данных. Выберите и разверните таблицу Transactions. Можно увидеть, что все поля были загружены, как указано символом «*» в предшествующем операторе load. Было создано новое поле с именем transaction_date. В данном поле имеется преобразованная дата.
  7. Новое поле с именем transaction_date в просмотре модели данных

    Новое поле с именем transaction_date в просмотре модели данных.

Помогла ли вам эта страница?

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