operador unionunion operator

Pega em duas ou mais mesas e devolve as filas de todas.Takes two or more tables and returns the rows of all of them.

Table1 | union Table2, Table3

SyntaxSyntax

T | union [UnionParameters] kind= inner | outer [ withsource= [ColumnName] isfuzzy= true | false [ Mesa , Table]...T | union [UnionParameters] [kind= inner|outer] [withsource=ColumnName] [isfuzzy= true|false] Table [, Table]...

Forma alternativa sem entrada canalizada:Alternative form with no piped input:

union[UnionParameters] [[ kind= inner | outer withsource= [Nome da Coluna] [ isfuzzy= true | false Mesa , Table]...union [UnionParameters] [kind= inner|outer] [withsource=ColumnName] [isfuzzy= true|false] Table [, Table]...

ArgumentosArguments

  • Table:Table:

    • O nome de uma tabela, Events como;The name of a table, such as Events; or
    • Uma expressão de consulta que deve ser fechada com parênteses, tais como (Events | where id==42) (cluster("https://help.kusto.windows.net:443").database("Samples").table("*")) ou;A query expression that must be enclosed with parenthesis, such as (Events | where id==42) or (cluster("https://help.kusto.windows.net:443").database("Samples").table("*")); or
    • Um conjunto de tabelas especificadas com um wildcard.A set of tables specified with a wildcard. Por exemplo, E* formaria a união de todas as tabelas na base de dados cujos nomes E começam.For example, E* would form the union of all the tables in the database whose names begin E.
  • kind:kind:

    • inner - O resultado tem o subconjunto de colunas que são comuns a todas as tabelas de entrada.inner - The result has the subset of columns that are common to all of the input tables.
    • outer - (predefinição).outer - (default). O resultado tem todas as colunas que ocorrem em qualquer uma das entradas.The result has all the columns that occur in any of the inputs. As células que não foram definidas por uma linha de entrada estão definidas para null .Cells that weren't defined by an input row are set to null.
  • withsource=Nome da coluna: Se especificado, a saída incluirá uma coluna chamada ColumnName cujo valor indica qual a tabela de origem que contribuiu em cada linha.withsource=ColumnName: If specified, the output will include a column called ColumnName whose value indicates which source table has contributed each row. Se a consulta efetivamente (após a correspondência de wildcard) fizer referências a partir de mais de uma base de dados (a base de dados padrão conta sempre) o valor desta coluna terá um nome de tabela qualificado com a base de dados.If the query effectively (after wildcard matching) references tables from more than one database (default database always counts) the value of this column will have a table name qualified with the database. Do mesmo modo, as qualificações de agrupamento e de base de dados estarão presentes no valor se forem referenciadas mais de um cluster.Similarly cluster and database qualifications will be present in the value if more than one cluster is referenced.

  • isfuzzy=``true | false : Se isfuzzy estiver definido para - permite a true resolução confusa das pernas sindicais.isfuzzy= true | false: If isfuzzy is set to true - allows fuzzy resolution of union legs. Fuzzy aplica-se ao conjunto de union fontes.Fuzzy applies to the set of union sources. Significa que, ao analisar a consulta e preparar a execução, o conjunto de fontes sindicais é reduzido ao conjunto de referências de tabela que existem e são acessíveis na época.It means that while analyzing the query and preparing for execution, the set of union sources is reduced to the set of table references that exist and are accessible at the time. Se pelo menos uma dessas tabelas for encontrada, qualquer falha de resolução dará um aviso nos resultados do estado da consulta (um para cada referência em falta), mas não impedirá a execução da consulta; se nenhuma resolução for bem sucedida - a consulta devolverá um erro.If at least one such table was found, any resolution failure will yield a warning in the query status results (one for each missing reference), but will not prevent the query execution; if no resolutions were successful - the query will return an error. A predefinição é isfuzzy= false.The default is isfuzzy= false.

  • UnionParameters: Parâmetros zero ou mais (separados pelo espaço) sob a forma de = Valor nome que controlam o comportamento do plano de operação e execução de correspondência de linha.UnionParameters: Zero or more (space-separated) parameters in the form of Name = Value that control the behavior of the row-match operation and execution plan. São suportados os seguintes parâmetros:The following parameters are supported:

    NomeName ValoresValues DescriçãoDescription
    hint.concurrency NumberNumber Indica ao sistema quantas subqueries simultâneas do union operador devem ser executadas em paralelo.Hints the system how many concurrent subqueries of the union operator should be executed in parallel. Predefinição: Quantidade de núcleos de CPU no único nó do cluster (2 a 16).Default: Amount of CPU cores on the single node of the cluster (2 to 16).
    hint.spread NumberNumber Indica ao sistema quantos nós devem ser usados pela execução simultânea union dos subqueries.Hints the system how many nodes should be used by the concurrent union subqueries execution. Predefinição: 1.Default: 1.
  • Table:Table:
    • O nome de uma mesa, como EventsThe name of a table, such as Events
    • Uma expressão de consulta que deve ser fechada com parênteses, tais como (Events | where id==42)A query expression that must be enclosed with parenthesis, such as (Events | where id==42)
    • Um conjunto de tabelas especificadas com um wildcard.A set of tables specified with a wildcard. Por exemplo, E* formaria a união de todas as tabelas na base de dados cujos nomes E começam.For example, E* would form the union of all the tables in the database whose names begin E.
  • kind:kind:
    • inner - O resultado tem o subconjunto de colunas que são comuns a todas as tabelas de entrada.inner - The result has the subset of columns that are common to all of the input tables.
    • outer - (predefinição).outer - (default). O resultado tem todas as colunas que ocorrem em qualquer uma das entradas.The result has all the columns that occur in any of the inputs. As células que não foram definidas por uma linha de entrada estão definidas para null .Cells that weren't defined by an input row are set to null.
  • withsource=Nome da coluna: Se especificado, a saída incluirá uma coluna chamada ColumnName cujo valor indica qual a tabela de origem que contribuiu em cada linha.withsource=ColumnName: If specified, the output will include a column called ColumnName whose value indicates which source table contributed each row. Se a consulta efetivamente (após a correspondência de wildcard) fizer referências a partir de mais de uma base de dados (a base de dados padrão conta sempre) o valor desta coluna terá um nome de tabela qualificado com a base de dados.If the query effectively (after wildcard matching) references tables from more than one database (default database always counts) the value of this column will have a table name qualified with the database. Da mesma forma, as qualificações de cluster e base de dados estarão presentes no valor se forem referenciadas mais de um cluster.Similarly, the cluster and database qualifications will be present in the value if more than one cluster is referenced.
  • isfuzzy=``true | false : Se isfuzzy estiver definido para - permite a true resolução confusa das pernas sindicais.isfuzzy= true | false: If isfuzzy is set to true - allows fuzzy resolution of union legs. Fuzzy aplica-se ao conjunto de union fontes.Fuzzy applies to the set of union sources. Significa que, ao analisar a consulta e preparar a execução, o conjunto de fontes sindicais é reduzido ao conjunto de referências de tabela que existem e são acessíveis na época.It means that while analyzing the query and preparing for execution, the set of union sources is reduced to the set of table references that exist and are accessible at the time. Se pelo menos uma dessas tabelas for encontrada, qualquer falha de resolução dará um aviso nos resultados do estado da consulta (um para cada referência em falta), mas não impedirá a execução da consulta; se nenhuma resolução for bem sucedida - a consulta devolverá um erro.If at least one such table was found, any resolution failure will yield a warning in the query status results (one for each missing reference), but will not prevent the query execution; if no resolutions were successful - the query will return an error. A predefinição é isfuzzy=false.The default is isfuzzy=false.

DevoluçõesReturns

Uma mesa com tantas linhas como em todas as tabelas de entrada.A table with as many rows as there are in all the input tables.

NotasNotes

  1. union âmbito pode incluir declarações de deixar se estas são atribuídas com palavra-chave vistaunion scope can include let statements if those are attributed with view keyword
  2. union o âmbito não incluirá funções.union scope will not include functions. Para incluir uma função no âmbito do sindicato, defina uma declaração de let com palavra-chave vistaTo include a function in the union scope, define a let statement with view keyword
  3. Se a union entrada for tabelas (em oposição às expressões tabulares),e union a seguida por um operador em que o operador,para um melhor desempenho, considere substituir ambas por encontrar.If the union input is tables (as oppose to tabular expressions), and the union is followed by a where operator, for better performance, consider replacing both with find. Note o esquema de saída diferente produzido pelo find operador.Note the different output schema produced by the find operator.
  4. isfuzzy=true aplica-se apenas à fase de resolução de union fontes.isfuzzy=true only applies to the union sources resolution phase. Uma vez determinado o conjunto de tabelas de origem, possíveis falhas de consulta adicionais não serão suprimidas.Once the set of source tables is determined, possible additional query failures will not be suppressed.
  5. Ao outer union utilizar, o resultado tem todas as colunas que ocorrem em qualquer uma das entradas, uma coluna para cada nome e ocorrências de tipo.When using outer union, the result has all the columns that occur in any of the inputs, one column for each name and type occurrences. Isto significa que se uma coluna aparecer em várias tabelas e tiver vários tipos, terá uma coluna correspondente para cada tipo no union resultado.This means that if a column appears in multiple tables and has multiple types, it will have a corresponding column for each type in the union's result. Este nome da coluna será sufixo com um '' seguido do tipode coluna de origem .This column name will be suffixed with a '' followed by the origin column type.
  1. union âmbito pode incluir declarações de deixar se estas são atribuídas com palavra-chave vistaunion scope can include let statements if those are attributed with view keyword
  2. union o âmbito não incluirá funções.union scope will not include functions. Para incluir a função no âmbito do sindicato - defina uma declaração de let com palavra-chave vistaTo include function in the union scope - define a let statement with view keyword
  3. Se a union entrada for tabelas (em oposição às expressões tabulares),e union a seguida por um operador em que o operador, considere substituir ambas por encontrar para um melhor desempenho.If the union input is tables (as oppose to tabular expressions), and the union is followed by a where operator, consider replacing both with find for better performance. Por favor, note os diferentes esquemas de saída produzidos pelo find operador.Please note the different output schema produced by the find operator.
  4. isfuzzy=``trueaplica-se apenas à fase da resolução das union fontes.isfuzzy= true applies only to the phase of the union sources resolution. Uma vez determinado o conjunto de tabelas de origem, possíveis falhas de consulta adicionais não serão suprimidas.Once the set of source tables was determined, possible additional query failures will not be suppressed.
  5. Ao outer union utilizar, o resultado tem todas as colunas que ocorrem em qualquer uma das entradas, uma coluna para cada nome e ocorrências de tipo.When using outer union, the result has all the columns that occur in any of the inputs, one column for each name and type occurrences. Isto significa que se uma coluna aparecer em várias tabelas e tiver vários tipos, terá uma coluna correspondente para cada tipo no union resultado.This means that if a column appears in multiple tables and has multiple types, it will have a corresponding column for each type in the union's result. Este nome da coluna será sufixo com um '' seguido do tipode coluna de origem .This column name will be suffixed with a '' followed by the origin column type.

Exemplo: Tabelas com corda no nome ou colunaExample: Tables with string in name or column

union K* | where * has "Kusto"

Filas de todas as tabelas da base de dados cujo nome começa por K , e na qual qualquer coluna inclui a palavra Kusto .Rows from all tables in the database whose name starts with K, and in which any column includes the word Kusto.

Exemplo: Contagem distintaExample: Distinct count

union withsource=SourceTable kind=outer Query, Command
| where Timestamp > ago(1d)
| summarize dcount(UserId)

O número de utilizadores distintos que produziram um Query evento ou um evento ao longo do dia Command passado.The number of distinct users that have produced either a Query event or a Command event over the past day. No resultado, a coluna 'SourceTable' indicará "Consulta" ou "Comando".In the result, the 'SourceTable' column will indicate either "Query" or "Command".

Query
| where Timestamp > ago(1d)
| union withsource=SourceTable kind=outer 
   (Command | where Timestamp > ago(1d))
| summarize dcount(UserId)

Esta versão mais eficiente produz o mesmo resultado.This more efficient version produces the same result. Filtra cada mesa antes de criar a união.It filters each table before creating the union.

Exemplo: Utilização isfuzzy=trueExample: Using isfuzzy=true

// Using union isfuzzy=true to access non-existing view:                                     
let View_1 = view () { print x=1 };
let View_2 = view () { print x=1 };
let OtherView_1 = view () { print x=1 };
union isfuzzy=true
(View_1 | where x > 0), 
(View_2 | where x > 0),
(View_3 | where x > 0)
| count 
de palavrasCount
22

Estado de consulta de observação - o seguinte aviso devolvido: Failed to resolve entity 'View_3'Observing Query Status - the following warning returned: Failed to resolve entity 'View_3'

// Using union isfuzzy=true and wildcard access:
let View_1 = view () { print x=1 };
let View_2 = view () { print x=1 };
let OtherView_1 = view () { print x=1 };
union isfuzzy=true View*, SomeView*, OtherView*
| count 
de palavrasCount
33

Estado de consulta de observação - o seguinte aviso devolvido: Failed to resolve entity 'SomeView*'Observing Query Status - the following warning returned: Failed to resolve entity 'SomeView*'

Exemplo: as colunas de origem não se desfasamExample: source columns types mismatch

let View_1 = view () { print x=1 };
let View_2 = view () { print x=toint(2) };
union withsource=TableName View_1, View_2
TableNameTableName x_longx_long x_intx_int
View_1View_1 11
View_2View_2 22
let View_1 = view () { print x=1 };
let View_2 = view () { print x=toint(2) };
let View_3 = view () { print x_long=3 };
union withsource=TableName View_1, View_2, View_3 
TableNameTableName x_long1x_long1 x_intx_int x_longx_long
View_1View_1 11
View_2View_2 22
View_3View_3 33

Coluna x de recebeu o View_1 sufixo _long , e como uma coluna nomeada já existe no esquema de x_long resultados, os nomes das colunas foram desprovados, produzindo uma nova coluna. x_long1Column x from View_1 received the suffix _long, and as a column named x_long already exists in the result schema, the column names were de-duplicated, producing a new column- x_long1