operador join
Intercale as linhas de duas tabelas para formar uma nova tabela ao corresponder os valores das colunas especificadas de cada tabela.
Linguagem de Pesquisa Kusto (KQL) oferece vários tipos de associações que afetam o esquema e as linhas na tabela resultante de formas diferentes. Por exemplo, se utilizar uma associação inner
, a tabela tem as mesmas colunas que a tabela esquerda, além das colunas da tabela à direita. Para um melhor desempenho, se uma tabela for sempre mais pequena do que a outra, utilize-a como o lado esquerdo do join
operador.
A imagem seguinte fornece uma representação visual da operação executada por cada associação.
Syntax
|
join
Tabela Esquerda [ kind
=
JoinFlavor ] [ Hints ] (
RightTable)
on
Conditions
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
Tabela Esquerda | string |
✔️ | A tabela esquerda ou expressão tabular, por vezes denominada tabela externa, cujas linhas devem ser intercaladas. Denotado como $left . |
JoinFlavor | string |
O tipo de associação a executar: innerunique , , inner , leftouter rightouter , fullouter , leftanti , rightanti , , . rightsemi leftsemi A predefinição é innerunique . Para obter mais informações sobre tipos de associação, consulte Devoluções. |
|
Sugestões | string |
Zero ou mais sugestões de associação separadas por espaço sob a 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, veja Sugestões. |
|
Tabela Direita | string |
✔️ | A tabela à direita ou expressão tabular, por vezes denominada tabela interna, cujas linhas devem ser intercaladas. Denotado como $right . |
Condições | string |
✔️ | Determina a forma como as linhas de LeftTable são correspondidas com linhas de RightTable. Se as colunas que pretende corresponder tiverem o mesmo nome em ambas as tabelas, utilize a sintaxe ON ColumnName. Caso contrário, utilize a sintaxe ON $left. LeftColumn== $right. RightColumn. Para especificar várias condições, pode utilizar a palavra-chave "e" ou separá-las com vírgulas. Se utilizar vírgulas, as condições são avaliadas com o operador lógico "e". |
Dica
Para um melhor desempenho, se uma tabela for sempre mais pequena do que a outra, utilize-a como o lado esquerdo da associação.
Sugestões
Tecla de sugestão | Valores | Descrição |
---|---|---|
hint.remote |
auto , left , local , right |
Veja Associação Entre Clusters |
hint.strategy=broadcast |
Especifica a forma de partilhar a carga de consulta em nós de cluster. | Ver a associação de difusão |
hint.shufflekey=<key> |
A shufflekey consulta partilha o carregamento da consulta em nós de cluster, utilizando uma chave para particionar dados. |
Ver consulta aleatória |
hint.strategy=shuffle |
A shuffle consulta de estratégia partilha a carga de consulta em nós de cluster, onde cada nó processa uma partição dos dados. |
Ver consulta aleatória |
Name | Valores | Descrição |
---|---|---|
hint.remote |
auto , left , local , right |
|
hint.strategy=broadcast |
Especifica a forma de partilhar a carga de consulta em nós de cluster. | Ver a associação de difusão |
hint.shufflekey=<key> |
A shufflekey consulta partilha o carregamento da consulta em nós de cluster, utilizando uma chave para particionar dados. |
Ver consulta aleatória |
hint.strategy=shuffle |
A shuffle consulta de estratégia partilha a carga de consulta em nós de cluster, onde cada nó processa uma partição dos dados. |
Ver consulta aleatória |
Nota
As sugestões de associação não alteram a semântica de join
, mas podem afetar o desempenho.
Devoluções
O esquema de retorno e as linhas dependem do sabor da associação. O sabor da associação é especificado com a palavra-chave do tipo . A tabela seguinte mostra os tipos de associação suportados. Para ver exemplos de um sabor de associação específico, selecione a ligação na coluna Sabor da associação.
Sabor da associação | Devoluções | Ilustração |
---|---|---|
innerunique (predefinição) | Associação interna com eliminação de duplicados do lado esquerdo Esquema: todas as colunas de ambas as tabelas, incluindo as chaves correspondentes Linhas: todas as linhas com eliminação de duplicados da tabela esquerda que correspondem às linhas da tabela à direita |
|
interior | Associação interna padrão Esquema: todas as colunas de ambas as tabelas, incluindo as chaves correspondentes Linhas: apenas linhas correspondentes de ambas as tabelas |
|
leftouter | Associação externa à esquerda Esquema: todas as colunas de ambas as tabelas, incluindo as chaves correspondentes Linhas: todos os registos da tabela esquerda e apenas linhas correspondentes da tabela direita |
|
rightouter | Associação externa à direita Esquema: todas as colunas de ambas as tabelas, incluindo as chaves correspondentes Linhas: todos os registos da tabela direita e apenas linhas correspondentes da tabela esquerda |
|
fullouter | Associação externa completa Esquema: todas as colunas de ambas as tabelas, incluindo as chaves correspondentes Linhas: todos os registos de ambas as tabelas com células sem correspondência preenchidas com nulo |
|
leftsemi | Semi-associação à 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 |
Anti-associação à esquerda e semi variante Esquema: Todas as colunas da tabela esquerda Linhas: todos os registos da tabela esquerda que não correspondem a registos da tabela à direita |
|
rightsemi | Semi-associação à direita Esquema: Todas as colunas da tabela direita Linhas: todos os registos da tabela direita que correspondem aos registos da tabela esquerda |
|
rightanti , rightantisemi |
Anti-associação à direita e semi variante Esquema: Todas as colunas da tabela direita Linhas: todos os registos da tabela direita que não correspondem a registos da tabela esquerda |
Associação cruzada
A KQL não fornece um sabor de associação cruzada. No entanto, pode obter um efeito de associação cruzada com uma abordagem de chave de marcador de posição.
No exemplo seguinte, é adicionada uma chave de marcador de posição a ambas as tabelas e, em seguida, utilizada para a operação de associação interna, conseguindo efetivamente um comportamento de associação cruzada:
X | extend placeholder=1 | join kind=inner (Y | extend placeholder=1) on placeholder
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários