Соединение (Join)

При работе с данными может возникнуть необходимость объединить две таблицы в одну новую таблицу.

Допустим, есть такие таблицы:

Таблица A: содержит имена студентов и их оценки по английскому языку.

Таблица B: содержит имена студентов и их оценки по математике.

Если вы хотите видеть имена студентов, оценки по математике и английскому в одной таблице, выполните соединение по полю Имя в качестве основы слияния.

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

Если вы знакомы с SQL, функция Join аналогична одноимённой операции в SQL.

Если вам больше знакомы VLOOKUP и SUMIF в Excel, посмотрите функцию добавления столбцов из других таблиц.

Для выполнения Join на данных с прямым соединением обе таблицы должны быть из одного источника данных; в режиме извлечения можно соединять таблицы из разных источников.

Если попытаться объединить таблицы из разных источников, появится сообщение: "[DIRECT-ETL] unsupported data source: databases on different hosts/ports".

В режиме прямого соединения только некоторые базы данных поддерживают объединение с таблицами Excel.

Объединение полей из таблиц Продажи и Магазины для анализа.

Создайте рабочую книгу и добавьте данные.

  1. Выполнить Join можно нажав на + -> Соединить, как показано на рисунке.

  1. Выберите таблицу Магазины для объединения и отметьте все поля, принимающие участие в операции Join.

  1. В качестве режима слияния выберите левое соединение (режимы слияния соответствуют джойнам в SQL) и укажите Номер магазина как основу для слияния.

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

Поля обеих таблиц объединяются в одну таблицу. Используемые для объединения поля совмещаются в одно поле (например, два поля Номер магазина превращаются в одно).

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

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

Перед непосредственным объединением таблиц через Join можно обработать поля-основания с помощью Создать вычисление для объединения.

Ситуация: поля-основания разных типов или имеют различные значения. Для изменения типа данных используйте функцию сводный расчет.

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

Если в исходных данных поля-основания содержат null-значения, при Join они совпадать не будут. Если требуется учитывать и null, предварительно присвойте им, например, значение 0.

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

Система предупредит о наличии дублей в основаниях.

Для надёжности система автоматически остановит обновление рабочих наборов, если после Full Join:

объём данных > 10 миллионов, коэффициент расширения ≥ 5 (min(объём после Join/объём левой таблицы, объём после Join/объём правой таблицы)).

При возникновении декартова произведения вы увидите уведомления:

"Successful Dataset Generation: Обнаружено декартово произведение..." (увеличено время обработки, проверьте столбцы на дубли) "Dataset Generation Error: Обнаружено декартово произведение..." (данные сильно увеличились, выполнение остановлено, проверьте основания Join на количество дублей)

Если необходимо выполнить анализ даже при N : N связях, сократите данные фильтрацией для предотвращения прерывания работы.

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