Типовые запросы

Подключившись к базе данных, вы сможете извлекать данные с помощью SQL-запросов. В этом разделе приведены примерные SQL-запросы, которые помогут вам начать работу с Private Telematics Lakehouse. Эти примеры демонстрируют, как получить доступ к данным и анализировать данные из уровня Bronze, который содержит необработанные бизнес- и телематические данные с минимальной трансформацией.

triangle-exclamation

Базовые запросы

Получение базовой информации об объектах

Этот запрос возвращает информацию об объектах (транспортных средствах/активах) в вашей системе:

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;

Получение последних местоположений устройств

Получите наиболее свежие данные о местоположении для всех ваших устройств:

circle-info

Значения координат хранятся как целые числа, масштабированные на 10^7 для повышения эффективности хранения в TimescaleDB. При выполнении запросов разделите на 10000000, чтобы преобразовать обратно в стандартный десятичный формат.

Объединение бизнес- и телематических данных

Отчет об активности транспортных средств

Этот запрос формирует ежедневную сводку активности, объединяя бизнес- и телематические данные:

Назначения водителей и история местоположений

Отслеживайте, каким сотрудникам были назначены какие транспортные средства и их историю местоположений:

Анализ данных сенсоров

Отслеживание уровня топлива

Этот запрос показывает, как анализировать данные датчика топлива:

Геопространственный анализ

Транспортные средства в геозонах

Определите, какие транспортные средства входили в конкретные геозоны:

circle-info

Этот запрос использует пространственные функции PostGIS. Если вы столкнетесь с ошибками, проверьте, включено ли расширение PostGIS в вашей базе данных.

Рекомендации по оптимизации производительности

При работе с Cloud Data Warehouse учитывайте следующие методы оптимизации:

  1. Используйте фильтрацию по времени: Всегда включайте временной фильтр по device_time or record_added_at столбцам, чтобы ограничить объем сканируемых данных. Хорошая практика:

Избегайте этого (сканирует всю таблицу)

  1. Используйте индексы: В базе данных есть индексы по (device_id, device_time) парам. Структурируйте ваши запросы так, чтобы по возможности использовать эти индексы.

  2. Используйте JOIN выборочно: Объединяйте таблицы только при необходимости и старайтесь фильтровать данные до объединения больших таблиц.

  3. Преобразование масштабированных целых чисел: Помните, что данные координат хранятся как масштабированные целые числа. Преобразовывайте их только в финальном SELECT, а не в WHERE-клаузах.

  4. Ограничение набора результатов: Всегда используйте LIMIT для ознакомительных запросов, чтобы избежать возврата миллионов строк.

  1. Используйте иерархические связи: Стройте сложные запросы с учетом иерархии сущностей (dealer → client → user/device → object) для более эффективных объединений и фильтрации.

  2. Правильное управление подключениями: Закрывайте подключения к базе данных, когда они не используются, особенно в BI-инструментах или планируемых скриптах, чтобы избежать блокировки ресурсов или проблем с тайм-аутом.

Дальнейшие шаги

Эти примеры предоставляют отправную точку для работы с вашими данными. По мере изучения схемы вы сможете разрабатывать более сложные запросы для удовлетворения конкретных бизнес-требований.

Последнее обновление

Это было полезно?