функция PLACES_COUNT_PER_TYPE_V2

Функция 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, содержащая географические регионы для анализа. Эта таблица должна содержать следующие столбцы:
    • geo_id ( STRING ): Уникальный идентификатор для каждого географического региона.
    • geo ( GEOGRAPHY ): Объект BigQuery GEOGRAPHY, представляющий область. Это может быть точка, многоугольник или другой тип географических данных.
  • 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 по объединению геопространственных данных и параллельной обработке по всем предоставленным географическим регионам. Это приводит к значительному повышению производительности и улучшению масштабируемости при работе с большим количеством географических регионов.
  • Функция "Нулевые значения включительно": возвращает строки с нулевым количеством для типов, не найденных в определенной области в пакете данных, обеспечивая полный набор результатов для всех комбинаций типа и географического положения.