Función PLACES_COUNT_PER_TYPE_V2

La función PLACES_COUNT_PER_TYPE_V2 devuelve una tabla de BigQuery que contiene recuentos de lugares y muestras de IDs de lugar, desglosados por tipo de lugar, para varias ubicaciones geográficas de entrada. 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. Proporcionas las ubicaciones geográficas a través de una tabla de entrada y especificas los tipos de lugar como un array.

Sintaxis

SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_TYPE_V2`(
  TABLE input_geographies,
  target_types,
  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.
  • target_types (ARRAY<STRING>): Es un array de cadenas de tipo de lugar para los que deseas obtener recuentos. Los lugares se contabilizarán si coinciden con cualquiera de los tipos que se enumeran en su matriz types, no solo con el primary_type.
  • filters (JSON): Es un objeto JSON que contiene pares clave-valor para filtrar lugares de forma adicional. Consulta Parámetros de filtro.

Esquema de la tabla de salida

La función PLACES_COUNT_PER_TYPE_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_type STRING Es el tipo de lugar del array target_types que representa esta fila.
place_count INTEGER Es la cantidad de lugares que coinciden con place_type y otros filtros dentro o cerca de la ubicación geográfica.
sample_place_ids ARRAY<STRING> Es un array de hasta 250 IDs de lugar que coinciden con los criterios de este tipo y ubicación geográfica.

El resultado contendrá una fila para cada combinación de geo_id y place_type especificada en el array target_types, incluso si el recuento es cero.

Cómo funciona

La función procesa cada ubicación geográfica proporcionada en la tabla input_geographies. Para cada ubicación geográfica, se cuentan los lugares que coinciden con cualquiera de los tipos que se enumeran en el array target_types y que también satisfacen todas las condiciones del objeto JSON filters. Los resultados se agregan y desglosan por cada geo_id y cada tipo en target_types.

Ejemplo: Recuento de diferentes tipos de restaurantes en los condados de la ciudad de Nueva York

En este ejemplo, se genera una tabla de recuentos para los tipos "restaurante", "cafetería" y "bar" en tres condados de la ciudad de Nueva York.

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

El resultado será una tabla con 9 filas (3 condados * 3 tipos). Cada fila mostrará el recuento de establecimientos de "restaurante", "cafetería" o "bar" dentro de cada condado. También puedes incluir IDs de lugar de ejemplo si los agregas a tu instrucción SELECT.

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

Beneficios de usar PLACES_COUNT_PER_TYPE_V2

PLACES_COUNT_PER_TYPE_V2 ofrece varias ventajas clave, en especial en comparación con la función PLACES_COUNT_PER_TYPE anterior:

  • Procesamiento por lotes de geografías: A diferencia de PLACES_COUNT_PER_TYPE, que procesa una geografía a la vez, PLACES_COUNT_PER_TYPE_V2 acepta un TABLE de geografías de entrada. Esto te permite analizar y obtener recuentos específicos del tipo en numerosas ubicaciones geográficas (puntos, polígonos) en una sola consulta, en lugar de realizar varias llamadas a funciones.
  • Rendimiento y escalabilidad mejorados: Al tomar una entrada de tabla, PLACES_COUNT_PER_TYPE_V2 puede aprovechar las uniones geoespaciales optimizadas de BigQuery y las capacidades de procesamiento paralelo en todas las ubicaciones geográficas proporcionadas de forma simultánea. Esto genera mejoras significativas en el rendimiento y una mejor escalabilidad cuando se trabaja con una gran cantidad de ubicaciones geográficas.
  • Se incluyen los recuentos nulos: Devuelve filas con recuentos nulos para los tipos que no se encuentran en un área específica dentro del lote, lo que garantiza un conjunto de resultados completo para todas las combinaciones de tipo y ubicación geográfica.