Визуализация данных Аналитики мест в Студии данных

Обзор

Схема рабочего процесса, иллюстрирующая, как Студия данных отправляет динамические параметры города, дня и времени в Аналитику мест в BigQuery для создания тепловой карты геопространственной плотности.

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

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

  • Визуальное представление данных. Преобразует данные Places Insights в интерактивные карты и диаграммы, которые сразу же показывают плотность и тенденции.
  • Упрощенный анализ без SQL. Позволяет сотрудникам, например рыночным аналитикам или планировщикам недвижимости, динамически фильтровать данные с помощью предопределенных параметров (например, менять город или время суток с помощью раскрывающихся списков). Они могут исследовать данные, не написав ни одной строки SQL.
  • Удобная совместная работа. Стандартные функции Студии данных позволяют безопасно делиться интерактивными отчетами.

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

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

Требования

Прежде чем начать, настройте Places Insights. Вам понадобится доступ к Студии данных – бесплатному инструменту.

Шаг 1. Создайте статическую геопространственную основу

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

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 (carto-os), который находится в открытом доступе в Google Cloud BigQuery. Функция H3_FROMGEOGPOINT преобразует определенные точки местоположения в ячейки H3 – систему, которая делит мир на ячейки шестиугольной сетки.

Это преобразование необходимо, поскольку для заполненной карты в Студии данных требуются многоугольники (фигуры), чтобы отображать цвета. Преобразовав точки в шестиугольники, мы можем визуализировать плотность предприятий в определенной области, а не наносить на карту тысячи перекрывающихся точек.

Примечание о пороге агрегирования

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

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

Чтобы реализовать это в Студии данных, выполните следующие действия:

  1. Создайте новый пустой отчет.
  2. Выберите BigQuery в качестве коннектора данных.
  3. В меню слева выберите CUSTOM QUERY (Специальный запрос) и укажите Project ID (Идентификатор проекта), связанный с платежным аккаунтом.
  4. Вставьте в редактор статический базовый запрос, приведенный выше.
  5. Снимите флажки Использовать прежнюю версию SQL, Включить диапазон дат и Включить параметр адреса электронной почты читателя.
  6. Нажмите Добавить.

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

После подключения данных настройте Студию данных так, чтобы она правильно распознавала данные о границах H3:

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

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

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

Шаг 2. Реализуйте динамические параметры

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

  • "Населенный пункт" – город, по которому создается отчет.
  • День недели. Фильтрация мест по дням, когда они открыты, с использованием записи regular_opening_hours в схеме.
  • Час дня. Фильтрует места по часам работы, сравнивая их со значениями полей start_time и end_time.

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

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

В окне "Изменить подключение" выберите Добавить параметр. Мы добавим три параметра со значениями, указанными ниже.

Название параметра Тип данных Допустимые значения Список значений (должен точно соответствовать базе данных)
p_locality Текст Несколько значений
Значение Ярлык
London Лондон
Manchester Манчестер
Birmingham Бирмингем
Glasgow Глазго
p_day_of_week Текст Несколько значений
Значение Ярлык
monday Понедельник
tuesday Tuesday (вторник)
wednesday Wednesday (среда)
thursday Thursday (четверг)
friday Friday (пятница)
saturday 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), значения, передаваемые из Студии данных, должны быть в строгом формате HH:MM:SS (24-часовой формат).

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

Для этого нажмите "Изменить подключение" и вставьте измененный запрос, приведенный ниже.

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

Итоговый отчет должен выглядеть примерно как на скриншоте ниже. При изменении значения в одном из раскрывающихся списков Студия данных запрашивает нужные данные у Places Insights, а затем визуализирует их на карте.

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

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

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

Заключение

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

Дальнейшие действия

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

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

Авторы