Типичные запросы

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

triangle-exclamation

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

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

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

SELECT
    o.object_id,
    o.object_label,
    o.model,
    d.device_imei,
    g.group_label
ИЗ
    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
СОРТИРОВАТЬ ПО
    o.object_label;

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

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

circle-info

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

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

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

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

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

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

Анализ данных датчиков

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

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

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

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

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

circle-info

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

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

При работе с облачным хранилищем данных рассмотрите следующие методы оптимизации:

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

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

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

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

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

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

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

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

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

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

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

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