Consultas comunes
Al conectarse a la base de datos, podrá recuperar datos mediante consultas SQL. Esta sección proporciona consultas SQL de ejemplo para ayudarle a comenzar a trabajar con el Private Telematics Lakehouse. Estos ejemplos demuestran cómo acceder y analizar datos de la capa Bronze, que contiene datos empresariales y telemáticos en bruto con una transformación mínima.
Tenga en cuenta: Debido a que la base de datos contiene una gran cantidad de información, asegúrese de realizar consultas de prueba basadas en un número limitado de valores recuperados.
Consultas básicas
Recuperar información básica de objetos
Esta consulta devuelve información sobre los objetos (vehículos/activos) en su sistema:
SELECT
o.object_id,
o.object_label,
o.model,
d.device_imei,
g.group_label
FROM
raw_business_data.objects o
LEFT JOIN raw_business_data.devices d ON o.device_id = d.device_id
LEFT JOIN raw_business_data.groups g ON o.group_id = g.group_id
WHERE
o.is_deleted = false
ORDER BY
o.object_label;Obtener últimas ubicaciones de dispositivos
Recupere los datos de ubicación más recientes de todos sus dispositivos:
SELECT
t.device_id,
o.object_label,
-- Convertir coordenadas enteras escaladas de nuevo al formato decimal
t.latitude::float / 10000000 AS latitude,
t.longitude::float / 10000000 AS longitude,
t.speed,
t.device_time
FROM
raw_telematics_data.tracking_data_core t
JOIN raw_business_data.objects o ON t.device_id = o.device_id
WHERE
t.device_time > (CURRENT_DATE - INTERVAL '1 day')
AND t.latitude != 0
AND t.longitude != 0
ORDER BY
t.device_id, t.device_time DESC;Unir datos empresariales y telemáticos
Informe de actividad del vehículo
Esta consulta genera un resumen de actividad diario uniendo datos empresariales y telemáticos:
SELECT
o.object_label AS vehicle,
v.vehicle_type,
DATE(t.device_time) AS date,
COUNT(DISTINCT DATE_PART('hour', t.device_time)) AS active_hours,
MAX(t.speed) AS max_speed,
AVG(t.speed) AS avg_speed
FROM
raw_telematics_data.tracking_data_core t
JOIN raw_business_data.objects o ON t.device_id = o.device_id
LEFT JOIN raw_business_data.vehicles v ON o.object_id = v.object_id
WHERE
t.device_time BETWEEN '2025-03-01' AND '2025-03-28'
GROUP BY
o.object_label, v.vehicle_type, DATE(t.device_time)
ORDER BY
o.object_label, DATE(t.device_time);Asignaciones de conductores e historial de ubicaciones
Realice un seguimiento de qué empleados fueron asignados a qué vehículos y su historial de ubicaciones:
SELECT
o.object_label AS vehicle,
new_row.changed_datetime AS assignment_time,
e_new.first_name || ' ' || e_new.last_name AS new_driver_name,
e_old.first_name || ' ' || e_old.last_name AS old_driver_name,
new_row.address,
new_row.latitude,
new_row.longitude
FROM
raw_business_data.driver_history new_row
JOIN
raw_business_data.driver_history old_row
ON new_row.changed_datetime = old_row.changed_datetime
AND new_row.object_id = old_row.object_id
LEFT JOIN
raw_business_data.employees e_new ON new_row.new_employee_id = e_new.employee_id
LEFT JOIN
raw_business_data.employees e_old ON old_row.old_employee_id = e_old.employee_id
LEFT JOIN
raw_business_data.objects o ON new_row.object_id = o.object_id
ORDER BY
assignment_time;Análisis de datos de sensores
Seguimiento del nivel de combustible
Esta consulta muestra cómo analizar datos del sensor de combustible:
SELECT
o.object_label AS vehicle,
t.device_time,
i.value::numeric AS fuel_level
FROM
raw_telematics_data.inputs i
JOIN raw_business_data.objects o ON i.device_id = o.device_id
JOIN raw_telematics_data.tracking_data_core t ON
i.device_id = t.device_id AND
i.device_time = t.device_time
WHERE
i.sensor_name = 'fuel'
AND t.device_time > (CURRENT_DATE - INTERVAL '7 days')
ORDER BY
o.object_label, t.device_time;Análisis geoespacial
Vehículos en geozonas
Identifique qué vehículos ingresaron a geozonas específicas:
SELECT
o.object_label AS vehicle,
z.zone_label AS geozone,
t.device_time AS entry_time
FROM
raw_telematics_data.tracking_data_core t
JOIN raw_business_data.objects o ON t.device_id = o.device_id
JOIN raw_business_data.zones z ON
-- Calcular si el punto está dentro de una zona circular
-- Convertir coordenadas de enteros escalados a decimal
(
CASE
WHEN z.zone_type = 'circle' THEN
ST_DWithin(
ST_MakePoint(t.longitude::float/10000000, t.latitude::float/10000000)::geography,
ST_MakePoint(z.circle_center_longitude, z.circle_center_latitude)::geography,
z.radius
)
ELSE false
END
)
WHERE
t.device_time > (CURRENT_DATE - INTERVAL '1 day')
ORDER BY
z.zone_label, o.object_label, t.device_time;Consejos de optimización del rendimiento
Al trabajar con el Cloud Data Warehouse, considere estas técnicas de optimización:
Use filtrado basado en el tiempo: Siempre incluya un filtro temporal en la
device_timeorecord_added_atcolumnas para limitar los datos escaneados. Buena práctica:
SELECT * FROM raw_telematics_data.tracking_data_core
WHERE device_time > (CURRENT_DATE - INTERVAL '7 days');Evitar esto (escanea la tabla completa)
SELECT * FROM raw_telematics_data.tracking_data_core;Aproveche los índices: La base de datos tiene índices en
(device_id, device_time)pares. Estructure sus consultas para utilizar estos índices cuando sea posible.Use joins selectivamente: Una a las tablas solo cuando sea necesario y trate de filtrar los datos antes de unir tablas grandes.
Conversión de enteros escalados: Recuerde que los datos de coordenadas se almacenan como enteros escalados. Conviértalos solo en el SELECT final, no en las cláusulas WHERE.
Limitar conjuntos de resultados: Siempre use LIMIT para consultas exploratorias para evitar devolver millones de filas.
SELECT * FROM raw_telematics_data.tracking_data_core
WHERE device_time > (CURRENT_DATE - INTERVAL '1 day')
LIMIT 1000;Utilice relaciones jerárquicas: Estructure consultas complejas siguiendo la jerarquía de entidades (dealer → client → user/device → object) para uniones y filtrados más eficientes.
Administre las conexiones correctamente: Cierre las conexiones a la base de datos cuando no estén en uso, especialmente en herramientas de BI o scripts programados, para evitar bloqueos de recursos o problemas de tiempo de espera.
Siguientes pasos
Estos ejemplos proporcionan un punto de partida para trabajar con sus datos. A medida que se familiarice con el esquema, podrá desarrollar consultas más complejas para satisfacer sus necesidades empresariales específicas.
Última actualización
¿Te fue útil?