Recuentos de lugares de interés de la búsqueda

La función PLACES_COUNT_V2 muestra una tabla de BigQuery que contiene recuentos de lugares y IDs de lugares de muestra 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 cualquier otro tipo de ubicación geográfica.
  • 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 muestra 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, 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 lugares que cumplen con los criterios.

Cómo funciona

La función procesa cada fila de la tabla input_geographies. Para cada geo objeto, cuenta la cantidad de lugares que se encuentran dentro de la ubicación geográfica (o dentro de el geography_radius si el geo es un punto y el radio se especifica en el filters). El recuento incluye solo aquellos lugares que cumplen 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 la Oficina del Censo de los 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, que mostrarán el geo_id, el input_geography, el place_count y el 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 en comparación con 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 ubicaciones geográficas en una tabla.
  • Rendimiento: Utiliza las uniones geoespaciales optimizadas de BigQueryque ofrecen ventajas de velocidad significativas para conjuntos de datos grandes.
  • Escalabilidad: Está diseñada para controlar una gran cantidad de ubicaciones geográficas de entrada sin las limitaciones del tamaño de un solo parámetro JSON.
  • Incluye recuentos cero: PLACES_COUNT_V2 muestra una fila para cada geo_id proporcionado en la tabla de entrada. Si ningún lugar cumple con los criterios para una ubicación geográfica determinada, el place_count será 0. Esto garantiza que tengas un resultado para cada área de entrada, de modo que puedas ver dónde no hay lugares.
  • Instantáneas históricas: Consulta los datos de recuento de lugares de un mes específico con el filtro opcional snapshot_date.

Ejemplo: Consulta los recuentos de PDI de un mes anterior

En este ejemplo, se muestra cómo consultar los recuentos históricos de PDI para ubicaciones específicas con el parámetro snapshot_date. Filtra los resultados de los lugares con instalaciones de carga de vehículos eléctricos especificadas por max_ev_max_charge_rate_kw junto con regular_opening_hours específicas.

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(
    'geography_radius', 5000,
    'snapshot_date', '2026-01', -- Target snapshot month (YYYY-MM)
    'max_ev_max_charge_rate_kw', 30.0, -- Filter by EV charge rate in kW
    'regular_opening_hours', JSON_OBJECT(
      'monday', [JSON_OBJECT('start_time', '09:00', 'end_time', '12:00')]
    )
  )
);