Функции подсчета мест — это предопределенные SQL-запросы, которые выполняются в BigQuery и дополняют прямой запрос к набору данных . Основное отличие прямого запроса к данным от использования функции заключается в том, что функции не устанавливают минимальный пороговый уровень подсчета , а вместо этого устанавливают минимальную область поиска :
- Запросы к наборам данных могут возвращать значения не менее 5, но не накладывают ограничений на размер области поиска.
- Функции подсчета мест могут возвращать любые значения, включая 0, но при этом устанавливают минимальную зону поиска в 40,0 на 40,0 метров (1600 м² ). Функции также могут возвращать идентификаторы мест (Place ID ), которые можно использовать для поиска информации об отдельных местах.
Функции подсчета мест могут быть полезны, если важно знать, когда запрос не возвращает результатов, или если вам нужно знать небольшое количество мест (менее 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 идентификаторов мест для каждого элемента ответа. См. все параметры фильтра .
Идентификаторы мест можно использовать со следующими элементами:
- API для работы с местами (новый)
- API геокодирования
- Набор элементов пользовательского интерфейса для мест
Пишите запросы с использованием функций.
Для вызова функций используйте следующий формат: [project name (optional)].[table name].[function name] .
Если вы изменили имя связанного набора данных при настройке Places Insights, используйте свое пользовательское имя вместо имен таблиц по умолчанию, указанных в разделе «Функции подсчета мест в BigQuery» . Вы также можете дополнительно указать название своего проекта. Если оно не указано, запрос по умолчанию будет использовать название активного проекта.
Например:
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 м² ).
- Размер входного параметра подсчета функций ограничен 1 МБ.
- Фильтрация по идентификатору места, маркам, вариантам зарядки электромобилей или компонентам адреса не поддерживается.
- Вы можете использовать функции подсчета мест только для тех городов и стран, на которые у вас оформлена подписка. См. раздел «Настройка Places Insights» для получения информации о доступе к наборам данных.
- Параметры фильтра (например,
geographyилиtypes) чувствительны к регистру и должны точно совпадать с именами параметров, иначе запрос завершится ошибкой.
Функция подсчета мест в BigQuery
Все города в представленном наборе данных, а также полный набор данных по странам поддерживают функции подсчета мест.
Вам доступны функции подсчета мест, соответствующие наборам данных о городах и странах, на которые вы подписаны. См. раздел «Настройка Places Insights» для получения информации о доступе к наборам данных.
В этих таблицах перечислены доступные города, страны и соответствующие им названия таблиц.
Пример данных
| Город, Страна | Названия таблиц |
|---|---|
| Сидней, Австралия | places_insights___au___sample. FUNCTION_NAME |
| Сан-Паулу, Бразилия | places_insights___br___sample. FUNCTION_NAME |
| Торонто, Канада | places_insights___ca___sample. FUNCTION_NAME |
| Париж, Франция | places_insights___fr___sample. FUNCTION_NAME |
| Берлин, Германия | places_insights___de___sample. FUNCTION_NAME |
| Мумбаи, Индия | places_insights___in___sample. FUNCTION_NAME |
| Джакарта, Индонезия | places_insights___id___sample. FUNCTION_NAME |
| Рим, Италия | places_insights___it___sample. FUNCTION_NAME |
| Токио, Япония | places_insights___jp___sample. FUNCTION_NAME |
| Мехико, Мексика | places_insights___mx___sample. FUNCTION_NAME |
| Мадрид, Испания | places_insights___es___sample. FUNCTION_NAME |
| Цюрих, Швейцария | places_insights___ch___sample. FUNCTION_NAME |
| Лондон, Соединенное Королевство | places_insights___gb___sample. FUNCTION_NAME |
| Нью-Йорк, США | places_insights___us___sample. FUNCTION_NAME |
Полные данные
| Страна | Названия таблиц |
|---|---|
| Австралия | places_insights___au. FUNCTION_NAME |
| Бразилия | places_insights___br. FUNCTION_NAME |
| Канада | places_insights___ca. FUNCTION_NAME |
| Франция | places_insights___fr. FUNCTION_NAME |
| Германия | places_insights___de. FUNCTION_NAME |
| Индия | places_insights___in. FUNCTION_NAME |
| Индонезия | places_insights___id. FUNCTION_NAME |
| Италия | places_insights___it. FUNCTION_NAME |
| Япония | places_insights___jp. FUNCTION_NAME |
| Мексика | places_insights___mx. FUNCTION_NAME |
| Испания | places_insights___es. FUNCTION_NAME |
| Швейцария | places_insights___ch. FUNCTION_NAME |
| Великобритания | places_insights___gb. FUNCTION_NAME |
| Соединенные Штаты | places_insights___us. FUNCTION_NAME |