Функции подсчёта мест — это предопределённые SQL-запросы, которые выполняются в BigQuery и дополняют прямые запросы к набору данных . Основное отличие между прямыми запросами данных и использованием функции заключается в том, что функции не устанавливают минимальное пороговое значение количества , а вместо этого устанавливают минимальную область поиска :
- Запросы к наборам данных мест могут возвращать только значения от 5 и выше, но не накладывают ограничений на размер области поиска.
- Функции подсчёта мест могут возвращать любые значения, включая 0, но при этом минимальная область поиска должна составлять 40,0 на 40,0 метров (1600 м² ). Функции также могут возвращать идентификаторы мест , которые можно использовать для поиска информации об отдельных местах.
Возможно, вам захочется использовать функции подсчета мест, если важно знать, когда запрос не возвращает результатов или если вам нужно узнать количество мест ниже 5. Это также полезно, если вам нужно получить информацию об отдельных местах для выборочной проверки результатов.
Функции подсчета мест предоставляют только подсчеты, поэтому, если вам нужно выполнить более сложные запросы, например, объединение данных, или получить дополнительную информацию, например средний рейтинг группы мест, то запросите набор данных напрямую .
Поддерживаемые функции подсчета мест и стран
Places Insights поддерживает следующие функции:
-
PLACES_COUNT: Возвращает одну строку, содержащую количество мест. -
PLACES_COUNT_PER_TYPE: Возвращает таблицу BigQuery с количеством мест по типу мест. -
PLACES_COUNT_PER_GEO: Возвращает таблицу BigQuery с количеством мест по географическим регионам. -
PLACES_COUNT_PER_H3: Возвращает таблицу BigQuery с количеством мест на ячейку H3.
Помимо количества мест, функции PLACES_COUNT_PER_TYPE , PLACES_COUNT_PER_GEO и PLACES_COUNT_PER_H3 также возвращают до 250 идентификаторов мест на элемент ответа. См. все параметры фильтра .
Идентификаторы мест можно использовать с:
Написание запросов с функциями
Для вызова функций используйте следующий формат: [project name (optional)].[table name].[function name] .
Если вы изменили имя связанного набора данных при настройке Places Insights, используйте собственное имя вместо имён таблиц по умолчанию, перечисленных здесь. Вы также можете указать имя своего проекта. Если имя не указано, запрос по умолчанию будет использовать активный проект.
Например:
PROJECT_NAME.places_insights___us.PLACES_COUNT
Используйте JSON_OBJECT для передачи аргументов функции.
Фильтруйте результаты
Функции подсчёта мест поддерживают множество фильтров для уточнения поиска. Эти параметры (например, price_level или types ) чувствительны к регистру и должны точно соответствовать именам параметров. Полный список параметров см. в справочнике параметров фильтра .
В следующем примере вы примените фильтры, чтобы ограничить поиск по минимальному рейтингу пользователя, уровню цен, статусу компании и тому, разрешает ли ресторан приходить с собаками:
SELECT `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'types', ["restaurant"], 'min_rating', 1.3, 'price_level', ['PRICE_LEVEL_INEXPENSIVE', 'PRICE_LEVEL_MODERATE'], 'allows_dogs', TRUE ) ) as count;
Пример функции подсчета мест
В следующем примере функция PLACES_COUNT используется для возврата количества действующих ресторанов в радиусе 1000 метров от Эмпайр-стейт-билдинг в Нью-Йорке:
SELECT `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'types', ["restaurant"] ) ) as count;
Ответ содержит один отсчет:

В этом примере функция BigQuery ST_GEOGPOINT возвращает значение GEOGRAPHY из точки и затем передаёт его параметру geography . Также передаются радиус поиска вокруг точки и тип места для поиска "restaurant" .
Количество мест по типу, географическому положению или примеру H3
Наряду с количеством мест функции PLACES_COUNT_PER_TYPE , PLACES_COUNT_PER_GEO и PLACES_COUNT_PER_H3 также возвращают до 250 идентификаторов мест, включенных в ответ.
Например, функция PLACES_COUNT_PER_TYPE возвращает таблицу количества мест по типу. В ответ включен массив идентификаторов мест, соответствующих каждому типу. Возвращенные идентификаторы можно использовать для поиска информации о каждом месте.
Следующий вызов функции возвращает количество мест с типами: restaurant , cafe и bar :
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_TYPE`( JSON_OBJECT( 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 1000, -- Radius in meters 'types', ["restaurant", "cafe", "bar"], 'business_status', ['OPERATIONAL'] ) );
Эта функция возвращает таблицу с тремя столбцами: type , count и sample_place_ids . Столбец count показывает количество мест для каждого type , а столбец sample_place_ids — до 250 идентификаторов мест для каждого type .

Визуализация результатов
Инструменты анализа и бизнес-аналитики играют ключевую роль в извлечении ценной информации из данных BigQuery. BigQuery поддерживает несколько инструментов визуализации данных Google и сторонних разработчиков, которые можно использовать для анализа результатов ваших функций на основе данных Places Insights.
Пример визуализации результатов функции см. в разделе Визуализация результатов . Дополнительные сведения и пример визуализации результатов Places Insights см. в разделе Визуализация результатов запроса .
Ограничения и требования
Функции подсчета мест имеют следующие ограничения и требования:
- Поддерживается только
COUNTаналитических данных. - Минимальная площадь поиска должна составлять 40,0 на 40,0 метров (1600 м2 ).
- Размер входного параметра подсчета функции размещения ограничен 1 МБ.
- Фильтрация по идентификатору места, марке, вариантам зарядки электромобиля или компоненту адреса не поддерживается.
- Вы можете получить доступ к функциям подсчёта мест только для тех городов и стран, на которые вы подписались. Подробнее о настройке Places Insights читайте в разделе «Доступ к наборам данных».
- Параметры фильтра (например,
geographyилиtypes) чувствительны к регистру и должны точно соответствовать именам параметров, иначе запрос не будет выполнен.