Mengekspor ke BigQuery

Dokumen ini menjelaskan beberapa atribut set data BigQuery yang dibuat saat sink mengekspor rekaman aktivitas dari Cloud Trace ke BigQuery.

Skema

Skema untuk tabel Anda yang menyimpan data rekaman aktivitas ditentukan oleh definisi Trace V2 API untuk Span.

Trace melacak kolom tabel dan memperbaiki tabel saat span baru berisi kolom yang tidak dapat disimpan dalam tabel yang ada. Operasi patch diperlukan saat span yang tiba berisi entri yang sebelumnya tidak dilihat. Misalnya, jika span yang tiba berisi Atribut baru, tabel akan di-patch.

Retensi data

Anda mengonfigurasi kebijakan retensi data tabel BigQuery. Untuk informasi tentang cara mengelola tabel dan data tabel, lihat Menggunakan tabel.

Jenis tabel

Jika Anda mengonfigurasi sink untuk mengekspor rekaman aktivitas ke BigQuery, Trace akan mengonfigurasi tabel berpartisi berdasarkan waktu penyerapan. Untuk informasi mendetail tentang tabel berpartisi, termasuk cara membuat, mengelola, membuat kueri, dan menghapus tabel ini, lihat Menggunakan tabel berpartisi.

Sampel kueri

Dalam kueri berikut, DATASET adalah nama set data BigQuery, dan MY_TABLE adalah nama tabel dalam set data tersebut.

  • Untuk menampilkan semua kolom dalam tabel untuk tanggal 20 November 2019 sekaligus membatasi hasil menjadi 10 baris, jalankan kueri:

    SELECT
      *
    FROM
      `DATASET.MY_TABLE`
    WHERE
      DATE(_PARTITIONTIME) = "2019-11-20" LIMIT 10
  • Untuk menampilkan semua partisi yang tersedia dalam tabel, jalankan kueri:

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

Kueri HipsterShop

HipsterShop adalah aplikasi demo yang tersedia di GitHub.

Berikut adalah contoh kueri yang mengilustrasikan cara menggunakan kueri BigQuery untuk mengumpulkan informasi yang tidak tersedia menggunakan antarmuka Trace.

Kueri dalam menemukan semua span yang cocok dengan ekspresi reguler yang ditentukan yang diterima pada 2 Desember 2019. Kueri luar memilih untuk ditampilkan hal berikut:

  • nama
  • jumlah span yang cocok
  • jumlah ID rekaman aktivitas yang berbeda
  • Kuantil ke-50, ke-90, dan ke-99
  • Jalur HTTP
  • Pesan error

dan menampilkan hasil yang diurutkan berdasarkan jumlah rekaman aktivitas:

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
 

Untuk satu penginstalan tertentu dari aplikasi ini, hasil kueri adalah seperti yang ditunjukkan:

Menampilkan respons terhadap kueri sebelumnya.

Melihat data rekaman aktivitas

Untuk melihat data rekaman aktivitas menggunakan antarmuka BigQuery, pilih tabel dengan rekaman aktivitas yang diekspor.