Esportazione in BigQuery

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

In questo documento vengono descritti alcuni attributi del set di dati BigQuery, che viene creato quando un sink esporta tracce da Cloud Trace a BigQuery.

Schema

Lo schema per la tabella in cui sono archiviati i dati di traccia dipende dalla definizione dell'API Trace V2 di Span.

Trace tiene traccia delle colonne della tabella e applica patch alla tabella quando un nuovo intervallo contiene campi che non possono essere memorizzati nella tabella esistente. Un'operazione di patch è necessaria quando uno span in arrivo contiene voci non registrate in precedenza. Ad esempio, se un intervallo in arrivo contiene un nuovo attributo, alla tabella viene applicata una patch.

Conservazione dei dati

Configura i criteri di conservazione dei dati delle tabelle BigQuery. Per informazioni sulla gestione delle tabelle e dei relativi dati, consulta Utilizzo delle tabelle.

Tipo di tabella

Se configuri un sink per esportare le tracce in BigQuery, Trace configura una tabella partizionata in fase di importazione. Per informazioni dettagliate sulle tabelle partizionate, incluso come creare, gestire, eseguire query ed eliminare queste tabelle, vedi Utilizzo delle tabelle partizionate.

Query di esempio

Nelle seguenti query, DATASET è il nome del set di dati BigQuery, mentre MY_TABLE è il nome di una tabella in quel set di dati.

  • Per visualizzare tutte le colonne della tabella per il 20 novembre 2019 limitando il risultato a 10 righe, esegui la query:

    SELECT
      *
    FROM
      `DATASET.MY_TABLE`
    WHERE
      DATE(_PARTITIONTIME) = "2019-11-20" LIMIT 10
    
  • Per visualizzare tutte le partizioni disponibili nella tabella, esegui la query:

    SELECT
      _PARTITIONTIME as pt
    FROM
      `DATASET.MY_TABLE`
    GROUP BY 1
    

Query HipsterShop

HipsterShop è un'applicazione demo disponibile su GitHub.

Di seguito è riportata una query di esempio che illustra come utilizzare le query BigQuery per raccogliere informazioni non immediatamente disponibili utilizzando l'interfaccia di Trace.

La query interna trova tutti gli intervalli che corrispondono all'espressione regolare specificata che sono stati ricevuti il 2 dicembre 2019. La query esterna seleziona per la visualizzazione:

  • name
  • numero di intervalli corrispondenti
  • numero di ID traccia distinti
  • 50°, 90° e 99° quantili
  • Percorso HTTP
  • Messaggio di errore

e mostra i risultati ordinati in base al numero di tracce:

SELECT t0.span.displayName.value, count(t0.span.spanId) as spanCount, count(distinct traceId) as traceCount,
APPROX_QUANTILES(milliseconds, 100)[OFFSET(50)] as p50,
APPROX_QUANTILES(milliseconds, 100)[OFFSET(95)] as p95,
APPROX_QUANTILES(milliseconds, 100)[OFFSET(99)] as p99,
t0.span.attributes.attributeMap._http_path,
t0.span.attributes.attributeMap._error_message
FROM (
SELECT *,
REGEXP_EXTRACT(span.name, r"./traces/([a-f0-9]+).") as traceId,
TIMESTAMP_DIFF(span.endTime,span.startTime, MILLISECOND) as milliseconds
FROM `hipstershop-demo.Hipstershop_trace_export.cloud_trace`
WHERE DATE(_PARTITIONTIME) = "2019-12-02") AS t0
WHERE t0.span.parentSpanId is NULL
GROUP by t0.span.displayName.value, t0.span.attributes.attributeMap._http_path,t0.span.attributes.attributeMap._error_message
ORDER BY traceCount DESC
LIMIT 1000
 

Per una particolare installazione di questa applicazione, il risultato della query viene mostrato come segue:

Visualizza la risposta alla query precedente.

Visualizza dati di traccia

Per visualizzare i dati di traccia utilizzando l'interfaccia di BigQuery, seleziona la tabella con le tracce esportate.