Saltar al contenido
Telemetry
Libro de recetas SQL Telemetry

Aprenda SQL a través de una base de datos de telemetría SaaS conectada

Siga una cuenta desde el registro hasta la activación, el uso del modelo, el trabajo en segundo plano, la facturación, las fallas de API y las operaciones de la base de datos. Cada lección se ejecuta localmente en las mismas tablas sintéticas, por lo que las uniones, las comparaciones de versiones y las definiciones comerciales permanecen visibles.

Revisado por el equipo de producto Telemetry en . Contrato de datos sintéticos, combinación de grano, SQL de solo lectura, resultados esperados y límites de interpretación. Revisar los estándares y la propiedad

15

tablas conectadas

10953

filas sintéticas deterministas

18

lecciones guiadas deSQL

Contrato de conjunto de datos

Quince tablas, claves explícitas de unión empresarial

el sintetico account_id conecta el contexto comercial con los resultados del producto, la confiabilidad, la inteligencia artificial, el trabajo y la facturación. Identificadores más específicos conectan implementaciones e incidentes declarados mientras preservan el contenido dentro de cada flujo de trabajo. No se incluyen registros de clientes, indicaciones, cargas útiles ni credenciales.

accounts6 filas

Una cuenta SaaS sintética con las dimensiones y los ingresos recurrentes necesarios para el análisis del impacto en el cliente.

Una fila por cuenta.

account_id
Ver 5 campos
account_id Utf8
Identificador de cuenta sintético estable.
plan Utf8
Plano comercial al final de la ventana de muestra.
region Utf8
Alojamiento aproximado o región del cliente.
signup_at Timestamp
Cuando la cuenta ingresó a la cohorte de muestra.
monthly_revenue_usd Float64
Ingresos recurrentes mensuales normalizados sintéticos.
product_events21 filas

Hitos duraderos de cuentas y usuarios para activación, adopción y análisis de recorrido.

Un hito de producto completado.

account_iduser_idsession_id
Ver 9 campos
timestamp_utc Timestamp
Cuando se completó el hito.
event_id Utf8
Identificador estable para deduplicación.
account_id Utf8
Une el evento a la cuenta sintética.
user_id Utf8
Identificador de actor sintético.
session_id Utf8
Los grupos ordenaron eventos dentro de una visita.
event_name Utf8
Nombre del hito del producto estable.
feature Utf8
Superficie del producto responsable del evento.
status Utf8
Resultado del hito final.
release Utf8
Lanzamiento de la aplicación que produjo el evento.
api_requests10 filas

Eventos de solicitud de API completados con ruta, lanzamiento, latencia y contexto del cliente estables.

Una solicitud de API completada.

account_idrequest_id
Ver 7 campos
timestamp_utc Timestamp
Cuando se completó la solicitud.
request_id Utf8
Identificador de correlación de solicitud estable.
account_id Utf8
Une la solicitud a la cuenta sintética.
route_template Utf8
Forma de ruta delimitada sin identificadores sin formato.
status_code Int64
Estado de la respuesta HTTP final.
latency_ms Float64
Duración de la solicitud de un extremo a otro.
release Utf8
Lanzamiento de la aplicación que atiende la solicitud.
llm_requests11 filas

Uso normalizado del proveedor, costo estimado, reintento y campos revisados de resultado del producto.

Una solicitud de modelo completada, incluidos los reintentos del proveedor como filas separadas.

account_idrequest_id
Ver 12 campos
timestamp_utc Timestamp
Cuando se complete la solicitud del proveedor.
request_id Utf8
Identificador de solicitud de modelo estable.
account_id Utf8
Une el uso del modelo a la cuenta sintética.
feature Utf8
Flujo de trabajo del producto utilizando el modelo.
provider Utf8
Proveedor de modelo normalizado.
model Utf8
Identificador de modelo de proveedor capturado en el momento de la solicitud.
input_tokens Int64
Recuento de tokens de entrada informado por el proveedor.
output_tokens Int64
Recuento de tokens de salida informado por el proveedor.
estimated_cost_usd Float64
Costo estimado de la solicitud según una regla de precios versionada.
status Utf8
Resultado final de la solicitud del proveedor.
retry_count Int64
Recuento automático de reintentos del proveedor para esta operación lógica.
accepted Boolean
Si el usuario aceptó o guardó el resultado resultante.
job_runs7 filas

Resultados del trabajo en segundo plano a nivel de intento con cola y tiempo de ejecución.

Un intento de un trabajo de fondo lógico.

account_idjob_id
Ver 9 campos
timestamp_utc Timestamp
Cuando el intento llegó a un desenlace terminal.
job_id Utf8
Identificador de trabajo lógico compartido por reintentos.
account_id Utf8
Une el impacto laboral a la cuenta sintética.
job_name Utf8
Nombre de la operación del trabajador delimitado.
status Utf8
Intento de resultado.
attempt Int64
Número de intento indexado.
queue_wait_ms Float64
Tiempo de espera antes de la ejecución.
duration_ms Float64
Tiempo de ejecución del trabajador.
error_type Utf8
Categoría de error controlada o nula en caso de éxito.
billing_events5 filas

Resultados de suscripción sintéticos para conectar el comportamiento y la confiabilidad del producto con el contexto comercial.

Un evento del ciclo de vida de facturación completado.

account_idevent_id
Ver 6 campos
timestamp_utc Timestamp
Cuando se completó el evento de facturación.
event_id Utf8
Identificador de evento de proveedor estable.
account_id Utf8
Une el evento a la cuenta sintética.
event_name Utf8
Resultado del ciclo de vida de facturación normalizado.
amount_usd Float64
Cantidad normalizada sintética.
status Utf8
Resultado final del evento de facturación.
users24 filas

Usuarios sintéticos para análisis de roles, ciclo de vida y adopción sin datos personales.

Una fila por usuario sintético.

user_idaccount_id
Ver 5 campos
user_id Utf8
Identificador de usuario sintético estable.
account_id Utf8
Cuenta propietaria del usuario sintético.
role Utf8
Rol de producto aproximado utilizado para la segmentación.
created_at Timestamp
Cuando el usuario sintético se unió a la cuenta.
is_admin Boolean
Si el usuario puede administrar la cuenta.
releases12 filas

Una dimensión de implementación para comparar el comportamiento del servicio antes y después de los lanzamientos.

Una fila por versión de servicio.

releaseservice
Ver 5 campos
release Utf8
Versión emitida por eventos de servicio.
service Utf8
Servicio que recibe el despliegue.
deployed_at Timestamp
Hora de implementación UTC.
owner_team Utf8
Equipo sintético responsable del servicio.
change_type Utf8
Clasificación de liberación gruesa.
incidents2 filas

Ventanas de incidentes declaradas para medir las cuentas afectadas, el volumen de errores y la recuperación.

Una fila por incidente declarado.

incident_idservice
Ver 6 campos
incident_id Utf8
Identificador de incidentes sintético estable.
service Utf8
Servicio primario afectado.
started_at Timestamp
Inicio de la ventana de impacto declarado.
resolved_at Timestamp
Fin de la ventana de impacto declarada.
severity Utf8
Severidad operativa sintética.
root_cause_category Utf8
Clasificación de causas aproximada y no sensible.
service_events10800 filas

Una tabla de hechos de eventos de servicio de 30 días para un análisis realista de tendencias, percentiles, lanzamientos e incidentes.

Una solicitud completa o trabajo en segundo plano.

account_idreleaseserviceincident_id
Ver 11 campos
timestamp_utc Timestamp
Marca de tiempo de finalización UTC.
event_id Utf8
Identificador de evento estable para deduplicación.
account_id Utf8
Cuenta sintética de cliente afectada por la operación.
service Utf8
Servicio que completó la operación.
event_name Utf8
Nombre del evento estable al finalizar la operación.
status Utf8
Resultado final de éxito o error.
latency_ms Int64
Latencia de operación de un extremo a otro en milisegundos.
release Utf8
Liberación de servicio activa para la operación.
incident_id Utf8
Incidente declarado cuando el evento se encuentra en ventana de impacto.
region Utf8
Región de cuenta sintética gruesa.
error_type Utf8
Categoría de fracaso de baja cardinalidad o nula en caso de éxito.
database_operations16 filas

Operaciones de base de datos normalizadas con huellas digitales de consultas, versiones, latencia y resultados SQLSTATE.

Una operación de base de datos completada.

account_idservicerelease
Ver 12 campos
timestamp_utc Timestamp
Hora de finalización de la operación en UTC.
operation_id Utf8
Identificador de operación estable.
account_id Utf8
Cuenta que inició la operación.
service Utf8
Servicio de aplicación que emite la consulta.
database_name Utf8
Nombre de la base de datos lógica.
query_fingerprint Utf8
Familia de consultas normalizadas.
operation Utf8
Tipo de operación SQL.
status Utf8
Resultado de la operación.
duration_ms Int64
Duración de un extremo a otro en milisegundos.
rows_affected Int64
Filas devueltas o modificadas.
release Utf8
Lanzamiento de la aplicación.
sqlstate Utf8
Código SQLSTATE cuando falló la operación.
database_pool_samples12 filas

Presión del grupo de conexiones en un momento dado, tiempo de espera y tiempos de espera de adquisición.

Una muestra de grupo de conexiones.

servicedatabase_namerelease
Ver 11 campos
timestamp_utc Timestamp
Hora de muestra en UTC.
service Utf8
Servicio de aplicación.
pool_name Utf8
Nombre del grupo de conexiones.
database_name Utf8
Base de datos de destino.
active_connections Int64
Conexiones comprobadas.
idle_connections Int64
Conexiones inactivas disponibles.
max_connections Int64
Límite de conexión a la piscina.
acquire_wait_ms Int64
Espera de adquisición de conexión.
timed_out Boolean
Si la adquisición expiró.
region Utf8
Región de implementación.
release Utf8
Lanzamiento de la aplicación.
database_lock_events6 filas

Se resolvieron esperas de bloqueo y bloqueos con familias de operaciones bloqueadas y bloqueantes.

Se observó una espera de bloqueo de la base de datos.

servicedatabase_namerelease
Ver 11 campos
timestamp_utc Timestamp
Espere el tiempo de observación en UTC.
database_name Utf8
Base de datos afectada.
service Utf8
Servicio de aplicación bloqueado.
blocked_operation Utf8
Familia de consultas bloqueadas.
blocking_operation Utf8
Familia de consultas de bloqueo.
lock_type Utf8
Clase de bloqueo de base de datos.
wait_ms Int64
Espera de bloqueo observada.
resolved Boolean
Si la espera se resolvió.
deadlock Boolean
Si la espera se convirtió en un punto muerto.
transaction_id Utf8
Identificador de transacción bloqueada.
release Utf8
Lanzamiento de la aplicación.
replication_samples12 filas

Retraso de réplicas y consumidores posteriores para bases de datos operativas, CDC y búsqueda.

Una muestra de consumidor de replicación.

consumer_namerelease
Ver 8 campos
timestamp_utc Timestamp
Hora de muestra en UTC.
consumer_name Utf8
Réplica o consumidor intermedio.
source_type Utf8
Mecanismo de replicación.
region Utf8
Región consumidora.
lag_seconds Int64
Retraso de replicación observado.
backlog_bytes Int64
Trabajo pendiente no aplicado en bytes.
status Utf8
Clasificación de salud del consumidor.
release Utf8
Lanzamiento de la aplicación.
migration_runs9 filas

Ejecuciones de migración de bases de datos de aplicaciones, incluidas fallas y reversiones.

Una ejecución de migración.

servicedatabase_namerelease
Ver 8 campos
timestamp_utc Timestamp
Hora de finalización de la migración en UTC.
migration_id Utf8
Identificador de migración.
service Utf8
Servicio propietario.
database_name Utf8
Base de datos de destino.
release Utf8
Lanzamiento de la aplicación.
status Utf8
Resultado de la migración.
duration_ms Int64
Duración de la migración.
error_type Utf8
Clase de fracaso, cuando esté presente.

Reducir antes de unirse

Contraiga solicitudes, intentos o hitos en el grano empresarial antes de agregar el contexto de cuenta e ingresos.

Sintético por construcción

El conjunto de datos es determinista, versionado y lo suficientemente grande para tendencias y percentiles. Demuestra lógica en lugar de puntos de referencia de los clientes.

La interpretación es parte de la lección.

Cada consulta nombra el denominador, las decisiones comerciales y afirma que el resultado no puede respaldar.

Compatibilidad con dialectos SQL

Prototipo en DuckDB, envío con sintaxis probada por DataFusion

El laboratorio del navegador utiliza DuckDB para que los datos nunca abandonen la página. Las consultas de producción Telemetry utilizan Apache DataFusion. Las lecciones permanecen intencionalmente dentro de su superficie SQL compartida; cuando una función difiere, utilice el formulario de producción a continuación antes de guardar un panel o una alerta.

Caso de usolaboratorio de navegadorTelemetry / DataFusionOrientación
cubos de tiempodate_trunc('día', timestamp_utc)date_trunc('día', timestamp_utc)Sintaxis compartida; mantenga los depósitos en UTC.
Conteos condicionalesSUMA(CASO CUANDO... ENTONCES 1 MÁS 0 FINAL)SUMA(CASO CUANDO... ENTONCES 1 MÁS 0 FINAL)Sintaxis compartida y denominador explícito.
Aproximado p95approx_quantile(latency_ms, 0,95)approx_percentile_cont(latency_ms, 0,95)El nombre de la función difiere entre motores.
División seguravalor/NULLIF(total, 0)valor/NULLIF(total, 0)Sintaxis compartida; emitir cuando la división de enteros importa.
CimentacionesPrincipiante

Resumir la actividad diaria del producto.

¿Qué hitos completan los usuarios cada día?

Comience con una tabla de eventos, agrupe los hitos de productos duraderos en días UTC y mantenga el volumen exitoso separado de todos los intentos.

El conjunto de datos y la consulta permanecen en este navegador.

Published expected result

Hitos diarios exitosos del producto

activity_dayeventssuccessful_eventsactive_accounts
2026-07-01221
2026-07-02442
2026-07-03322
2026-07-04441
2026-07-05332
2026-07-06221
2026-07-08111
2026-07-09111
2026-07-12111

Cómo leer la consulta

  • El día UTC se deriva de la marca de tiempo del evento en lugar de una etiqueta de fecha proporcionada por el cliente.
  • El volumen de eventos y las distintas cuentas activas responden a preguntas diferentes, por lo que ambas permanecen visibles.
  • La condición de estado impide que un intento de integración fallido se cuente como un hito completado.

Decisiones que el SQL no puede tomar

  1. 1Decida si los reintentos y los hitos repetidos deben permanecer visibles.
  2. 2Excluya cuentas internas, de prueba o de bot antes de tratar esto como adopción.
  3. 3Utilice períodos de tiempo completos al comparar los días más recientes.

Continuar de esta lección

Pasar del laboratorio a su propio contrato de evento

Mantenga el análisis detallado y la lógica de unión, luego reemplace las tablas sintéticas con sus propios nombres de eventos estables e identificadores aprobados por privacidad. Valide umbrales y definiciones comerciales con el equipo propietario antes de promover una consulta a un panel o alerta.

Uso y procedencia del conjunto de datos

Telemetry creó este conjunto de datos sintéticos deterministas para aprendizaje, pruebas, evaluación interna y ejemplos. Puede copiar y adaptar las filas, el esquema y la lección SQL para esos fines. La atribución se agradece pero no es obligatoria. El conjunto de datos no contiene registros de clientes y se proporciona sin garantía de rendimiento o resultados comerciales.