Función PLACES_COUNT_V2

La función PLACES_COUNT_V2 devuelve una tabla de BigQuery que contiene recuentos de lugares y muestras de IDs de lugar para varias ubicaciones geográficas de entrada según los filtros especificados. Esta función está diseñada para el procesamiento por lotes eficiente, ya que acepta un parámetro de tabla de entrada de ubicaciones geográficas, lo que te permite analizar muchas áreas de interés en una sola consulta proporcionando las ubicaciones geográficas a través de una tabla de entrada.

Sintaxis

SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_V2`(
  TABLE input_geographies,
  filters
)

Parámetros

  • PROJECT_NAME: Es el nombre de tu proyecto de Google Cloud.
  • LINKED_DATASET_NAME: Es el nombre del conjunto de datos de BigQuery que contiene las funciones de Places Insights (p.ej., places_insights___us).
  • input_geographies: Es una tabla de BigQuery que contiene las ubicaciones geográficas que se analizarán. Esta tabla debe incluir las siguientes columnas:
    • geo_id (STRING): Es un identificador único para cada ubicación geográfica.
    • geo (GEOGRAPHY): Es el objeto GEOGRAPHY de BigQuery que representa el área. Puede ser un punto, un polígono o algún otro tipo de geografía.
  • filters (JSON): Es un objeto JSON que contiene pares clave-valor para filtrar los lugares. Consulta Parámetros de filtro.

Esquema de la tabla de salida

La función PLACES_COUNT_V2 devuelve una tabla con las siguientes columnas:

Nombre de la columna Tipo de datos Descripción
geo_id STRING Es el identificador único de la ubicación geográfica de entrada, que se obtiene de la tabla input_geographies.
input_geography GEOGRAPHY Es el objeto GEOGRAPHY original de la tabla input_geographies.
place_count INTEGER Es la cantidad total de lugares que coinciden con los filtros.
sample_place_ids ARRAY<STRING> Es un array de hasta 250 IDs de lugar que coinciden con los criterios.

Cómo funciona

La función procesa cada fila de la tabla input_geographies. Para cada objeto geo, se cuenta la cantidad de lugares que se encuentran dentro de la geografía (o dentro del geography_radius si el geo es un punto y el radio se especifica en el filters). El recuento incluye solo aquellos lugares que coinciden con todas las condiciones definidas en el objeto JSON filters.

Ejemplo: Calcula la cantidad de restaurantes en tres condados de la ciudad de Nueva York

En este ejemplo, se genera una tabla con la cantidad de restaurantes operativos en tres condados de la ciudad de Nueva York.

En este ejemplo, se usa el conjunto de datos públicos de BigQuery de los datos de la Oficina del Censo de Estados Unidos para obtener los límites de tres condados de la ciudad de Nueva York: "Queens", "Kings" y "New York". Los límites de cada condado se encuentran en la columna county_geom.

Primero, creamos una tabla temporal new_york_counties para contener el geo_id y el GEOGRAPHY simplificado de cada condado.

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']
  )
);

La tabla de respuesta tendrá tres filas, una para cada condado, en las que se mostrarán los valores de geo_id, input_geography, place_count y sample_place_ids de los restaurantes operativos.

Resultados de la función Places Count en los condados de Nueva York.

Beneficios de usar PLACES_COUNT_V2

PLACES_COUNT_V2 ofrece ventajas significativas sobre PLACES_COUNT y PLACES_COUNT_PER_GEO:

  • Procesamiento por lotes: Analiza de manera eficiente miles de ubicaciones geográficas personalizadas en una sola consulta proporcionando varias entradas de ubicación geográfica en una tabla.
  • Rendimiento: Utiliza las uniones geoespaciales optimizadas de BigQuery, lo que ofrece ventajas significativas en cuanto a la velocidad para los conjuntos de datos grandes.
  • Escalabilidad: Está diseñado para controlar una gran cantidad de ubicaciones geográficas de entrada sin las limitaciones del tamaño de un solo parámetro JSON.
  • Se incluyen los recuentos nulos: PLACES_COUNT_V2 devuelve una fila para cada geo_id proporcionado en la tabla de entrada. Si ningún lugar coincide con los criterios para una ubicación geográfica determinada, el valor de place_count será 0. Esto garantiza que obtendrás un resultado para cada área de entrada, de modo que puedas ver dónde faltan lugares.