Функция PLACES_COUNT_PER_TYPE_V2 возвращает таблицу BigQuery, содержащую количество мест и примеры идентификаторов мест, разбитых по типам мест, для нескольких заданных географических регионов. Эта функция предназначена для эффективной пакетной обработки, принимая в качестве параметра входную таблицу географических регионов. Вы указываете географические регионы через входную таблицу и типы мест в виде массива.
Синтаксис
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_TYPE_V2`( TABLE input_geographies, target_types, filters )
Параметры
-
PROJECT_NAME: Название вашего проекта в Google Cloud. -
LINKED_DATASET_NAME: Название набора данных BigQuery, содержащего функции Places Insights (например,places_insights___us). -
input_geographies: Таблица BigQuery, содержащая географические регионы для анализа. Эта таблица должна содержать следующие столбцы: -
target_types( ARRAY<STRING> ): Массив строковых типов мест, для которых вы хотите получить количество совпадений. Места будут подсчитаны, если они соответствуют любому из типов, перечисленных в их массивеtypes, а не толькоprimary_type. -
filters( JSON ): JSON-объект, содержащий пары ключ-значение для дополнительной фильтрации мест. См. Параметры фильтра .
Схема выходной таблицы
Функция PLACES_COUNT_PER_TYPE_V2 возвращает таблицу со следующими столбцами:
| Название столбца | Тип данных | Описание |
|---|---|---|
geo_id | НИТЬ | Уникальный идентификатор входного географического региона из таблицы input_geographies . |
input_geography | ГЕОГРАФИЯ | Исходный объект GEOGRAPHY из таблицы input_geographies . |
place_type | НИТЬ | Тип места из массива target_types , который представляет эта строка. |
place_count | ЦЕЛОЕ | Количество мест, соответствующих place_type и другим фильтрам в пределах или вблизи указанного географического региона. |
sample_place_ids | МАССИВ<СТРОКА> | Массив, содержащий до 250 идентификаторов мест, соответствующих критериям данного типа и географического положения. |
В выходных данных будет содержаться строка для каждой комбинации geo_id и place_type , указанных в массиве target_types , даже если количество таких комбинаций равно нулю.
Как это работает
Функция обрабатывает каждый географический объект, предоставленный в таблице input_geographies . Для каждого географического объекта она подсчитывает количество мест, соответствующих любому из типов, перечисленных в массиве target_types , а также удовлетворяющих всем условиям в JSON-объекте filters . Результаты агрегируются и разбиваются по каждому geo_id и каждому типу в target_types .
Пример: Подсчитайте количество различных типов заведений общественного питания в округах Нью-Йорка.
В этом примере генерируется таблица с подсчетом количества заведений типов "ресторан", "кафе" и "бар" в трех округах Нью-Йорка.
SELECT geo_id, input_geography, place_type, place_count FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_TYPE_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") ), ['restaurant', 'cafe', 'bar'], -- target_types JSON_OBJECT( 'business_status', ['OPERATIONAL'] ) );
В результате получится таблица из 9 строк (3 округа * 3 типа). В каждой строке будет указано количество заведений типа «ресторан», «кафе» или «бар» в каждом округе. Вы также можете добавить примеры идентификаторов мест, если включите их в свой запрос SELECT.

Преимущества использования PLACES_COUNT_PER_TYPE_V2
Функция PLACES_COUNT_PER_TYPE_V2 обладает рядом ключевых преимуществ, особенно по сравнению со старой функцией PLACES_COUNT_PER_TYPE :
- Пакетная обработка географических данных: В отличие от
PLACES_COUNT_PER_TYPE, которая обрабатывает только один географический объект за раз,PLACES_COUNT_PER_TYPE_V2принимает на входTABLEгеографических данных. Это позволяет анализировать и получать данные о количестве объектов определенного типа (точек, полигонов) в рамках одного запроса, вместо выполнения нескольких вызовов функций. - Повышенная производительность и масштабируемость: благодаря использованию табличных входных данных,
PLACES_COUNT_PER_TYPE_V2может одновременно использовать оптимизированные возможности BigQuery по объединению геопространственных данных и параллельной обработке по всем предоставленным географическим регионам. Это приводит к значительному повышению производительности и улучшению масштабируемости при работе с большим количеством географических регионов. - Функция "Нулевые значения включительно": возвращает строки с нулевым количеством для типов, не найденных в определенной области в пакете данных, обеспечивая полный набор результатов для всех комбинаций типа и географического положения.