Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✅Microsoft Fabric✅✅
Узнайте, как объединить строки двух таблиц для формирования новой таблицы путем сопоставления значений указанных столбцов каждой таблицы.
язык запросов Kusto (KQL) предлагает множество типов соединений, которые влияют на схему и строки в результирующей таблице разными способами. Например, при использовании inner соединения таблица имеет те же столбцы, что и левая таблица, а также столбцы из правой таблицы. Для оптимальной производительности, если одна таблица всегда меньше другой, используйте ее в качестве левой join стороны оператора.
На следующем рисунке представлено визуальное представление операции, выполняемой каждым соединением. Цвет заливки представляет возвращаемые столбцы, а области, затеняемые, представляют возвращаемые строки.
Синтаксис
LeftTable|join [ kind=JoinFlavor ] [ Подсказки ] (RightTable)onConditions
Дополнительные сведения о соглашениях синтаксиса.
Параметры
| Имя (название) | Type | Обязательно | Описание |
|---|---|---|---|
| ЛеваяTable | string |
✔️ | Левая таблица или табличное выражение, иногда называемое внешней таблицей, строки которой необходимо объединить. Обозначается как $left. |
| JoinFlavor | string |
Тип соединения для выполнения: innerunique, innerleftouter, rightouterfullouterleftanti, , rightanti, . leftsemirightsemi Значение по умолчанию — innerunique. Дополнительные сведения о вкусах соединения см. в разделе "Возвращаемая информация". |
|
| Указания | string |
Нулевая или более разделенная пробелами подсказки соединения в виде значения имени=, который управляет поведением операции сопоставления строк и плана выполнения. Дополнительные сведения см. в разделе "Подсказки". |
|
| RightTable | string |
✔️ | Правое табличное выражение или табличное выражение, иногда называемое внутренней таблицей, строки которой необходимо объединить. Обозначается как $right. |
| Условия | string |
✔️ | Определяет, как строки из LeftTable сопоставляются с строками из RightTable. Если столбцы, которые вы хотите сопоставить, имеют одинаковое имя в обеих таблицах, используйте синтаксис ONColumnName. В противном случае используйте синтаксис ON $left.LeftColumn RightColumn==$right.. Чтобы указать несколько условий, можно использовать ключевое слово "и" или разделить их запятыми. При использовании запятых условия оцениваются с помощью логического оператора "и". |
Совет
Для повышения производительности, если одна таблица всегда меньше другой, используйте ее в качестве левой стороны соединения.
Подсказки
| Ключ подсказки | Значения | Описание |
|---|---|---|
hint.remote |
auto, , leftlocalright |
См. статью Межкластерный оператор join. |
hint.strategy=broadcast |
Указывает способ совместного использования нагрузки запроса на узлы кластера. | См. присоединение к широковещательной трансляции |
hint.shufflekey=<key> |
Запрос shufflekey использует нагрузку запроса на узлы кластера, используя ключ для секционирования данных. |
См. запрос перемешивания |
hint.strategy=shuffle |
Запрос shuffle стратегии использует нагрузку запроса на узлы кластера, где каждый узел обрабатывает одну секцию данных. |
См. запрос перемешивания |
| Имя (название) | Значения | Описание |
|---|---|---|
hint.remote |
auto, , leftlocalright |
|
hint.strategy=broadcast |
Указывает способ совместного использования нагрузки запроса на узлы кластера. | См. присоединение к широковещательной трансляции |
hint.shufflekey=<key> |
Запрос shufflekey использует нагрузку запроса на узлы кластера, используя ключ для секционирования данных. |
См. запрос перемешивания |
hint.strategy=shuffle |
Запрос shuffle стратегии использует нагрузку запроса на узлы кластера, где каждый узел обрабатывает одну секцию данных. |
См. запрос перемешивания |
Примечание.
Подсказки соединения не изменяют семантику join , но могут повлиять на производительность.
Возвраты
Возвращаемая схема и строки зависят от вкуса соединения. Вкус соединения указывается с помощью ключевого слова kind . В следующей таблице показаны поддерживаемые вкусы соединения. Чтобы просмотреть примеры для определенного вкуса соединения, выберите ссылку в столбце "Присоединиться".
| Вариант оператора join | Возвраты | Иллюстрация |
|---|---|---|
| innerunique (по умолчанию) | Внутреннее соединение с удалением дубликатов в левой части Схема: все столбцы из обеих таблиц, включая соответствующие ключи Строки: все дедупликированные строки из левой таблицы, соответствующие строкам из правой таблицы |
|
| внутренний | Стандартное внутреннее соединение Схема: все столбцы из обеих таблиц, включая соответствующие ключи Строки: только соответствующие строки из обеих таблиц |
|
| leftouter | левое внешнее соединение. Схема: все столбцы из обеих таблиц, включая соответствующие ключи Строки: все записи из левой таблицы и только соответствующие строки из правой таблицы |
|
| rightouter | Правое внешнее соединение Схема: все столбцы из обеих таблиц, включая соответствующие ключи Строки: все записи из правой таблицы и только соответствующие строки из левой таблицы |
|
| fullouter | Полное внешнее соединение Схема: все столбцы из обеих таблиц, включая соответствующие ключи Строки: все записи из обеих таблиц с несовпадными ячейками, заполненными значением NULL |
|
| leftsemi | Левое полусоединение Схема: все столбцы из левой таблицы Строки: все записи из левой таблицы, соответствующие записям из правой таблицы |
|
leftanti, , antileftantisemi |
Левый антисоединяние и полу-вариант Схема: все столбцы из левой таблицы Строки: все записи из левой таблицы, которые не соответствуют записям из правой таблицы |
|
| rightsemi | Правое полусоединение Схема: все столбцы из правой таблицы Строки: все записи из правой таблицы, соответствующие записям из левой таблицы |
|
rightanti, rightantisemi |
Правый антисоединяние и полу-вариант Схема: все столбцы из правой таблицы Строки: все записи из правой таблицы, не соответствующие записям из левой таблицы |
|
Перекрестное соединение
KQL не предоставляет вкус перекрестного соединения. Однако вы можете добиться эффекта перекрестного соединения с помощью подхода к ключу заполнителя.
В следующем примере ключ заполнителя добавляется в обе таблицы, а затем используется для внутренней операции соединения, эффективно выполняя поведение, подобное перекрестному присоединению:
X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder