Выполните запрос к набору данных, используя функции подсчета мест.

Функции подсчета мест — это предопределенные SQL-запросы, которые выполняются в BigQuery и дополняют прямой запрос к набору данных . Основное отличие прямого запроса к данным от использования функции заключается в том, что функции не устанавливают минимальный пороговый уровень подсчета , а вместо этого устанавливают минимальную область поиска :

  • Запросы к наборам данных могут возвращать значения не менее 5, но не накладывают ограничений на размер области поиска.
  • Функции подсчета мест могут возвращать любые значения, включая 0, но при этом устанавливают минимальную зону поиска в 40,0 на 40,0 метров (1600 м² ). Функции также могут возвращать идентификаторы мест (Place ID ), которые можно использовать для поиска информации об отдельных местах.

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

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

Поддерживаемые функции подсчета мест и страны

Places Insights поддерживает следующие функции:

  • PLACES_COUNT_V2 возвращает таблицу, содержащую количество мест и примеры идентификаторов мест. Эта функция принимает параметр таблицы для ввода данных из нескольких географических регионов, что обеспечивает эффективную пакетную обработку. Она значительно оптимизирована для геопространственных объединений по сравнению с функциями PLACES_COUNT и PLACES_COUNT_PER_GEO .
  • PLACES_COUNT_PER_TYPE_V2 возвращает таблицу с количеством мест и примерами идентификаторов мест, сгруппированных по типу места. Аналогично PLACES_COUNT_V2 , эта функция принимает параметр таблицы для одновременной обработки нескольких входных географических данных. Такая архитектура поддерживает эффективную пакетную обработку и обеспечивает оптимизированное геопространственное объединение по сравнению с PLACES_COUNT_PER_TYPE .
  • PLACES_COUNT_PER_H3 : Возвращает таблицу BigQuery с количеством мест в каждой ячейке H3.
  • PLACES_COUNT : Возвращает одну строку, содержащую количество мест.
  • PLACES_COUNT_PER_TYPE : Возвращает таблицу BigQuery с количеством мест по типам.
  • PLACES_COUNT_PER_GEO : Возвращает таблицу BigQuery с количеством мест по географическим регионам.

Помимо подсчета мест, все функции, кроме PLACES_COUNT , также возвращают до 250 идентификаторов мест для каждого элемента ответа.

Идентификаторы мест можно использовать со следующими элементами:

Пишите запросы с использованием функций.

Для вызова функций используйте следующий формат: [project name (optional)].[table name].[function name] .

Если вы изменили имя связанного набора данных при настройке Places Insights, используйте свое пользовательское имя вместо имен таблиц по умолчанию, указанных в разделе «Функции подсчета мест в BigQuery» . Вы также можете дополнительно указать название своего проекта. Если оно не указано, запрос по умолчанию будет использовать название активного проекта.

Например:

PROJECT_NAME.places_insights___us.PLACES_COUNT

Используйте JSON_OBJECT для передачи аргументов функции.

Отфильтруйте результаты

Функции подсчета мест поддерживают множество фильтров для уточнения поиска. Эти параметры (например, price_level или types ) чувствительны к регистру и должны точно совпадать с именами параметров. Полный список параметров см. в справочнике по параметрам фильтра .

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

Для начала воспользуйтесь вашей исходной таблицей географических регионов или подготовьте таблицу с выбранными регионами:

-- Create a table for the input geographies
CREATE TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas` AS (
  SELECT
    '1' AS geo_id, -- Unique identifier
    ST_GEOGPOINT(-73.9857, 40.7484) AS geo -- Empire State Building
  UNION ALL
  SELECT
    '2' AS geo_id, -- Unique identifier
    ST_GEOGPOINT(-73.9851, 40.7580) AS geo -- Times Square
);

Далее вызовите функцию PLACES_COUNT_V2 , указав таблицу и JSON-объект, содержащий фильтры. Радиус поиска включен в JSON-фильтры и будет применяться к каждой точке в таблице my_search_areas .

SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`(
  TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`,
  JSON_OBJECT(
      'geography_radius', 1000, -- Radius in meters around each point in 'geo'
      'business_status', ['OPERATIONAL'],
      'types', ["restaurant"],
      'min_rating', 1.3,
      'price_level', ['PRICE_LEVEL_INEXPENSIVE', 'PRICE_LEVEL_MODERATE'],
      'allows_dogs', TRUE
      )
);

Пример использования функции подсчета мест

В следующем примере используется функция PLACES_COUNT_V2 с пользовательской таблицей географических данных my_search_area для получения количества действующих ресторанов в радиусе 1000 метров от Эмпайр-стейт-билдинг и Таймс-сквер в Нью-Йорке:

SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`(
  TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`,
  JSON_OBJECT(
      'geography_radius', 1000, -- Radius in meters
      'business_status', ['OPERATIONAL'],
      'types', ["restaurant"]
      )
);

В ответе вы получите таблицу BigQuery, содержащую geo_id , географическое положение, количество и пример идентификаторов мест.

Результаты поиска по запросу «Places Count» в Нью-Йорке.

Визуализация результатов

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

Пример визуализации результатов функции см. в разделе «Визуализация результатов» . Дополнительную информацию и пример визуализации результатов Places Insights см. в разделе «Визуализация результатов запроса» .

Ограничения и требования

Функции подсчета мест имеют следующие ограничения и требования:

  • Поддерживаются только данные, полученные COUNT .
  • Требуется минимальная зона поиска размером 40,0 метров на 40,0 метров (1600 м² ).
  • Ограничение на размер входного параметра: размер JSON-объекта, передаваемого в качестве параметра функциям, ограничен 1 МБ. Влияние этого ограничения зависит от версии функции:
  • Для функций V2 ( PLACES_COUNT_V2 , PLACES_COUNT_PER_TYPE_V2 ) это ограничение применяется только к JSON-объекту фильтров. Поскольку географические данные предоставляются отдельно с помощью табличного параметра, эти функции могут масштабироваться до гораздо большего количества входных географических данных, не достигая предела размера JSON-файла.
    • Для PLACES_COUNT_PER_H3 , PLACES_COUNT , PLACES_COUNT_PER_TYPE и PLACES_COUNT_PER_GEO это ограничение распространяется на весь JSON-объект, включая все определения географических регионов. Это может ограничить количество географических регионов, которые можно обработать за один вызов.
  • Фильтрация по идентификатору места, маркам, вариантам зарядки электромобилей или компонентам адреса не поддерживается.
  • Вы можете использовать функции подсчета мест только для тех городов и стран, на которые у вас оформлена подписка. См. раздел «Настройка Places Insights» для получения информации о доступе к наборам данных.
  • Параметры фильтра (например, geography или types ) чувствительны к регистру и должны точно совпадать с именами параметров, иначе запрос завершится ошибкой.

Функция подсчета мест в BigQuery

Все города в представленном наборе данных, а также полный набор данных по странам поддерживают функции подсчета мест.

Вам доступны функции подсчета мест, соответствующие наборам данных о городах и странах, на которые вы подписаны. См. раздел «Настройка Places Insights» для получения информации о доступе к наборам данных.

В этих таблицах перечислены доступные города, страны и соответствующие им названия таблиц.

Пример данных

Город, Страна Названия таблиц
Буэнос-Айрес, Аргентина places_insights___ar___sample. FUNCTION_NAME
Сидней, Австралия places_insights___au___sample. FUNCTION_NAME
Бад-Гастайн, Австрия places_insights___at___sample. FUNCTION_NAME
Риффа, Бахрейн places_insights___bh___sample. FUNCTION_NAME
Брюссель, Бельгия places_insights___be___sample. FUNCTION_NAME
Сан-Паулу, Бразилия places_insights___br___sample. FUNCTION_NAME
Пловдив, Болгария places_insights___bg___sample. FUNCTION_NAME
Торонто, Канада places_insights___ca___sample. FUNCTION_NAME
Сантьяго, Чили places_insights___cl___sample. FUNCTION_NAME
Медельин, Колумбия places_insights___co___sample. FUNCTION_NAME
Брно, Чехия places_insights___cz___sample. FUNCTION_NAME
Копенгаген, Дания places_insights___dk___sample. FUNCTION_NAME
Каир, Египет places_insights___eg___sample. FUNCTION_NAME
Хельсинки, Финляндия places_insights___fi___sample. FUNCTION_NAME
Париж, Франция places_insights___fr___sample. FUNCTION_NAME
Берлин, Германия places_insights___de___sample. FUNCTION_NAME
Афины, Греция places_insights___gr___sample. FUNCTION_NAME
Гонконг, Гонконг places_insights___hk___sample. FUNCTION_NAME
Дебрецен, Венгрия places_insights___hu___sample. FUNCTION_NAME
Мумбаи, Индия places_insights___in___sample. FUNCTION_NAME
Джакарта, Индонезия places_insights___id___sample. FUNCTION_NAME
Корк, Ирландия places_insights___ie___sample. FUNCTION_NAME
Тель-Авив-Яффо, Израиль places_insights___il___sample. FUNCTION_NAME
Рим, Италия places_insights___it___sample. FUNCTION_NAME
Токио, Япония places_insights___jp___sample. FUNCTION_NAME
Пусан, Южная Корея places_insights___kr___sample. FUNCTION_NAME
Куала-Лумпур, Малайзия places_insights___my___sample. FUNCTION_NAME
Мехико, Мексика places_insights___mx___sample. FUNCTION_NAME
Амстердам, Нидерланды places_insights___nl___sample. FUNCTION_NAME
Веллингтон, Новая Зеландия places_insights___nz___sample. FUNCTION_NAME
Осло, Норвегия places_insights___no___sample. FUNCTION_NAME
Арекипа, Перу places_insights___pe___sample. FUNCTION_NAME
Манила, Филиппины places_insights___ph___sample. FUNCTION_NAME
Варшава, Польша places_insights___pl___sample. FUNCTION_NAME
Лиссабон, Португалия places_insights___pt___sample. FUNCTION_NAME
Лусаил, Катар places_insights___qa___sample. FUNCTION_NAME
Бухарест, Румыния places_insights___ro___sample. FUNCTION_NAME
Джидда, Саудовская Аравия places_insights___sa___sample. FUNCTION_NAME
Сингапур, Сингапур places_insights___sg___sample. FUNCTION_NAME
Йоханнесбург, Южная Африка places_insights___za___sample. FUNCTION_NAME
Мадрид, Испания places_insights___es___sample. FUNCTION_NAME
Стокгольм, Швеция places_insights___se___sample. FUNCTION_NAME
Цюрих, Швейцария places_insights___ch___sample. FUNCTION_NAME
Тайбэй, Тайвань places_insights___tw___sample. FUNCTION_NAME
Чиангмай, Таиланд places_insights___th___sample. FUNCTION_NAME
Анкара, Турция places_insights___tr___sample. FUNCTION_NAME
Шарджа, Объединенные Арабские Эмираты places_insights___ae___sample. FUNCTION_NAME
Лондон, Соединенное Королевство places_insights___gb___sample. FUNCTION_NAME
Нью-Йорк, США places_insights___us___sample. FUNCTION_NAME
Ханой, Вьетнам places_insights___vn___sample. FUNCTION_NAME

Полные данные

Страна Названия таблиц
Аргентина places_insights___ar. FUNCTION_NAME
Австралия places_insights___au. FUNCTION_NAME
Австрия places_insights___at. FUNCTION_NAME
Бахрейн places_insights___bh. FUNCTION_NAME
Бельгия places_insights___be. FUNCTION_NAME
Бразилия places_insights___br. FUNCTION_NAME
Болгария places_insights___bg. FUNCTION_NAME
Канада places_insights___ca. FUNCTION_NAME
Чили places_insights___cl. FUNCTION_NAME
Колумбия places_insights___co. FUNCTION_NAME
Чехия places_insights___cz. FUNCTION_NAME
Дания places_insights___dk. FUNCTION_NAME
Египет places_insights___eg. FUNCTION_NAME
Финляндия places_insights___fi. FUNCTION_NAME
Франция places_insights___fr. FUNCTION_NAME
Германия places_insights___de. FUNCTION_NAME
Греция places_insights___gr. FUNCTION_NAME
Гонконг places_insights___hk. FUNCTION_NAME
Венгрия places_insights___hu. FUNCTION_NAME
Индия places_insights___in. FUNCTION_NAME
Индонезия places_insights___id. FUNCTION_NAME
Ирландия places_insights___ie. FUNCTION_NAME
Израиль places_insights___il. FUNCTION_NAME
Италия places_insights___it. FUNCTION_NAME
Япония places_insights___jp. FUNCTION_NAME
Малайзия places_insights___my. FUNCTION_NAME
Мексика places_insights___mx. FUNCTION_NAME
Нидерланды places_insights___nl. FUNCTION_NAME
Новая Зеландия places_insights___nz. FUNCTION_NAME
Норвегия places_insights___no. FUNCTION_NAME
Перу places_insights___pe. FUNCTION_NAME
Филиппины places_insights___ph. FUNCTION_NAME
Польша places_insights___pl. FUNCTION_NAME
Португалия places_insights___pt. FUNCTION_NAME
Катар places_insights___qa. FUNCTION_NAME
Румыния places_insights___ro. FUNCTION_NAME
Саудовская Аравия places_insights___sa. FUNCTION_NAME
Сингапур places_insights___sg. FUNCTION_NAME
ЮАР places_insights___za. FUNCTION_NAME
Южная Корея places_insights___kr. FUNCTION_NAME
Испания places_insights___es. FUNCTION_NAME
Швеция places_insights___se. FUNCTION_NAME
Швейцария places_insights___ch. FUNCTION_NAME
Тайвань places_insights___tw. FUNCTION_NAME
Таиланд places_insights___th. FUNCTION_NAME
Турция places_insights___tr. FUNCTION_NAME
Объединенные Арабские Эмираты places_insights___ae. FUNCTION_NAME
Великобритания places_insights___gb. FUNCTION_NAME
Соединенные Штаты places_insights___us. FUNCTION_NAME
Вьетнам places_insights___vn. FUNCTION_NAME