Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex DataLens
    • Обзор
    • Кеширование
    • Объединение данных
  • Аудитные логи Audit Trails

В этой статье:

  • Способы объединения данных
  • На уровне датасета
  • На уровне чарта
  • На уровне связей селекторов
  • Оптимизация данных при объединении таблиц
  • Примеры
  1. Подключения
  2. Объединение данных

Объединение данных Yandex DataLens

Статья создана
Yandex Cloud
Обновлена 15 ноября 2024 г.
  • Способы объединения данных
    • На уровне датасета
    • На уровне чарта
    • На уровне связей селекторов
  • Оптимизация данных при объединении таблиц
    • Примеры

Yandex DataLens использует подключение, чтобы получить данные из источника (БД, CSV, Metrica и т.д.). На основе предоставленных подключением данных можно создавать датасеты, чарты и селекторы. Если в источнике доступно несколько таблиц, вы можете объединять их для получения необходимого набора данных. Связать данные из разных датасетов можно на уровне чарта или через связь селекторов.

Способы объединения данныхСпособы объединения данных

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

  • На уровне датасета

    • Добавление таблиц
    • SQL-запрос
  • На уровне чарта

    • QL-чарт
    • Мультидатасетные чарты
  • На уровне связей селекторов

На уровне датасетаНа уровне датасета

Чтобы объединить данные на уровне датасета, вы можете добавить таблицы на рабочую область или написать SQL-запрос.

Важно

Нельзя объединить данные из разных источников на уровне одного датасета.

Добавление таблицДобавление таблиц

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

Примечание

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

SQL-запросSQL-запрос

В датасете можно добавить произвольный SQL-запрос к источнику данных. Текст запроса при обращении к источнику исполняется в виде подзапроса. Результат запроса можно использовать как итоговый набор данных датасета или объединить с другими таблицами источника через интерфейс.

На уровне чартаНа уровне чарта

DataLens позволяет объединить данные на уровне чарта. Для объединения данных на уровне чарта вы можете использовать QL-чарт или мультидатасетные чарты.

QL-чартQL-чарт

QL-чарты — чарты, созданные на основе подключения, если источник подключения — БД. При выполнении SQL-запроса отдельный объект Датасет не создается, он генерируется сразу и отображается на панели превью. Подробнее см. инструкцию Создание QL-чарта.

Мультидатасетные чартыМультидатасетные чарты

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

На уровне связей селекторовНа уровне связей селекторов

Можно добавить на дашборд селектор, который влияет на результаты запросов в связанных с ним виджетах:

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

Перед созданием связи убедитесь, что поле, по которому фильтрует селектор, присутствует в датасете, по которому построен чарт. В противном случае связь работать не будет. Подробнее см. инструкцию Создание алиаса.

Оптимизация данных при объединении таблицОптимизация данных при объединении таблиц

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

Оптимизация применяется при следующих условиях:

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

Примечание

Оптимизация не работает, если датасет описан через SQL-запрос к источнику.

Рассмотрим оптимизацию на примере разных датасетов для источника с таблицами:

Сотрудники
id name department_id
1 Иванов 2
2 Петров 4
3 Сидоров 1
4 Степанов 1
5 Соколов
6 Орлова 3
7 Шишкина 3
8 Семенов
9 Антонова 3
10 Сергеев 4
Отделы
id name
1 Логистика
2 ИТ
3 Бухгалтерия
4 СБ
Премии
employee_id bonus
1 35 000
2 40 000
5 28 000
7 30 000
9 50 000
Квалификация
employee_id category
2 Категория 1
4 Категория 1
5 Категория 2
6 Категория 3
7 Категория 3
8 Категория 2
10 Категория 1

ПримерыПримеры

INNER JOIN двух таблиц

Датасет построен из таблиц Сотрудники и Отделы, объединенных оператором INNER JOIN.

image

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

image

Теперь построим чарт только с полями таблицы Сотрудники. В этом случае DataLens не применяет оператор JOIN и работает только с этой таблицей. В чарте мы видим все значения из таблицы Сотрудники, а не только те, которые пересекаются с таблицей Отделы.

image

LEFT/RIGHT JOIN двух таблиц

Датасет построен на основе таблиц Премии и Сотрудники, объединенных оператором LEFT JOIN. Таблица Премии используется целиком, а из таблицы Сотрудники выбираются только те значения, которые есть в Премии.

image

Построим чарт, содержащий поля из обеих таблиц.

image

Теперь оставим в чарте только поля из таблицы Сотрудники. В этом случае мы увидим в чарте все значения из этой таблицы (без фильтрации по таблице Премии).

image

Так же работает оптимизация и для оператора RIGHT JOIN.

INNER JOIN трех таблиц

Датасет построен на основе трех таблиц:

  • первая таблица (Отделы) объединена оператором INNER JOIN cо второй таблицей (Сотрудники);
  • вторая таблица (Сотрудники) объединена оператором INNER JOIN c третьей таблицей (Премии).

image

Построим чарт, содержащий поля из всех таблиц.

image

Теперь оставим в чарте только поля из таблицы Сотрудники. В этом случае мы увидим в чарте все значения из этой таблицы (без фильтрации по таблицам Премии и Отделы).

image

Добавим в чарт поля только из первой (Отделы) и третьей (Премии) таблицы. Явной связи между этими таблицами нет, но каждая из них связана с таблицей Сотрудники. Поэтому DataLens не оптимизирует запрос к источнику. В этом случае мы увидим в чарте значения из всех трех таблиц с учетом фильтрации.

image

INNER JOIN одной таблицы с двумя другими

Датасет построен на основе трех таблиц:

  • первая таблица (Сотрудники) объединена оператором INNER JOIN cо второй таблицей (Отделы);
  • первая таблица (Сотрудники) объединена оператором INNER JOIN c третьей таблицей (Премии).

image

Построим чарт, содержащий поля из всех таблиц.

image

Теперь оставим в чарте только поля из таблицы Сотрудники. В этом случае мы увидим в чарте все значения из этой таблицы (без фильтрации по таблицам Отделы и Премии).

image

Добавим в чарт поля только из первой (Сотрудники) и третьей (Премии) таблицы. В этом случае мы увидим в чарте общие значения из этих таблиц (без фильтрации по таблице Отделы).

image

INNER JOIN четырех таблиц

Датасет построен на основе четырех таблиц:

  • первая таблица (Квалификация) объединена оператором INNER JOIN cо второй таблицей (Премии);
  • первая таблица (Квалификация) объединена оператором INNER JOIN c третьей таблицей (Сотрудники);
  • третья таблица (Сотрудники) объединена оператором INNER JOIN c четвертой таблицей (Отделы).

image

Построим чарт, содержащий поля из всех таблиц.

image

Теперь оставим в чарте только поля из таблицы Квалификация. В этом случае мы увидим в чарте все значения из этой таблицы (без фильтрации по остальным таблицам).

image

Если использовать в чарте только пару связанных между собой таблиц (первую и вторую, первую и третью, третью и четвертую), то в чарте отобразятся общие значения из этих таблиц (без фильтрации по остальным таблицам). Например, добавим в чарт поля только из первой (Квалификация) и второй (Премии) таблицы.

image

Была ли статья полезна?

Предыдущая
Кеширование
Следующая
Создание подключения к ClickHouse®
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»