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_NAMEist 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: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 ihremtypes-Array aufgeführt sind, nicht nur demprimary_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.

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, akzeptiertPLACES_COUNT_PER_TYPE_V2einTABLEvon 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_V2eine 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.