Operador join
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Combina las filas de dos tablas para formar una nueva tabla haciendo coincidir los valores de las columnas especificadas de cada tabla.
Lenguaje de consulta Kusto (KQL) ofrece muchos tipos de combinaciones que afectan al esquema y a las filas de la tabla resultante de maneras diferentes. Por ejemplo, si utiliza una combinación inner
, la tabla tendrá las mismas columnas que la tabla izquierda, más las columnas de la tabla derecha. Para obtener el mejor rendimiento, si una tabla siempre es menor que la otra, úsela como lado izquierdo del operador join
.
La imagen siguiente proporciona una representación visual de la operación que realiza cada combinación. El color del sombreado representa las columnas devueltas y las áreas sombreadas representan las filas devueltas.
Sintaxis
LeftTable join
|
[ kind
=
JoinFlavor ] [ Hints ] (
RightTable)
on
Conditions
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
LeftTable | string |
✔️ | La tabla izquierda o expresión tabular, a veces denominada tabla externa, cuyas filas se van a combinar. Se indica como $left . |
JoinFlavor | string |
El tipo de combinación que se debe realizar: innerunique , inner , leftouter , rightouter , fullouter , leftanti , rightanti , leftsemi , rightsemi . El valor predeterminado es innerunique . Para más información sobre los tipos de combinación, consulte Devoluciones. |
|
Sugerencias | string |
Cero o más sugerencias de combinación separadas por espacios en forma de Valor de nombre = que controlan el comportamiento de la operación de coincidencia de fila y el plan de ejecución. Para más información, consulte Sugerencias. |
|
RightTable | string |
✔️ | La tabla derecha o expresión tabular, a veces denominada tabla interna, cuyas filas se van a combinar. Se indica como $right . |
Condiciones | string |
✔️ | Determina la correspondencia entre las filas de LeftTable y las de RightTable. Si las columnas que desea que coincidan tengan el mismo nombre en ambas tablas, use la sintaxis ON ColumnName. De lo contrario, use la sintaxis ON $left. LeftColumn $right. == RightColumn. Para especificar varias condiciones, puede usar la palabra clave "and" o separarlas con comas. Si usa comas, las condiciones se evalúan mediante el operador lógico "and". |
Sugerencia
Para obtener el mejor rendimiento, si una tabla siempre es menor que la otra, úsela como lado izquierdo de la combinación.
Sugerencias
Clave de sugerencia | Valores | Descripción |
---|---|---|
hint.remote |
auto , left , , local , right |
Consulte Unión entre clústeres |
hint.strategy=broadcast |
Especifica la manera de compartir la carga de consultas en los nodos del clúster. | Ver combinación de difusión |
hint.shufflekey=<key> |
La consulta shufflekey comparte la carga de consultas en los nodos del clúster mediante una clave para crear particiones de datos. |
Consulte la consulta aleatoria. |
hint.strategy=shuffle |
La consulta de estrategia shuffle comparte la carga de consultas en los nodos del clúster, donde cada nodo procesa una partición de los datos. |
Consulte la consulta aleatoria. |
Nombre | Valores | Descripción |
---|---|---|
hint.remote |
auto , left , , local , right |
|
hint.strategy=broadcast |
Especifica la manera de compartir la carga de consultas en los nodos del clúster. | Ver combinación de difusión |
hint.shufflekey=<key> |
La consulta shufflekey comparte la carga de consultas en los nodos del clúster mediante una clave para crear particiones de datos. |
Consulte la consulta aleatoria. |
hint.strategy=shuffle |
La consulta de estrategia shuffle comparte la carga de consultas en los nodos del clúster, donde cada nodo procesa una partición de los datos. |
Consulte la consulta aleatoria. |
Nota:
Las sugerencias de combinación no cambian la semántica de join
, pero pueden afectar a su rendimiento.
Devoluciones
El esquema y las filas devueltos dependen del tipo de combinación. El tipo de combinación se especifica con la palabra clave kind. La siguiente tabla muestra los tipos combinación compatibles. Para ver ejemplos de un tipo de combinación específico, seleccione el vínculo de la columna Tipo de combinación.
Tipo de combinación | Devoluciones | Ilustración |
---|---|---|
innerunique (valor predeterminado) | Combinación interna con desduplicación del lado izquierdo Esquema: todas las columnas de ambas tablas, incluidas las claves coincidentes Filas: todas las filas desduplicadas de la tabla izquierda que coinciden con las filas de la tabla derecha |
|
inner | Combinación interna estándar Esquema: todas las columnas de ambas tablas, incluidas las claves coincidentes Filas: solo las filas coincidentes de ambas tablas |
|
leftouter | Combinación externa izquierda Esquema: todas las columnas de ambas tablas, incluidas las claves coincidentes Filas: todos los registros de la tabla izquierda y solo las filas coincidentes de la tabla derecha |
|
rightouter | Combinación externa derecha Esquema: todas las columnas de ambas tablas, incluidas las claves coincidentes Filas: todos los registros de la tabla derecha y solo las filas coincidentes de la tabla izquierda |
|
fullouter | Combinación externa completa Esquema: todas las columnas de ambas tablas, incluidas las claves coincidentes Filas: todos los registros de ambas tablas con celdas no coincidentes rellenadas con null |
|
leftsemi | Semicombinación izquierda Esquema: todas las columnas de la tabla izquierda Filas: todos los registros de la tabla izquierda que coinciden con los registros de la tabla derecha |
|
leftanti , , anti , leftantisemi |
Left-Anti Join y variante Semi Esquema: todas las columnas de la tabla izquierda Filas: todos los registros de la tabla izquierda que no coinciden con los registros de la tabla derecha |
|
rightsemi | Semicombinación derecha Esquema: todas las columnas de la tabla derecha Filas: todos los registros de la tabla derecha que coinciden con los registros de la tabla izquierda |
|
rightanti , rightantisemi |
Right-Anti Join y variante Semi Esquema: todas las columnas de la tabla derecha Filas: todos los registros de la tabla derecha que no coinciden con los registros de la tabla izquierda |
Combinación cruzada
KQL no proporciona un tipo de combinación cruzada. Sin embargo, puede lograr un efecto de combinación cruzada mediante un enfoque de clave de marcador de posición.
En el ejemplo siguiente, se agrega una clave de marcador de posición a ambas tablas y, a continuación, se usa para la operación de combinación interna, logrando eficazmente un comportamiento similar al de la combinación cruzada:
X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder