• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Use junções de subconsulta para combinar consulta

Muitos dos dados armazenados no New Relic estão relacionados a outros dados: Transaction e TransactionError, PageView e PageAction, Log e evento de infraestrutura e muito mais. Você pode realizar análises e calcular correlações entre esses eventos usando junções de subconsulta.

Como escrever uma junção de subconsulta

Uma subconsulta é uma consulta aninhada dentro de outra consulta. Com junções de subconsulta, você pode combinar o resultado de uma subconsulta com o resultado de sua consulta externa com base em uma chave, permitindo análise e enriquecimento em conjuntos de dados.

Uma junção de subconsulta requer três componentes: dois conjuntos de dados e uma chave primária para vincular os dois.

FROM Event [INNER|LEFT] JOIN (subquery) ON [key =] key SELECT ...

As junções de subconsulta contêm regras simples para a sintaxe:

  • A cláusula JOIN deve sempre seguir imediatamente após a cláusula FROM .
  • Você pode prefixar JOIN com o tipo de associação. INNER ou LEFT é opcional e o padrão é INNER quando omitido.
  • Os parênteses que contêm uma subconsulta devem seguir imediatamente a cláusula JOIN .
  • A cláusula ON deve seguir imediatamente a subconsulta e possui dois formatos (mais detalhes abaixo).

Você também pode ter diversas cláusulas JOIN em uma consulta. Por exemplo, esta consulta usa dois JOINs em subconsultas:

FROM JavaScriptError
JOIN (
FROM PageAction
JOIN (
FROM PageView SELECT count(*) FACET session as pageViewSession, city
LIMIT MAX
) ON session = pageViewSession
SELECT count(*) FACET city, currentUrl, session as pageActionSession
) ON session = pageActionSession
SELECT count(*) FACET city, currentUrl, session, errorClass

A imagem abaixo contém dois conjuntos de dados: o percentual médio de CPU da infraestrutura contêiner (ProcessSample) e a duração média da transação do aplicativo por contêiner.

Muitas vezes, os dados de diferentes fontes estão correlacionados. Nesse caso, você pode determinar se o maior uso de CPU de um contêiner está causando lentidão na transação usando a seguinte junção de subconsulta:

FROM Transaction
JOIN (FROM ProcessSample SELECT average(cpuPercent) AS cpu
FACET containerId LIMIT MAX) ON containerId
SELECT average(duration)/latest(cpu) FACET containerId, containerName

Com esta consulta, você pode ver os contêineres que possuem maior duração média de transação devido ao uso de CPU, e investigar outliers para ver se há algum bug a ser corrigido ou otimizações a serem feitas.

Limitações de junção de subconsulta

As junções de subconsulta têm as seguintes limitações:

  • A subconsulta unida continuará a ter um LIMIT padrão de 10, com um máximo de LIMIT de 5.000. Observe que o LIMIT da consulta externa não afeta a consulta interna.
  • O uso de TIMESERIES na subconsulta unida não é compatível. Se sua consulta externa usar TIMESERIES, lembre-se de que a subconsulta unida fornecerá um único resultado para todo o intervalo de tempo da consulta.
  • O uso de COMPARE WITH na subconsulta unida não é compatível. Se sua consulta externa usar COMPARE WITH, lembre-se de que a subconsulta unida fornecerá um único resultado com base no intervalo de tempo base da consulta e não fornecerá um valor separado para a consulta externa em comparação com o intervalo de tempo.
  • Como todas as subconsultas, as subconsultas unidas não podem ser utilizadas na condição do alerta.
  • Embora SELECT * seja compatível com a consulta pai, ele não é compatível com a subconsulta unida.
  • A cardinalidade da junção é limitada a 1:100, o que significa que uma única chave de junção não pode mapear mais de cem linhas no resultado da subconsulta.
  • A cláusula ON oferece suporte apenas a condições de igualdade.
  • A chave JOIN não pode ser um atributo complexo, como um valor de métrica.
  • Não fazemos coerção de tipos de atributos na condição JOIN . O lado esquerdo da condição ON de JOIN precisa ser do mesmo tipo que o lado direito da condição ON .
  • Curingas de métrica não são suportados na condição ON de JOIN
  • A subconsulta não pode ser uma consulta métrica por linha.
  • O lado direito da condição ON do JOIN deve ser um identificador projetado pela consulta. Não pode usar uma função ou operação matemática.
  • A subconsulta unida não pode projetar um resultado uniques() .

Exemplos de junção de subconsulta

Aqui estão alguns exemplos de junções de subconsulta:

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.