PLACES_COUNT_PER_TYPE_V2-Funktion

Die Funktion PLACES_COUNT_PER_TYPE_V2 gibt eine BigQuery-Tabelle mit Ortsanzahlen und Beispiel-Orts-IDs zurück, aufgeschlüsselt nach Ortstyp für mehrere Eingabegeografien. Diese Funktion ist für die effiziente Batchverarbeitung konzipiert, da sie einen Eingabetabellenparameter für geografische Einheiten akzeptiert. Sie geben die geografischen Einheiten über eine Eingabetabelle an und legen die Ortstypen als Array fest.

Syntax

SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_TYPE_V2`(
  TABLE input_geographies,
  target_types,
  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.
  • target_types (ARRAY<STRING>): Ein Array von Ortsart-Strings, für die Sie die Anzahl abrufen möchten. Orte werden gezählt, wenn sie einem der Typen entsprechen, die in ihrem types-Array aufgeführt sind, nicht nur dem primary_type.
  • filters (JSON): Ein JSON-Objekt mit Schlüssel/Wert-Paaren zum zusätzlichen Filtern der Orte. Weitere Informationen

Ausgabetabellenschema

Die Funktion PLACES_COUNT_PER_TYPE_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_type STRING Der Ortstyp aus dem target_types-Array, den diese Zeile darstellt.
place_count INTEGER Die Anzahl der Orte, die mit place_type und anderen Filtern in oder in der Nähe der geografischen Einheit übereinstimmen.
sample_place_ids ARRAY<STRING> Ein Array mit bis zu 250 Orts-IDs, die den Kriterien für diesen Typ und diese geografische Einheit entsprechen.

Die Ausgabe enthält eine Zeile für jede Kombination aus geo_id und place_type, die im Array target_types angegeben ist, auch wenn die Anzahl null ist.

Funktionsweise

Die Funktion verarbeitet jede in der Tabelle input_geographies angegebene geografische Einheit. Für jede geografische Einheit werden Orte gezählt, die einem der im Array target_types aufgeführten Typen entsprechen und alle Bedingungen im JSON-Objekt filters erfüllen. Die Ergebnisse werden zusammengefasst und nach jeder geo_id und jedem Typ in target_types aufgeschlüsselt.

Beispiel: Anzahl verschiedener Arten von Gastronomiebetrieben in den Bezirken von New York City zählen

In diesem Beispiel wird eine Tabelle mit der Anzahl der Einträge für die Typen „restaurant“, „cafe“ und „bar“ in drei Bezirken von New York City generiert.

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

Das Ergebnis ist eine Tabelle mit 9 Zeilen (3 Landkreise × 3 Typen). In jeder Zeile wird die Anzahl der Einrichtungen der Kategorien „Restaurant“, „Café“ oder „Bar“ in jedem Bezirk angezeigt. Sie können auch Beispiel-Orts-IDs einfügen, wenn Sie sie in Ihre SELECT-Anweisung aufnehmen.

Ergebnisse für die Funktion „Anzahl der Orte pro Typ“ in den Countys von New York.

Vorteile der Verwendung von PLACES_COUNT_PER_TYPE_V2

PLACES_COUNT_PER_TYPE_V2 bietet mehrere wichtige Vorteile, insbesondere im Vergleich zur älteren Funktion PLACES_COUNT_PER_TYPE:

  • Batchverarbeitung von geografischen Einheiten:Im Gegensatz zu PLACES_COUNT_PER_TYPE, bei dem jeweils eine geografische Einheit verarbeitet wird, akzeptiert PLACES_COUNT_PER_TYPE_V2 ein TABLE von geografischen Einheiten als Eingabe. So können Sie typenspezifische Zählungen für zahlreiche geografische Einheiten (Punkte, Polygone) in einer einzigen Abfrage analysieren und abrufen, anstatt mehrere Funktionsaufrufe zu tätigen.
  • Höhere Leistung und Skalierbarkeit:Da PLACES_COUNT_PER_TYPE_V2 eine Tabelleneingabe akzeptiert, kann die Funktion die optimierten raumbezogenen Joins von BigQuery und die parallele Verarbeitung für alle angegebenen geografischen Einheiten gleichzeitig nutzen. Dies führt zu erheblichen Leistungssteigerungen und einer besseren Skalierbarkeit bei einer großen Anzahl von geografischen Einheiten.
  • Null-Zählungen eingeschlossen:Gibt Zeilen mit 0 Zählungen für Typen zurück, die in einem bestimmten Bereich innerhalb des Batches nicht gefunden wurden. So wird ein vollständiges Ergebnis-Set für alle Kombinationen aus Typ und geografischer Einheit gewährleistet.