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

Обзор

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

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

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

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

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

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

Требования

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

Шаг 1. Определите базовые геопространственные показатели

Прежде чем добавлять интерактивность, создайте базовый запрос и убедитесь, что он правильно отображается в Студии данных. Используйте Places Insights и геопространственные возможности BigQuery, чтобы агрегировать данные в шестиугольные сетки с помощью системы индексации H3. В результате будет создан запрос, который можно использовать с типом карты "Заливка" в Data 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 – систему, которая делит мир на шестиугольные ячейки сетки.

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

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

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

Если в ячейке сетки H3 меньше пяти ресторанов, она полностью исключается из набора результатов и на карте будет пустой.

Чтобы реализовать это в Студии данных:

  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 во время выполнения. В редакторе источников данных Студии данных необходимо явно определить эти параметры как типизированные переменные.

В Data Studio выберите меню Ресурс и нажмите Управление добавленными источниками данных. На появившейся панели нажмите EDIT рядом с источником данных "Специальный SQL BigQuery", который мы добавили ранее.

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

Название параметра Тип данных Допустимые значения Список значений (должен точно соответствовать базе данных)
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-часовой формат).

После того как вы настроите и сохраните все три параметра, измените подключение к пользовательскому 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

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

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

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

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

Заключение

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

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

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

  • Динамический анализ конкурентов. Создайте параметр для названий brand, чтобы пользователи могли мгновенно переключать тепловую карту между разными конкурентами и видеть их относительную насыщенность на рынке. Информацию о доступности данных для брендов можно найти в статье О статистике мест.
  • Интерактивный выбор участка. Добавьте параметры для 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.

Авторы