Работа с датасетом

В этом разделе вы узнаете, как работать с датасетом:

Создать датасет

Новый датасет можно создать внутри воркбука:

  1. Откройте воркбук, в котором хотите создать датасет.
  2. В правом верхнем углу нажмите кнопку Создать и выберите Датасет.

Добавить данные

В датасет можно добавлять данные из таблиц, которые доступны в источнике, или использовать произвольный SQL-запрос в источник.

Примечание

Использование SQL-запросов доступно только для источников-БД.

  1. В датасете перейдите на вкладку Источники.

  2. На панели подключений нажмите Добавить.

    screenshot

  3. Выберите подключение к источнику данных.

  4. Добавьте данные из источника:

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

    Важно

    • Максимальное количество таблиц в одном датасете — 32.
    • Максимальное количество полей в одном датасете — 1200.

    Примечание

    • Чтобы использовать подзапросы в качестве источника, включите опцию Уровень доступа SQL запросовРазрешить подзапросы в датасетах при создании или редактировании подключения.
    • При описании датасета через SQL-запрос не поддерживаются параметры. Но вы можете использовать параметризованные запросы в QL-чартах.
    1. На панели таблиц нажмите Добавить.

      screenshot

    2. Введите Название источника и текст SQL-запроса в поле Подзапрос.

    3. Нажмите кнопку Создать.

      Пример SQL-запроса

      SQL-запрос объединяет данные из таблиц samples.MS_SalesFacts, samples.MS_Products и samples.MS_Shops и группирует их по полям Магазин и Тип продукции. Для каждой группы подсчитывается сумма продаж. При этом учитываются записи о продажах только за 2019 год:

      SELECT 
          t3.ShopName AS "Магазин",
          t2.ProductCategory AS "Тип продукции",
          COUNT(t1.OrderID) AS "Число продаж",
          SUM(t1.Price*t1.ProductCount) AS "Сумма продаж"
      FROM
          samples.MS_SalesFacts t1
          INNER JOIN samples.MS_Products t2 ON t2.ProductID=t1.ProductID
          INNER JOIN samples.MS_Shops t3 ON t3.ShopID=t1.ShopID
      WHERE
          toYear(t1.OrderDatetime)='2019' -- условие отбора продаж за указанный (2019) год
      GROUP BY "Магазин", "Тип продукции" -- группировка по Магазинам и Типу продукции
      ORDER BY "Магазин", "Тип продукции" -- сортировка по Магазинам и Типу продукции
      

Заменить подключение

Чтобы заменить подключение в датасете:

  1. В датасете перейдите на вкладку Источники.

  2. Удалите все таблицы из рабочей области.

  3. На панели подключений нажмите значок у подключения и выберите Заменить подключение.

    screenshot

  4. Выберите другое подключение.

  5. Перетащите на рабочую область таблицы, которые будут источником данных для датасета.

  6. Отредактируйте или удалите вычисляемые поля, в которых используются поля, отсутствующие в новой таблице.

  7. В правом верхнем углу нажмите кнопку Сохранить.

Примечание

Если схема данных в источнике поменялась, обновите поля датасета.

Данные из таблиц источника можно объединять.

Примечание

При объединении данных из нескольких таблиц в датасете появляются дубликаты полей, по которым устанавливается связь. Их можно удалить вручную из списка полей датасета. Также можно описать датасет с помощью SQL-запроса, исключив в нем повторы полей в результирующем наборе.

  1. В датасете перейдите на вкладку Источники.

  2. Нажмите на изображение связи между таблицами.

    screenshot

  3. Выберите тип связи: inner, left, right или full.

    screenshot

  4. Выберите поля для связи между таблицами. Установить связь можно только по полям с одним и тем же типом данных. Информацию о типе данных поля DataLens получает непосредственно из подключения. Если вам нужно объединить таблицы по полям с разным типом данных, воспользуйтесь одним из вариантов:

    • Приведите поля к одному типу данных на уровне источника.

    • Опишите датасет через SQL-запрос. Для преобразования типа данных используйте функции CAST или CONVERT. Например:

      SELECT * FROM lead INNER JOIN user ON lead.assigned_by_id = CONVERT(user.external_id, CHAR)
      
  5. При необходимости добавьте связь между таблицами по другим полям. Для этого нажмите кнопку Добавить связь.

  6. (опционально) Отключите опцию Оптимизировать связь, чтобы сделать связь обязательной. В этом случае операция объединения (оператор JOIN) будет выполняться, даже если выбираются поля только из одной таблицы.

  7. Нажмите кнопку Применить.

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

screenshot

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

screenshot

Примечание

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

Создать поля

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

  1. В датасете перейдите на вкладку Поля.

  2. В верхней части экрана нажмите кнопку Добавить поле.

    screenshot

  3. Создайте поле:

    1. Введите название поля.

    2. Введите формулу для вычисления значения поля, используя функции источника данных.

    3. (опционально) Включите опцию Не показывать в визарде, чтобы скрыть поле в визарде при создании чарта.

    4. Нажмите кнопку Создать. Поле отобразится в датасете.

      screenshot

    1. Введите название поля.

    2. Перейдите на вкладку Поле из источника.

    3. Укажите параметры поля:

      • ID поля. Идентификатор создаваемого поля, который используется для передачи параметров фильтрации по этому полю на дашборде или URL чарта. Допускается использовать латинские буквы в нижнем регистре, а также символы _ и -.
      • Источник. Таблица в источнике данных, которая содержит нужное поле.
      • Поле источника. Поле из выбранной таблицы в источнике данных.
      • Тип поля. Тип данных поля.
      • Агрегация. Функция агрегации, которая применяется к полю.
    4. (опционально) Включите опцию Не показывать в визарде, чтобы скрыть поле в визарде при создании чарта.

    5. Нажмите кнопку Создать. Поле отобразится в датасете.

      screenshot

Настроить поля

С полями датасета можно выполнять следующие действия:

  1. Изменить имя. Чтобы изменить имя поля, нажмите на текущее имя и введите новое.

  2. Изменить источник. Если схема таблиц в источнике изменилась, вы можете выбрать новое поле в источнике, которое будет соответствовать полю датасета.

  3. Изменить тип данных поля. Тип данных определяет, как данные будут обрабатываться и какие функции можно применять к полю. Чтобы изменить тип данных, нажмите на текущий тип и выберите новый из списка доступных типов.

  4. Выбрать тип агрегации. Тип агрегации определяет функцию агрегации, которая будет применена к полю. Чтобы изменить тип агрегации, нажмите на текущий тип и выберите новый из списка доступных типов агрегации.

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

  6. Добавить описание. Пояснение к полю можно добавить в столбце Описание. Это может помочь другим пользователям понять назначение поля или логику его расчета.

  7. Скрыть. Вы можете скрыть поля, которые не нужны в данный момент. Другие пользователи не увидят их в визарде при создании чарта. Для этого нажмите значок .

    screenshot

Обновить поля

Обновление полей необходимо, если вы изменили схему таблицы (или таблиц) в источнике данных или удалили поля из датасета вручную.

Чтобы обновить поля в датасете:

  1. В датасете перейдите на вкладку Поля.

  2. В верхней части экрана нажмите кнопку Обновить поля.

    • Если поле отсутствует в датасете, но присутствует в источнике данных, оно появится в списке.
    • Если поле есть и в датасете, и в источнике данных, оно обновится (например, изменится тип).
    • Если поле присутствует в датасете, но отсутствует в источнике данных, оно будет помечено красным. Удалите его из датасета или замените другим полем из источника.

    screenshot

  3. В правом верхнем углу нажмите кнопку Сохранить.

Заменить поля

Если поле было удалено из источника данных, то при обновлении датасета такое поле не обновится. Чарты с таким полем будут отображаться с ошибкой ERR.DS_API.FORMULA.UNKNOWN_SOURCE_COLUMN. Вы можете удалить это поле из чарта или заменить источник для него в датасете.

Чтобы заменить источник поля в датасете:

  1. На панели слева нажмите Датасеты и выберите нужный датасет.

  2. В левом верхнем углу переключитесь на вкладку Поля.

  3. В датасете выберите поле, которое хотите заменить.

  4. Перейдите к столбцу Источник поля.

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

    screenshot

  6. Нажмите кнопку Сохранить.

Добавить параметры

В вычисляемых полях датасета можно использовать параметры.

Примечание

Параметры, добавленные на уровне датасета, доступны во всех чартах, созданных над этим датасетом.

  1. В датасете перейдите на вкладку Параметры.

  2. Нажмите кнопку Добавить.

  3. В окне Добавление параметра введите:

    • Название. Задает название параметра.
    • Тип. Тип данных параметра.
    • Значение по умолчанию. Заполняется обязательно. Используется в случаях, когда значение параметра не определено на дашборде, в URL чарта или в настройках самого чарта.
  4. Нажмите кнопку Добавить.

Также вы можете создать параметры на уровне чарта.

Добавить фильтры

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

  1. В датасете перейдите на вкладку Фильтрация.
  2. Нажмите кнопку Добавить.
  3. Выберите поле, к которому будет применен фильтр.
  4. Задайте условие для фильтрации.
  5. В правом нижнем углу нажмите кнопку Применить фильтр.

Примечание

Фильтры по умолчанию не применяются к данным в области предпросмотра датасета.

Удалить датасет

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

Чтобы удалить датасет:

  1. Вверху датасета нажмите Удалить.
  2. Нажмите кнопку Удалить.

См. также