Функции подсчета мест представляют собой предопределенные SQL-запросы, которые выполняются в BigQuery и являются рекомендуемым способом запроса к набору данных Places Insights для получения точных данных о количестве мест и их идентификаторов. Хотя вы также можете запрашивать данные непосредственно из набора данных , оба метода запроса позволяют обрабатывать пороговые значения конфиденциальности и области поиска:
Функции подсчета мест могут возвращать любые значения, включая 0, но при этом устанавливают минимальную зону поиска 40,0 метров на 40,0 метров (1600 м² ) (40,0 метров на 40,0 метров / 1600 м²). Функции также возвращают идентификаторы мест (Place ID ), которые можно использовать для поиска информации об отдельных местах.
Запросы к набору данных Place могут возвращать только значения от 5 и выше (исключая значения от 0 до 4 для сохранения дифференциальной конфиденциальности), но не накладывают никаких ограничений на размер области поиска.
Если вам не требуется проводить сложный пространственный анализ, мы рекомендуем начать с функций подсчета мест, таких как PLACES_COUNT_PER_H3 . Она обеспечивает мгновенное получение информации о пространственной плотности в стандартизированных ячейках сетки, возвращает идентификаторы мест для проверки достоверности данных и специально разработана для проектирования геопространственных объектов и моделей машинного обучения.
Выберите оптимальную функцию подсчета мест.
Places Insights поддерживает несколько пространственных функций. Для оптимизации выполнения запросов, параллельной обработки и масштабируемости пакетной обработки мы рекомендуем использовать следующие функции:
-
PLACES_COUNT_PER_H3: Возвращает таблицу BigQuery с количеством мест в каждой ячейке H3. Эта функция рекомендуется для анализа региональной плотности и создания тепловых карт хорплетов. -
PLACES_COUNT_V2: Возвращает таблицу, содержащую количество мест и примеры идентификаторов мест. Эта функция принимает в качестве параметра таблицу, содержащую ваши входные географические данные. Передавая всю таблицу напрямую, механизм выполнения BigQuery может распределить рабочую нагрузку и обрабатывать пространственные пересечения параллельно, обеспечивая высокоэффективную пакетную обработку для крупномасштабного анализа. - Функция
PLACES_COUNT_PER_TYPE_V2возвращает таблицу с количеством мест и примерами идентификаторов мест, сгруппированных по типу места. АналогичноPLACES_COUNT_V2, передача входных географических данных в качестве параметра таблицы позволяет BigQuery распараллеливать пространственные пересечения в больших наборах данных.
Помимо подсчета количества мест, эти функции также возвращают до 250 идентификаторов мест (Place ID) для каждого элемента ответа.
Идентификаторы мест можно использовать со следующими элементами:
- API для работы с местами (новый)
- API геокодирования
- Набор элементов пользовательского интерфейса для мест
Выполняйте запросы с использованием функций подсчета мест.
Для вызова функций используйте следующий формат: [project name (optional)].[table name].[function name] .
Если вы изменили имя связанного набора данных при настройке Places Insights, используйте свое пользовательское имя вместо имен таблиц по умолчанию. Вы также можете дополнительно указать название своего проекта. Если оно не указано, запрос по умолчанию будет использовать название активного проекта.
Например:
PROJECT_NAME.places_insights___us.PLACES_COUNT_V2
Используйте 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
В следующем примере используется функция PLACES_COUNT_V2 с пользовательской таблицей географических данных my_search_areas для получения количества действующих ресторанов в радиусе 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_V2 для фильтрации по определенным идентификаторам брендов. В этом примере мы фильтруем местоположения Starbucks, используя идентификатор бренда "1413758728321880760" .
Чтобы найти идентификаторы брендов, по которым вы хотите выполнить фильтрацию, выполните запрос к таблице brands для вашего набора данных (например, places_insights___us.brands ). Для получения дополнительной информации о наборе данных brands см. раздел «Написание запроса с использованием данных brands» .
Например, чтобы найти идентификатор бренда для "Starbucks":
SELECT id, name FROM `PROJECT_NAME.places_insights___us.brands` WHERE name = "Starbucks"
Получив идентификаторы брендов, вы можете использовать их в фильтре brand_ids , как показано в следующем запросе:
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'], 'brand_ids', ["1413758728321880760"] ) );
Визуализируйте результаты запросов с помощью инструментов Google Cloud.
Инструменты анализа и бизнес-аналитики помогут вам извлечь ценные сведения из данных BigQuery. BigQuery поддерживает несколько инструментов визуализации данных от Google и сторонних разработчиков, которые можно использовать для анализа результатов работы ваших функций на основе данных Places Insights.
Пример визуализации результатов функции см. в разделе «Визуализация результатов» в справочнике PLACES_COUNT_PER_H3 . Дополнительную информацию о визуализации результатов Places Insights см. в разделе «Визуализация результатов запроса» .
Функциональные ограничения и требования
Функции подсчета мест имеют следующие ограничения и требования:
- Данные функции поддерживают только подсчет
COUNT. - Требуется минимальная зона поиска размером 40,0 метров на 40,0 метров (1600 м² ) (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-объект, включая все определения географических регионов. Это может ограничить количество географических регионов, которые можно обработать за один вызов.
- Для функций V2 (
- Фильтрация по идентификатору места, вариантам зарядки электромобилей или компоненту адреса не поддерживается.
- Вы можете использовать функции подсчета мест только для тех городов и стран, на которые у вас оформлена подписка. См. раздел «Настройка Places Insights» для получения информации о доступе к наборам данных.
- Параметры фильтра (например,
geographyилиtypes) чувствительны к регистру и должны точно совпадать с именами параметров, иначе запрос завершится ошибкой.