Визуализируйте данные Places Insights динамически с помощью Looker Studio.

Обзор

Схема рабочего процесса, иллюстрирующая отправку Looker Studio динамических параметров (город, день и время) в Places Insights в BigQuery для создания геопространственной тепловой карты плотности.

В этом документе описывается, как создавать динамические геопространственные отчеты с помощью Places Insights и Looker Studio . Раскройте ценность ваших данных о местоположении, предоставив нетехническим заинтересованным сторонам возможность самостоятельно находить ответы на свои вопросы. Это руководство покажет вам, как превратить статические отчеты в интерактивные инструменты в стиле тепловых карт для анализа рынка, без необходимости писать SQL-запросы для каждого запроса. Обеспечьте доступ к сложным данным о местоположении, сократив разрыв между проектированием данных и бизнес-аналитикой.

Применение этой архитектурной модели открывает ряд ключевых преимуществ:

  • Визуальное представление данных: преобразует данные Places Insights в интерактивные карты и диаграммы, которые мгновенно отображают пространственную плотность и тенденции.
  • Упрощенное исследование данных без SQL: позволяет членам команды, таким как аналитики рынка или специалисты по планированию недвижимости, динамически фильтровать данные с использованием предопределенных параметров (например, изменяя «Город» или «Время суток» с помощью выпадающих списков). Они могут исследовать данные, не написав ни одной строки SQL-кода.
  • Бесперебойное взаимодействие: стандартные функции обмена данными в Looker Studio позволяют безопасно распространять эти интерактивные аналитические данные.

Рабочий процесс решения

Предложенный рабочий процесс позволяет создать высокопроизводительную архитектуру для формирования отчетов. Он переходит от статической базовой модели к полностью динамическому приложению, обеспечивая корректность данных до усложнения системы.

Предварительные требования

Прежде чем начать, выполните следующие инструкции по настройке Places Insights. Вам потребуется доступ к Looker Studio , бесплатному инструменту.

Шаг 1: Создание статической геопространственной базовой линии

Прежде чем добавлять интерактивность, создайте базовый запрос и убедитесь, что он корректно отображается в Looker Studio. Используйте Places Insights и геопространственные возможности BigQuery для агрегирования данных в шестиугольные сетки с помощью системы индексации H3. В результате будет получен запрос, который можно использовать с заполненной картой-корзиной Looker Studio для визуализации.

1.1 Подключение данных

Для установления первоначального соединения используйте следующий статический запрос. Он нацелен на фиксированное местоположение (Лондон) и категорию (Рестораны) для проверки конвейера обработки данных.

SELECT
  h3_index,
  `carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
  restaurant_count
FROM (
  SELECT WITH AGGREGATION_THRESHOLD
    `carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
    COUNT(*) AS restaurant_count
  FROM
    -- Note: Change 'gb' to your target country code (e.g., 'us')
    `places_insights___gb.places`
  WHERE
    'London' IN UNNEST(locality_names)
    AND 'restaurant' IN UNNEST(types)
  GROUP BY
    h3_index
)
ORDER BY
  restaurant_count DESC;

Примечание о пространственной агрегации

В этом запросе используется функция из инструментария CARTO Analytics Toolbox ( carto-os ), доступного в Google Cloud BigQuery. Функция H3_FROMGEOGPOINT преобразует конкретные точки местоположения в ячейки H3 — систему, которая делит мир на гексагональные ячейки сетки.

Мы используем это преобразование, потому что функция «Заполненная карта» в Looker Studio требует использования многоугольников (фигур) для отображения цветов. Преобразуя точки в шестиугольные фигуры, мы можем визуализировать плотность предприятий в определенной области, вместо того чтобы отображать тысячи перекрывающихся точек.

Примечание о пороге агрегации

Для всех запросов Places Insights требуется предложение WITH AGGREGATION_THRESHOLD . Эта защита конфиденциальности гарантирует, что данные будут возвращены только в том случае, если агрегированное значение равно 5 или выше.

В контексте данной визуализации, если ячейка сетки H3 содержит менее 5 ресторанов, эта ячейка полностью исключается из результирующего набора и будет отображаться пустой на вашей карте.

Для реализации этого в Looker Studio:

  1. Создайте новый пустой отчет .
  2. Выберите BigQuery в качестве коннектора данных.
  3. В меню слева выберите пункт «Пользовательский запрос» и укажите идентификатор вашего платежного проекта .
  4. Вставьте приведенный выше статический базовый запрос в редактор.
  5. Снимите флажки «Использовать устаревший SQL» , «Включить диапазон дат» и «Включить параметры адреса электронной почты пользователя» .
  6. Нажмите «Добавить» .

1.2 Настройка геопространственной визуализации

После подключения данных настройте Looker Studio для корректного распознавания данных о границах H3:

  1. Добавьте визуализацию «Заполненная карта» на холст отчета, выбрав ее в меню «Добавить диаграмму» .
  2. Убедитесь, что для поля h3_geo , содержащего геометрию полигона, установлен тип данных «Геопространственные данные».
    1. Щелкните значок «Редактировать источник данных» (карандаш) рядом с именем вашего подключения.
    2. Если для параметра h3_geo установлено значение Text (ABC), воспользуйтесь выпадающим меню, чтобы выбрать Geo > Geospatial .
    3. Нажмите «Готово» .
  3. Сопоставьте поле h3_index с полем Location (выступающим в качестве уникального идентификатора).
  4. Сопоставьте поле h3_geo с геопространственным полем (использующим геометрию полигона).
  5. Сопоставьте поле restaurant_count с метрикой цвета .

Это позволит отобразить карту плотности ресторанов по ячейкам H3. Более тёмно-синий цвет (цвет по умолчанию) указывает на ячейку с большим количеством ресторанов.

Заполненная карта Лондона с наложенной гексагональной сеткой, где более темные синие ячейки указывают на более высокую концентрацию ресторанов. В легенде указаны значения плотности от 5 до 1215.

Шаг 2: Реализация динамических параметров

Для повышения интерактивности отчета мы добавим в него элементы управления, позволяющие пользователю выбирать из следующих вариантов:

  • Местоположение: Определяет город, на котором сосредоточено внимание в отчете.
  • День недели: Фильтрует заведения по дню их работы, используя запись regular_opening_hours в схеме.
  • Час дня: Фильтрует места на основе их часов работы, сравнивая данные с полями start_time и end_time .

Для этого вам потребуется передавать выбранные пользователем параметры непосредственно в модифицированный запрос Places Insights во время выполнения. В редакторе источников данных Looker Studio необходимо явно определить эти параметры как типизированные переменные.

В Looker Studio выберите меню «Ресурсы» , затем нажмите «Управление добавленными источниками данных ». В появившейся панели выберите EDIT напротив источника данных BigQuery Custom SQL, который мы добавили ранее.

В окне «Редактировать соединение» выберите «ДОБАВИТЬ ПАРАМЕТР» . Мы добавим три параметра со значениями, указанными ниже.

Имя параметра Тип данных Допустимые значения Список значений (должен точно соответствовать данным в базе данных)
p_locality Текст Список значений
Ценить Этикетка
London Лондон
Manchester Манчестер
Birmingham Бирмингем
Glasgow Глазго
p_day_of_week Текст Список значений
Ценить Этикетка
monday Понедельник
tuesday Вторник
wednesday Среда
thursday Четверг
friday Пятница
saturday Суббота
sunday Воскресенье
p_hour_of_day Текст Список значений
Ценить Этикетка
03:00:00 3:00–4:00 утра
08:00:00 8:00 - 9:00
19:00:00 19:00 - 20:00

Пример конфигурации параметра p_hour_of_day .

Интерфейс конфигурации параметра p_hour_of_day, отображающий список значений в разделе, где временные строки сопоставляются с читаемыми метками.

Для параметра p_hour_of_day обратите особое внимание на столбец Value . Поскольку SQL-запрос использует CAST(@p_hour_of_day AS TIME) , значения, передаваемые из Looker Studio, должны быть строго в формате HH:MM:SS (24-часовой формат времени).

После того как вы настроили и сохранили все три параметра, измените ваше пользовательское SQL-подключение BigQuery, чтобы оно ссылалось на эти переменные с использованием синтаксиса @ .

Это делается путем нажатия кнопки «Редактировать подключение» и вставки измененного запроса, приведенного ниже:

SELECT
  h3_index,
  `carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
  restaurant_count
FROM (
  SELECT WITH AGGREGATION_THRESHOLD
    `carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
    COUNT(*) AS restaurant_count
  FROM
    `places_insights___gb.places`
  WHERE
    -- Dynamic locality filter based on parameter
    @p_locality IN UNNEST(locality_names)
    AND 'restaurant' IN UNNEST(types)
    AND business_status = 'OPERATIONAL'
    AND EXISTS (
      SELECT 1
      FROM UNNEST(
        CASE @p_day_of_week
          WHEN 'monday' THEN regular_opening_hours.monday
          WHEN 'tuesday' THEN regular_opening_hours.tuesday
          WHEN 'wednesday' THEN regular_opening_hours.wednesday
          WHEN 'thursday' THEN regular_opening_hours.thursday
          WHEN 'friday' THEN regular_opening_hours.friday
          WHEN 'saturday' THEN regular_opening_hours.saturday
          WHEN 'sunday' THEN regular_opening_hours.sunday
        END
      ) AS hours
      WHERE hours.start_time <= CAST(@p_hour_of_day AS TIME)
        AND hours.end_time >= TIME_ADD(CAST(@p_hour_of_day AS TIME), INTERVAL 1 HOUR)
    )
  GROUP BY
    h3_index
)
ORDER BY
  restaurant_count DESC;

Нажмите «Переподключить», чтобы сохранить изменения. В измененном запросе обратите внимание на новые переменные, такие как @p_hour_of_day , которые соответствуют именам параметров, которые мы только что настроили.

Вернитесь к холсту отчета, чтобы отобразить эти параметры для конечного пользователя:

  1. Добавьте в свой отчет три элемента управления в виде выпадающих списков .
  2. Для каждого элемента управления установите поле «Управление» в соответствии с созданными вами параметрами:
    • Контроль 1: p_locality
    • Контрольная группа 2: p_day_of_week
    • Контрольная точка 3: p_hour_of_day

Итоговый отчет должен выглядеть следующим образом. Изменение значения в одном из выпадающих списков запустит в Looker Studio запрос на получение необходимых данных из Places Insights перед визуализацией на карте.

Итоговый интерактивный отчет, отображающий карту плотности ресторанов в Глазго с тремя выпадающими фильтрами вверху. Меню выбора времени суток расширено для отображения выбираемых временных диапазонов.

Шаг 3: Поделитесь результатами

Для публикации отчета используйте встроенный в Looker Studio инструмент обмена . Это позволит пользователям динамически обновлять визуализацию в зависимости от параметров, выбранных ими из выпадающих списков.

Заключение

Эта модель создает масштабируемый интерактивный инструмент отчетности, который использует вычислительные мощности BigQuery для предоставления агрегированных данных Places Insights в Looker Studio. Такая архитектура позволяет избежать проблем, связанных с визуализацией огромных массивов необработанных данных, и предоставляет конечным пользователям возможность изучать данные по различным параметрам, таким как время, местоположение и тип бизнеса, практически в режиме реального времени. Это мощный инструмент, предоставляющий нетехническим заинтересованным сторонам возможность гибко изучать данные.

Следующие шаги

Изучите другие варианты динамических отчетов, параметризуя различные части схемы Places Insights:

  • Динамический анализ конкурентов: создайте параметр для названий brand , позволяющий пользователям мгновенно переключать тепловую карту между различными конкурентами, чтобы увидеть их относительную насыщенность на рынке. См. раздел «О данных Places Insights» для получения информации о доступности данных по брендам.
  • Интерактивный выбор местоположения: добавьте параметры для price_level (например, «Умеренный» или «Дорогой») и минимального rating , чтобы позволить командам по недвижимости динамически фильтровать районы, соответствующие определенным демографическим профилям.
  • Пользовательские зоны охвата: Вместо фильтрации по названию города, позвольте пользователям определять собственные зоны исследования.
    • На основе радиуса: создайте три числовых параметра: p_latitude, p_longitude и p_radius_meters. Координаты можно получить из API платформы Google Maps, включая API геокодирования. В вашем запросе передайте эти данные в функцию ST_DWITHIN:
      • ST_DWITHIN(point, ST_GEOGPOINT(@p_longitude, @p_latitude), @p_radius_meters)
    • Использование полигонов: Для сложных пользовательских фигур (например, территорий продаж) пользователям сложно вводить текст с геометрическими данными. Вместо этого создайте в BigQuery таблицу поиска, содержащую геометрические данные ваших фигур и понятное имя (например, «Зона А»). Создайте текстовый параметр p_zone_name в Looker Studio, чтобы пользователи могли выбирать зону, и используйте подзапрос для получения геометрии для функции ST_CONTAINS .

Авторы