Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Mescle as linhas de duas tabelas para formar uma nova tabela combinando valores das colunas especificadas de cada tabela.
Kusto Query Language (KQL) oferece muitos tipos de junções que afetam o esquema e as linhas na tabela resultante de maneiras diferentes. Por exemplo, se você usar uma inner associação, a tabela terá as mesmas colunas que a tabela esquerda, além das colunas da tabela direita. Para obter o melhor desempenho, se uma tabela for sempre menor que a outra, use-a como o lado esquerdo do join operador.
A imagem a seguir fornece uma representação visual da operação executada por cada junção. A cor do sombreamento representa as colunas retornadas e as áreas sombreadas representam as linhas retornadas.
Sintaxe
Tabela Esquerda|joinkind=[ JoinFlavor ] [ Dicas ] (Condições RightTable)on
Saiba mais sobre convenções de sintaxe.
Parâmetros
| Nome | Tipo | Obrigatório | Description |
|---|---|---|---|
| Tabela Esquerda | string |
✔️ | A tabela esquerda ou expressão tabular, às vezes chamada de tabela externa, cujas linhas devem ser mescladas. Denotado como $left. |
| JoinFlavor | string |
O tipo de junção a realizar: innerunique, inner, , leftouter, rightouter, leftantifullouter, rightanti, leftsemi, rightsemi. A predefinição é innerunique. Para obter mais informações sobre sabores de junção, consulte Devoluções. |
|
| Dicas | string |
Zero ou mais dicas de junção separadas por espaço na forma deValor de Nome= que controlam o comportamento da operação de correspondência de linhas e do plano de execução. Para obter mais informações, consulte Dicas. |
|
| Tabela Direita | string |
✔️ | A tabela direita ou expressão tabular, às vezes chamada de tabela interna, cujas linhas devem ser mescladas. Denotado como $right. |
| Condições | string |
✔️ | Determina como as linhas de LeftTable são correspondidas com as linhas de RightTable. Se as colunas que você deseja corresponder tiverem o mesmo nome em ambas as tabelas, use a sintaxe ONColumnName. Caso contrário, use a sintaxe ON $left.LeftColumn==$right.RightColumn. Para especificar várias condições, você pode usar a palavra-chave "e" ou separá-las com vírgulas. Se você usar vírgulas, as condições serão avaliadas usando o operador lógico "e". |
Sugestão
Para obter o melhor desempenho, se uma mesa for sempre menor que a outra, use-a como o lado esquerdo da junção.
Hints
| Tecla de dica | Valores | Description |
|---|---|---|
hint.remote |
auto, left, local, right |
Consulte Ingresso entre clusters |
hint.strategy=broadcast |
Especifica a maneira de compartilhar a carga de consulta em nós de cluster. | Ver transmissão participar |
hint.shufflekey=<key> |
A shufflekey consulta compartilha a carga de consulta em nós de cluster, usando uma chave para particionar dados. |
Ver consulta aleatória |
hint.strategy=shuffle |
A shuffle consulta de estratégia compartilha a carga de consulta em nós de cluster, onde cada nó processa uma partição dos dados. |
Ver consulta aleatória |
| Nome | Valores | Description |
|---|---|---|
hint.remote |
auto, left, local, right |
|
hint.strategy=broadcast |
Especifica a maneira de compartilhar a carga de consulta em nós de cluster. | Ver transmissão participar |
hint.shufflekey=<key> |
A shufflekey consulta compartilha a carga de consulta em nós de cluster, usando uma chave para particionar dados. |
Ver consulta aleatória |
hint.strategy=shuffle |
A shuffle consulta de estratégia compartilha a carga de consulta em nós de cluster, onde cada nó processa uma partição dos dados. |
Ver consulta aleatória |
Observação
As dicas de join junção não alteram a semântica, mas podem afetar o desempenho.
Devoluções
O esquema de retorno e as linhas dependem do sabor da junção. O sabor de junção é especificado com a palavra-chave kind . A tabela a seguir mostra os sabores de junção suportados. Para ver exemplos de um sabor de junção específico, selecione o link na coluna Sabor de junção .
| Junte-se ao sabor | Devoluções | Ilustração |
|---|---|---|
| innerunique (padrão) | Junção interna com desduplicação do lado esquerdo Esquema: Todas as colunas de ambas as tabelas, incluindo as teclas correspondentes Linhas: Todas as linhas desduplicadas da tabela esquerda que correspondem às linhas da tabela direita |
|
| interior | Junção interna padrão Esquema: Todas as colunas de ambas as tabelas, incluindo as teclas correspondentes Linhas: Apenas linhas correspondentes de ambas as tabelas |
|
| Exterior esquerdo | Junção externa esquerda Esquema: Todas as colunas de ambas as tabelas, incluindo as teclas correspondentes Linhas: Todos os registos da tabela esquerda e apenas as linhas correspondentes da tabela direita |
|
| Exterior direito | Junção externa direita Esquema: Todas as colunas de ambas as tabelas, incluindo as teclas correspondentes Linhas: Todos os registos da tabela direita e apenas as linhas correspondentes da tabela esquerda |
|
| Exterior completo | Junção exterior completa Esquema: Todas as colunas de ambas as tabelas, incluindo as teclas correspondentes Linhas: Todos os registros de ambas as tabelas com células incomparáveis preenchidas com nulo |
|
| esquerdasemi | Semi junta esquerda Esquema: Todas as colunas da tabela à esquerda Linhas: Todos os registos da tabela esquerda que correspondem aos registos da tabela direita |
|
leftanti, anti, leftantisemi |
Esquerda anti junção e semi variante Esquema: Todas as colunas da tabela à esquerda Linhas: Todos os registos da tabela da esquerda que não correspondem aos registos da tabela da direita |
|
| direitasemi | Semi junção direita Esquema: Todas as colunas da tabela direita Linhas: Todos os registos da tabela da direita que correspondem aos registos da tabela da esquerda |
|
rightanti, rightantisemi |
Direito anti junção e semi variante Esquema: Todas as colunas da tabela direita Linhas: Todos os registos da tabela direita que não correspondem aos registos da tabela esquerda |
|
Junção cruzada
O KQL não fornece um sabor de junção cruzada. No entanto, você pode obter um efeito de junção cruzada usando uma abordagem de chave de espaço reservado.
No exemplo a seguir, uma chave de espaço reservado é adicionada a ambas as tabelas e, em seguida, usada para a operação de junção interna, alcançando efetivamente um comportamento semelhante a uma junção cruzada:
X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder