Funzione PLACES_COUNT_V2

La funzione PLACES_COUNT_V2 restituisce una tabella BigQuery contenente i conteggi dei luoghi e gli ID luogo di esempio per più geografie di input in base ai filtri specificati. Questa funzione è progettata per l'elaborazione batch efficiente accettando un parametro della tabella di input delle aree geografiche, consentendoti di analizzare molte aree di interesse in un'unica query fornendo le aree geografiche tramite una tabella di input.

Sintassi

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

Parametri

  • PROJECT_NAME: il nome del tuo progetto Google Cloud.
  • LINKED_DATASET_NAME: il nome del set di dati BigQuery contenente le funzioni Places Insights (ad es. places_insights___us).
  • input_geographies: una tabella BigQuery contenente le aree geografiche da analizzare. Questa tabella deve includere le seguenti colonne:
    • geo_id (STRING): un identificatore univoco per ogni area geografica.
    • geo (GEOGRAPHY): l'oggetto BigQuery GEOGRAPHY che rappresenta l'area. Può essere un punto, un poligono o un altro tipo di geografia.
  • filters (JSON): un oggetto JSON contenente coppie chiave-valore per filtrare i luoghi. Vedi Parametri del filtro.

Schema della tabella di output

La funzione PLACES_COUNT_V2 restituisce una tabella con le seguenti colonne:

Nome colonna Tipo di dati Descrizione
geo_id STRING L'identificatore univoco della geografia di input, dalla tabella input_geographies.
input_geography GEOGRAPHY L'oggetto GEOGRAPHY originale della tabella input_geographies.
place_count INTEGER Il numero totale di luoghi corrispondenti ai filtri.
sample_place_ids ARRAY<STRING> Un array di massimo 250 ID luogo che corrispondono ai criteri.

Come funziona

La funzione elabora ogni riga della tabella input_geographies. Per ogni oggetto geo, viene conteggiato il numero di luoghi che rientrano nella geografia (o all'interno di geography_radius se geo è un punto e il raggio è specificato in filters). Il conteggio include solo i luoghi che corrispondono a tutte le condizioni definite nell'oggetto JSON filters.

Esempio: calcola il numero di ristoranti in tre contee di New York City

Questo esempio genera una tabella con il numero di ristoranti operativi in tre contee di New York City.

Questo esempio utilizza il set di dati pubblico BigQuery United States Census Bureau Data per ottenere i confini di tre contee di New York City: "Queens", "Kings" e "New York". I confini di ogni contea sono contenuti nella colonna county_geom.

Innanzitutto, creiamo una tabella temporanea new_york_counties per contenere geo_id e GEOGRAPHY semplificato per ogni contea.

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 tabella delle risposte avrà tre righe, una per ogni contea, che mostrano geo_id, input_geography, place_count e sample_place_ids dei ristoranti operativi.

Risultati per la funzione Conteggio luoghi nelle contee di New York.

Vantaggi dell'utilizzo di PLACES_COUNT_V2

PLACES_COUNT_V2 offre vantaggi significativi rispetto a PLACES_COUNT e PLACES_COUNT_PER_GEO:

  • Elaborazione batch:analizza in modo efficiente migliaia di aree geografiche personalizzate in un'unica query fornendo più input geografici in una tabella.
  • Rendimento:utilizza unioni geospaziali ottimizzate di BigQuery, offrendo vantaggi significativi in termini di velocità per i set di dati di grandi dimensioni.
  • Scalabilità:progettato per gestire un numero elevato di geografie di input senza le limitazioni delle dimensioni di un singolo parametro JSON.
  • Conteggi pari a zero inclusi:PLACES_COUNT_V2 restituisce una riga per ogni geo_id fornito nella tabella di input. Se nessun luogo corrisponde ai criteri per una determinata area geografica, il valore di place_count sarà 0. In questo modo, avrai un risultato per ogni area di input, così potrai vedere dove mancano i luoghi.