# Представление о синтаксисе скрипта и структурах данных

## Извлечение, преобразование и загрузка

В целом способ загрузки данных в приложение можно объяснить с помощью процессов извлечения, преобразования и загрузки:

* Извлечение

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

  * SELECT используется для выбора данных из источника данных ODBC или поставщика OLE DB. Оператор SELECT SQL выполняется поставщиком данных, а не программой Qlik Sense.
  * Оператор LOAD используется для загрузки данных из файла, из данных, определенных в скрипте, из ранее загруженной таблицы, с веб-страницы, из результата последующего оператора SELECT или путем автоматической генерации данных.

* Преобразование

  Этап преобразования включает в себя работу с данными с помощью функций скрипта программы и правил извлечения необходимой структуры модели данных. Типичные операции:

  * Вычисление новых значений
  * Перевод закодированных значений
  * Переименование полей
  * Соединение таблиц
  * Агрегирование значений
  * Сведение
  * Проверка корректности данных

* Загрузка

  На последнем этапе скрипт запускается для загрузки определенной модели данных в приложение.

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

* центральная таблица фактов, содержащая ключи к измерениям и числа, используемые для вычисления мер (например, количество делений, объемы продаж и сметные суммы);
* окружающие таблицы, содержащие измерения со всеми атрибутами (например, продукты, клиенты, категории, календарь и поставщики).

Примечание к информацииВо многих случаях можно решить задачу, например, для агрегирования, путем построения более емкой модели данных в скрипте загрузки или выполнения агрегирований в выражениях диаграмм. Как правило, производительность будет выше, если функции преобразования данных хранятся в скрипте загрузки.

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

## Операторы загрузки данных

Для загрузки данных используются операторы LOAD или SELECT. Каждый из них создает внутреннюю таблицу. Таблица всегда отображается как список данных, каждая запись (строка) в которой является новым экземпляром типа объекта, а каждое поле (столбец) — специальным атрибутом или свойством объекта.

Различия между этими операторами заключаются в следующем:

* SELECT используется для выбора данных из источника данных ODBC или поставщика OLE DB. Оператор SELECT SQL выполняется поставщиком данных, а не программой Qlik Sense.
* Оператор LOAD используется для загрузки данных из файла, из данных, определенных в скрипте, из ранее загруженной таблицы, с веб-страницы, из результата последующего оператора SELECT или путем автоматической генерации данных.

### Правила

При загрузке данных в программу Qlik Sense применяются следующие правила:

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

## Выполнение скрипта

Примерный порядок событий для стандартных операторов LOAD или SELECT показан ниже:

1. Расчет выражений.
2. Изменение имен полей с помощью оператора as.
3. Изменение имен полей с помощью оператора alias.
4. Уточнение имен полей.
5. Сопоставление данных, если совпадает имя поля.
6. Сохранение данных во внутренней таблице.

СОПУТСТВУЮЩИЕ УЧЕБНЫЕ МАТЕРИАЛЫ:

* [Связывание таблиц и преобразование данных](https://help.qlik.com/lnk/Assoc_tables_transform_data_QS)

## Подробнее

* [Связывание таблиц и преобразование данных](https://help.qlik.com/lnk/Assoc_tables_transform_data_QS)