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

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

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

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.