PLACES_COUNT_V2-Funktion

Die Funktion PLACES_COUNT_V2 gibt eine BigQuery-Tabelle mit Ortsanzahlen und Beispiel-Orts-IDs für mehrere Eingabegeografien basierend auf angegebenen Filtern zurück. Diese Funktion ist für die effiziente Batchverarbeitung konzipiert. Sie akzeptiert einen Parameter für die Eingabetabelle mit geografischen Einheiten, sodass Sie viele interessante Gebiete in einer einzigen Abfrage analysieren können, indem Sie die geografischen Einheiten über eine Eingabetabelle angeben.

Syntax

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

Parameter

  • PROJECT_NAME ist der Name Ihres Google Cloud-Projekts.
  • LINKED_DATASET_NAME: Der Name des BigQuery-Datasets, das die Places Insights-Funktionen enthält (z.B. places_insights___us).
  • input_geographies: Eine BigQuery-Tabelle mit den zu analysierenden geografischen Einheiten. Diese Tabelle muss die folgenden Spalten enthalten:
    • geo_id (STRING): Eine eindeutige Kennung für jede geografische Einheit.
    • geo (GEOGRAPHY): Das BigQuery-GEOGRAPHY-Objekt, das den Bereich darstellt. Das kann ein Punkt, ein Polygon oder ein anderer geografischer Typ sein.
  • filters (JSON): Ein JSON-Objekt mit Schlüssel/Wert-Paaren zum Filtern der Orte. Weitere Informationen

Ausgabetabellenschema

Die Funktion PLACES_COUNT_V2 gibt eine Tabelle mit den folgenden Spalten zurück:

Spaltenname Datentyp Beschreibung
geo_id STRING Die eindeutige Kennung für die Eingabegeografie aus der Tabelle input_geographies.
input_geography GEOGRAPHY Das ursprüngliche GEOGRAPHY-Objekt aus der Tabelle input_geographies.
place_count INTEGER Die Gesamtzahl der Orte, die den Filtern entsprechen.
sample_place_ids ARRAY<STRING> Ein Array mit bis zu 250 Orts-IDs, die den Kriterien entsprechen.

Funktionsweise

Die Funktion verarbeitet jede Zeile in der Tabelle input_geographies. Für jedes geo-Objekt wird die Anzahl der Orte gezählt, die in die geografische Einheit fallen (oder in den geography_radius, wenn geo ein Punkt ist und der Radius im filters angegeben ist). Die Anzahl umfasst nur Orte, die allen im JSON-Objekt filters definierten Bedingungen entsprechen.

Beispiel: Anzahl der Restaurants in drei Bezirken von New York City berechnen

In diesem Beispiel wird eine Tabelle mit der Anzahl der Restaurants in Betrieb in drei Bezirken von New York City generiert.

In diesem Beispiel wird das öffentliche BigQuery-Dataset Daten des US Census Bureau verwendet, um die Grenzen für drei Bezirke in New York City abzurufen: „Queens“, „Kings“ und „New York“. Die Grenzen der einzelnen Landkreise sind in der Spalte county_geom enthalten.

Zuerst erstellen wir eine temporäre Tabelle new_york_counties, in der die geo_id und die vereinfachte GEOGRAPHY für jeden Bezirk gespeichert werden.

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

Die Antworttabelle enthält drei Zeilen, eine für jeden Bezirk, mit den geo_id, input_geography, place_count und sample_place_ids der Restaurants, die in Betrieb sind.

Ergebnisse für die Funktion „Orte zählen“ in den Bezirken von New York.

Vorteile der Verwendung von PLACES_COUNT_V2

PLACES_COUNT_V2 bietet erhebliche Vorteile gegenüber PLACES_COUNT und PLACES_COUNT_PER_GEO:

  • Batchverarbeitung:Analysieren Sie Tausende von benutzerdefinierten geografischen Einheiten effizient in einer einzigen Abfrage, indem Sie mehrere geografische Eingaben in einer Tabelle angeben.
  • Leistung:Es werden die optimierten raumbezogenen Joins von BigQuery verwendet, die bei großen Datasets erhebliche Geschwindigkeitsvorteile bieten.
  • Skalierbarkeit:Das Tool ist so konzipiert, dass es eine große Anzahl von geografischen Einheiten verarbeiten kann, ohne dass die Größe einzelner JSON-Parameter begrenzt ist.
  • Nullwerte eingeschlossen:PLACES_COUNT_V2 gibt eine Zeile für jeden geo_id zurück, der in der Eingabetabelle angegeben ist. Wenn keine Orte den Kriterien für eine bestimmte geografische Einheit entsprechen, ist place_count = 0. So erhalten Sie für jeden Eingabebereich ein Ergebnis und können sehen, wo Orte fehlen.