Funzione PLACES_COUNT_PER_TYPE_V2

La funzione PLACES_COUNT_PER_TYPE_V2 restituisce una tabella BigQuery contenente conteggi dei luoghi e ID luogo di esempio, suddivisi per tipo di luogo, per più geografie di input. Questa funzione è progettata per l'elaborazione batch efficiente accettando un parametro della tabella di input di aree geografiche. Fornisci le aree geografiche tramite una tabella di input e specifica i tipi di luogo come array.

Sintassi

SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_TYPE_V2`(
  TABLE input_geographies,
  target_types,
  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.
  • target_types (ARRAY<STRING>): un array di stringhe di tipo di luogo per cui vuoi ottenere i conteggi. I luoghi verranno conteggiati se corrispondono a uno qualsiasi dei tipi elencati nel relativo array types, non solo a primary_type.
  • filters (JSON): un oggetto JSON contenente coppie chiave-valore per il filtro aggiuntivo dei luoghi. Vedi Parametri del filtro.

Schema della tabella di output

La funzione PLACES_COUNT_PER_TYPE_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_type STRING Il tipo di luogo dell'array target_types rappresentato da questa riga.
place_count INTEGER Il numero di luoghi che corrispondono a place_type e ad altri filtri all'interno o in prossimità dell'area geografica.
sample_place_ids ARRAY<STRING> Un array di massimo 250 ID luogo che corrispondono ai criteri per questo tipo e questa area geografica.

L'output conterrà una riga per ogni combinazione di geo_id e place_type specificata nell'array target_types, anche se il conteggio è zero.

Come funziona

La funzione elabora ogni località fornita nella tabella input_geographies. Per ogni area geografica, vengono conteggiati i luoghi che corrispondono a uno qualsiasi dei tipi elencati nella matrice target_types e che soddisfano anche tutte le condizioni nell'oggetto JSON filters. I risultati vengono aggregati e suddivisi per ogni geo_id e per ogni tipo in target_types.

Esempio: conteggio di diversi tipi di ristoranti nelle contee di New York

Questo esempio genera una tabella dei conteggi per i tipi "ristorante", "caffè" e "bar" in tre contee di New York City.

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

Il risultato sarà una tabella con 9 righe (3 contee * 3 tipi). Ogni riga mostrerà il conteggio di "ristoranti", "caffè" o "bar" all'interno di ogni contea. Puoi anche includere ID luogo di esempio se li aggiungi all'istruzione SELECT.

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

Vantaggi dell'utilizzo di PLACES_COUNT_PER_TYPE_V2

PLACES_COUNT_PER_TYPE_V2 offre diversi vantaggi chiave, in particolare se confrontato con la funzione PLACES_COUNT_PER_TYPE precedente:

  • Elaborazione batch delle aree geografiche:a differenza di PLACES_COUNT_PER_TYPE, che elabora un'area geografica alla volta, PLACES_COUNT_PER_TYPE_V2 accetta un TABLE di aree geografiche di input. In questo modo puoi analizzare e ottenere conteggi specifici per tipo in numerose aree geografiche (punti, poligoni) in una singola query, anziché effettuare più chiamate di funzioni.
  • Prestazioni e scalabilità migliorate: prendendo come input una tabella, PLACES_COUNT_PER_TYPE_V2 può sfruttare i join spaziali ottimizzati di BigQuery e le funzionalità di elaborazione parallela in tutte le aree geografiche fornite contemporaneamente. Ciò comporta miglioramenti significativi delle prestazioni e una migliore scalabilità quando si ha a che fare con un numero elevato di località.
  • Conteggi pari a zero inclusi:restituisce righe con conteggi pari a 0 per i tipi non trovati in un'area specifica all'interno del batch, garantendo un insieme completo di risultati per tutte le combinazioni di tipo e area geografica.