Übersicht

In diesem Dokument wird beschrieben, wie Sie dynamische geospatiale Berichte mit Places Insights und Data Studio erstellen. Sie können den Wert Ihrer Standortdaten steigern, indem Sie nicht technische Stakeholder in die Lage versetzen, ihre eigenen Fragen zu beantworten. In dieser Anleitung erfahren Sie, wie Sie statische Berichte in interaktive Tools im Heatmap-Stil für die Marktanalyse umwandeln, ohne für jede Anfrage SQL schreiben zu müssen. Zugriff auf komplexe Standortdaten ermöglichen und die Lücke zwischen Data Engineering und Business Intelligence schließen
Die Einführung dieses Architekturmusters bietet mehrere wichtige Vorteile:
- Visuelle Darstellung von Daten:Places Insights-Daten werden in interaktive Karten und Diagramme umgewandelt, die sofort räumliche Dichte und Trends vermitteln.
- Vereinfachte Datenexploration ohne SQL:Teammitglieder wie Marktforschungsanalysten oder Immobilienplaner können Daten dynamisch mit vordefinierten Parametern filtern, z.B. „Stadt“ oder „Tageszeit“ über Drop-down-Menüs ändern. Sie können die Daten analysieren, ohne eine einzige Zeile SQL-Code schreiben zu müssen.
- Nahtlose Zusammenarbeit:Mit den Standardfunktionen für die Data Studio-Freigabe können Sie diese interaktiven Statistiken sicher weitergeben.
Lösungs-Workflow
Mit dem folgenden Workflow wird eine leistungsstarke Berichtsarchitektur erstellt. Er beginnt mit einer statischen Baseline und geht zu einer vollständig dynamischen Anwendung über. So wird die Richtigkeit der Daten sichergestellt, bevor Komplexität eingeführt wird.
Vorbereitung
Folgen Sie dieser Anleitung, um Places Insights einzurichten. Sie benötigen Zugriff auf Data Studio, ein kostenloses Tool.
Schritt 1: Statische geografische Baseline erstellen
Bevor Sie Interaktivität einführen, müssen Sie eine Basisabfrage erstellen und dafür sorgen, dass sie in Data Studio richtig gerendert wird. Mit Places Insights und den raumbezogenen Funktionen von BigQuery können Sie Daten mithilfe des H3-Indexierungssystems in sechseckige Raster aggregieren. Dadurch wird eine Abfrageausgabe generiert, die mit dem Kartentyp „Gefüllte Karte“ von Data Studio für die Visualisierung verwendet werden kann.
1.1 Daten verknüpfen
Verwenden Sie die folgende statische Abfrage, um die erste Verbindung herzustellen. Sie ist auf einen festen Standort (London) und eine Kategorie (Restaurants) ausgerichtet, um die Datenpipeline zu validieren.
SELECT
h3_index,
`carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
restaurant_count
FROM (
SELECT WITH AGGREGATION_THRESHOLD
`carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
COUNT(*) AS restaurant_count
FROM
-- Note: Change 'gb' to your target country code (e.g., 'us')
`places_insights___gb.places`
WHERE
'London' IN UNNEST(locality_names)
AND 'restaurant' IN UNNEST(types)
GROUP BY
h3_index
)
ORDER BY
restaurant_count DESC;
Hinweis zur räumlichen Aggregation
In dieser Abfrage wird eine Funktion aus der CARTO Analytics Toolbox (carto-os) verwendet, die öffentlich in Google Cloud BigQuery verfügbar ist. Mit der Funktion H3_FROMGEOGPOINT werden bestimmte Standortpunkte in H3-Zellen umgewandelt. Dabei wird die Welt in sechseckige Rasterzellen unterteilt.
Wir verwenden diese Transformation, weil für die Darstellung von Farben in der Karte mit Flächen in Data Studio Polygone (Formen) erforderlich sind. Durch die Umwandlung von Punkten in sechseckige Formen können wir die Dichte von Unternehmen in einem bestimmten Gebiet visualisieren, anstatt Tausende von sich überschneidenden Punkten darzustellen.
Hinweis zum Aggregationsschwellenwert
Für alle Places Insights-Abfragen ist die WITH AGGREGATION_THRESHOLD-Klausel erforderlich.
Dieser Datenschutz sorgt dafür, dass Daten nur zurückgegeben werden, wenn die aggregierte Anzahl mindestens 5 beträgt.
Wenn eine H3-Rasterzelle weniger als fünf Restaurants enthält, wird sie in dieser Visualisierung vollständig aus dem Ergebnissatz entfernt und auf der Karte leer dargestellt.
So implementieren Sie das in Data Studio:
- Erstellen Sie einen neuen leeren Bericht.
- Wählen Sie BigQuery als Daten-Connector aus.
- Wählen Sie im Menü auf der linken Seite BENUTZERDEFINIERTE ABFRAGE und dann Ihre Projekt-ID für die Abrechnung aus.
- Fügen Sie die statische Basisabfrage oben in den Editor ein.
- Entfernen Sie die Häkchen bei Legacy SQL-Dialekt verwenden, Zeitraum aktivieren und E-Mail-Adressen-Parameter von Betrachter aktivieren.
- Klicken Sie auf Hinzufügen.
1.2 Geodatenvisualisierung konfigurieren
Nachdem die Daten verbunden sind, müssen Sie Data Studio so konfigurieren, dass die H3-Grenzdaten richtig erkannt werden:
- Fügen Sie dem Bericht-Canvas über das Menü Diagramm hinzufügen eine Karte mit Flächen hinzu.
- Achten Sie darauf, dass das Feld
h3_geo, das die Polygongeometrie enthält, auf den Datentyp Geospatial festgelegt ist.- Klicken Sie neben dem Namen der Verbindung auf das Symbol Datenquelle bearbeiten (Stift).
- Wenn
h3_geoauf Text (ABC) festgelegt ist, wählen Sie im Drop-down-Menü Geografisch > Georäumlich aus. - Klicken Sie auf Fertig.
- Ordnen Sie das Feld
h3_indexdem Feld Location (als eindeutige Kennung) zu. - Ordnen Sie das Feld
h3_geodem Feld für raumbezogene Daten zu (das als Polygongeometrie fungiert). - Ordnen Sie das Feld
restaurant_countdem Farbmesswert zu.
Dadurch wird eine Karte der Restaurantdichte nach H3-Zelle gerendert. Das dunklere Blau (Standardfarboption) weist auf eine Zelle mit einer höheren Anzahl von Restaurants hin.

Schritt 2: Dynamische Parameter implementieren
Damit der Bericht interaktiv wird, fügen wir Steuerelemente hinzu, mit denen der Nutzer die folgenden Optionen auswählen kann:
- Ort: Steuert die Stadt, auf die sich der Bericht konzentriert.
- Wochentag: Filtert Orte nach dem Tag, an dem sie geöffnet sind, und nutzt dabei den
regular_opening_hours-Eintrag im Schema. - Tageszeit: Filtert Orte anhand ihrer Öffnungszeiten, indem die Felder
start_timeundend_timeverglichen werden.
Dazu übergeben Sie die vom Nutzer ausgewählten Parameter zur Laufzeit direkt an eine modifizierte Places Insights-Abfrage. Im Datenquellen-Editor von Data Studio müssen Sie diese Parameter explizit als typisierte Variablen definieren.
Wählen Sie in Data Studio das Menü Ressource aus und klicken Sie dann auf Hinzugefügte Datenquellen verwalten. Wählen Sie im angezeigten Bereich EDIT für die BigQuery-Datenquelle mit benutzerdefiniertem SQL aus, die wir zuvor hinzugefügt haben.
Wählen Sie im Fenster „Verbindung bearbeiten“ die Option PARAMETER HINZUFÜGEN aus. Wir fügen drei Parameter mit den folgenden Werten hinzu.
| Parametername | Datentyp | Zulässige Werte | Liste der Werte (muss genau mit der Datenbank übereinstimmen) | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
p_locality |
Text | Liste mit Werten |
|
||||||||||||||||
p_day_of_week |
Text | Liste mit Werten |
|
||||||||||||||||
p_hour_of_day |
Text | Liste mit Werten |
|
Beispielkonfiguration für den Parameter p_hour_of_day.

Achten Sie beim Parameter p_hour_of_day genau auf die Spalte Value.
Da in der SQL-Abfrage CAST(@p_hour_of_day AS TIME) verwendet wird, müssen die von Data Studio übergebenen Werte das Format HH:MM:SS (24-Stunden-Format) haben.
Nachdem Sie alle drei Parameter eingerichtet und gespeichert haben, ändern Sie Ihre benutzerdefinierte BigQuery-SQL-Verbindung so, dass mit der @-Syntax auf diese Variablen verwiesen wird.
Klicken Sie dazu auf „Verbindung bearbeiten“ und fügen Sie die unten geänderte Abfrage ein:
SELECT
h3_index,
`carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
restaurant_count
FROM (
SELECT WITH AGGREGATION_THRESHOLD
`carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
COUNT(*) AS restaurant_count
FROM
`places_insights___gb.places`
WHERE
-- Dynamic locality filter based on parameter
@p_locality IN UNNEST(locality_names)
AND 'restaurant' IN UNNEST(types)
AND business_status = 'OPERATIONAL'
AND EXISTS (
SELECT 1
FROM UNNEST(
CASE @p_day_of_week
WHEN 'monday' THEN regular_opening_hours.monday
WHEN 'tuesday' THEN regular_opening_hours.tuesday
WHEN 'wednesday' THEN regular_opening_hours.wednesday
WHEN 'thursday' THEN regular_opening_hours.thursday
WHEN 'friday' THEN regular_opening_hours.friday
WHEN 'saturday' THEN regular_opening_hours.saturday
WHEN 'sunday' THEN regular_opening_hours.sunday
END
) AS hours
WHERE hours.start_time <= CAST(@p_hour_of_day AS TIME)
AND hours.end_time >= TIME_ADD(CAST(@p_hour_of_day AS TIME), INTERVAL 1 HOUR)
)
GROUP BY
h3_index
)
ORDER BY
restaurant_count DESC;
Klicken Sie auf „Wieder verbinden“, um die Änderung zu speichern. In der geänderten Abfrage sehen Sie die neuen Variablen wie @p_hour_of_day, die den gerade eingerichteten Parameternamen entsprechen.
Kehren Sie zum Berichts-Canvas zurück, um diese Parameter für den Endnutzer verfügbar zu machen:
- Fügen Sie Ihrem Bericht drei Drop-down-Liste-Steuerelemente hinzu.
- Legen Sie für jede Kontrollgruppe das Kontrollfeld entsprechend den neu erstellten Parametern fest:
- Kontrollgruppe 1:
p_locality - Kontrollgruppe 2:
p_day_of_week - Kontrollgruppe 3:
p_hour_of_day
- Kontrollgruppe 1:
Der endgültige Bericht sollte so aussehen: Wenn Sie einen Wert in einem der Drop-down-Steuerelemente ändern, ruft Data Studio die angeforderten Daten aus Places Insights ab, bevor sie auf der Karte visualisiert werden.

Schritt 3: Ergebnisse teilen
Verwenden Sie das in Data Studio integrierte Freigabetool, um den Bericht freizugeben. So können Zuschauer die Visualisierung dynamisch aktualisieren, indem sie Parameter aus Ihren Drop-down-Listen auswählen.
Fazit
Mit diesem Muster wird ein skalierbares, interaktives Berichtstool erstellt, das die Rechenleistung von BigQuery nutzt, um aggregierte Places Insights-Daten für Data Studio bereitzustellen. Diese Architektur vermeidet die Fallstricke, die mit der Visualisierung riesiger Rohdatensätze verbunden sind, und bietet Endnutzern die Flexibilität, Daten nahezu in Echtzeit über verschiedene Dimensionen hinweg zu analysieren, z. B. nach Zeit, Standort und Unternehmenstyp. So können auch Stakeholder ohne technisches Know-how die Daten flexibel analysieren.
Nächste Schritte
Sie können auch andere Varianten dynamischer Berichte erstellen, indem Sie verschiedene Teile des Places Insights-Schemas parametrisieren:
- Dynamische Wettbewerbsanalyse:Erstellen Sie einen Parameter für
brand-Namen, damit Nutzer die Heatmap sofort zwischen verschiedenen Wettbewerbern umschalten können, um deren relative Sättigung in einem Markt zu sehen. Informationen zur Verfügbarkeit von Markendaten finden Sie unter Places Insights-Daten. - Interaktive Standortauswahl:Fügen Sie Parameter für
price_level(z.B. „Mittel“ im Vergleich zu „Teuer“) und einen Mindestwert fürratinghinzu, damit Immobilien-Teams dynamisch nach Gebieten filtern können, die bestimmten demografischen Profilen entsprechen. - Benutzerdefinierte Einzugsgebiete:Nutzer können benutzerdefinierte Testgebiete definieren, anstatt nach Städtenamen zu filtern.
- Radiusbasiert:Erstellen Sie drei numerische Parameter: p_latitude, p_longitude und p_radius_meters. Koordinaten können über Google Maps Platform APIs abgerufen werden, einschließlich der Geocoding API. Fügen Sie in Ihre Abfrage Folgendes in die Funktion ST_DWITHIN ein:
ST_DWITHIN(point, ST_GEOGPOINT(@p_longitude, @p_latitude), @p_radius_meters)
- Polygonbasiert:Bei komplexen benutzerdefinierten Formen wie Vertriebsgebieten können Nutzer nicht einfach Geometrietext eingeben. Erstellen Sie stattdessen in BigQuery eine Suchtabelle mit den Geometrien der Formen und einem benutzerfreundlichen Namen (z.B. „Zone A“). Erstellen Sie in Data Studio einen Textparameter
p_zone_name, damit Nutzer die Zone auswählen können, und verwenden Sie eine Unterabfrage, um die Geometrie für die FunktionST_CONTAINSabzurufen.
- Radiusbasiert:Erstellen Sie drei numerische Parameter: p_latitude, p_longitude und p_radius_meters. Koordinaten können über Google Maps Platform APIs abgerufen werden, einschließlich der Geocoding API. Fügen Sie in Ihre Abfrage Folgendes in die Funktion ST_DWITHIN ein:
Beitragende
- David Szajngarten | Developer Relations Engineer
- Henrik Valve | DevX Engineer