Функция PLACES_COUNT_V2 возвращает таблицу BigQuery, содержащую количество мест и примеры идентификаторов мест для нескольких заданных географических регионов на основе указанных фильтров. Эта функция предназначена для эффективной пакетной обработки, принимая в качестве параметра входную таблицу географических регионов, что позволяет анализировать множество интересующих областей в одном запросе, предоставляя географические регионы через входную таблицу.
Синтаксис
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_V2`( TABLE input_geographies, filters )
Параметры
-
PROJECT_NAME: Название вашего проекта в Google Cloud. -
LINKED_DATASET_NAME: Название набора данных BigQuery, содержащего функции Places Insights (например,places_insights___us). -
input_geographies: Таблица BigQuery, содержащая географические регионы для анализа. Эта таблица должна содержать следующие столбцы: -
filters( JSON ): JSON-объект, содержащий пары ключ-значение для фильтрации мест. См. Параметры фильтра .
Схема выходной таблицы
Функция PLACES_COUNT_V2 возвращает таблицу со следующими столбцами:
| Название столбца | Тип данных | Описание |
|---|---|---|
geo_id | НИТЬ | Уникальный идентификатор входного географического региона из таблицы input_geographies . |
input_geography | ГЕОГРАФИЯ | Исходный объект GEOGRAPHY из таблицы input_geographies . |
place_count | ЦЕЛОЕ | Общее количество мест, соответствующих фильтрам. |
sample_place_ids | МАССИВ<СТРОКА> | Массив, содержащий до 250 идентификаторов мест, соответствующих заданным критериям. |
Как это работает
Функция обрабатывает каждую строку в таблице input_geographies . Для каждого объекта geo она подсчитывает количество мест, попадающих в указанный географический регион (или в geography_radius , если geo является точкой, а радиус указан в filters ). Подсчет включает только те места, которые соответствуют всем условиям, определенным в JSON-объекте filters .
Пример: Рассчитайте количество ресторанов в трех округах Нью-Йорка.
В этом примере генерируется таблица с количеством действующих ресторанов в трех округах Нью-Йорка.
В этом примере используется общедоступный набор данных BigQuery Бюро переписи населения США для получения границ трех округов Нью-Йорка: «Куинс», «Кингс» и «Нью-Йорк». Границы каждого округа содержатся в столбце county_geom .
Сначала мы создаём временную таблицу new_york_counties для хранения geo_id и упрощённого значения GEOGRAPHY для каждого округа.
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`( ( SELECT county_name AS geo_id, ST_SIMPLIFY(county_geom, 100) AS geo FROM `bigquery-public-data.geo_us_boundaries.counties` WHERE state_fips_code = "36" -- New York State AND county_name IN ("Queens", "Kings", "New York") ), JSON_OBJECT( 'types', ["restaurant"], 'business_status', ['OPERATIONAL'] ) );
В таблице ответов будет три строки, по одной для каждого округа, отображающие geo_id , input_geography , place_count и sample_place_ids действующих ресторанов.

Преимущества использования PLACES_COUNT_V2
PLACES_COUNT_V2 обладает значительными преимуществами по сравнению с PLACES_COUNT и PLACES_COUNT_PER_GEO :
- Пакетная обработка: Эффективный анализ тысяч пользовательских географических регионов в одном запросе путем предоставления нескольких географических данных в таблице.
- Производительность: Использует оптимизированные геопространственные объединения BigQuery, обеспечивая значительное преимущество в скорости обработки больших наборов данных.
- Масштабируемость: Разработан для обработки большого количества входных географических данных без ограничений, связанных с размером одного параметра JSON.
- Включая нулевые значения:
PLACES_COUNT_V2возвращает строку для каждогоgeo_id, указанного во входной таблице. Если ни одно место не соответствует критериям для данного географического региона,place_countбудет равно 0. Это гарантирует наличие результата для каждой входной области, что позволяет увидеть, где места отсутствуют.