Das BigQuery-Team hat die Möglichkeit entwickelt, Google-Tabellen wie Tabellen in einer Datenbank zu behandeln. Das bedeutet, dass Sie eine BigQuery-Tabelle mit Milliarden Zeilen mit einer Zuordnungstabelle mit 100 Zeilen verknüpfen können, die Sie in einer einzigen Abfrage in eine Tabellenkalkulation eingeben.
Mit dieser Funktion können Sie Datenmodelle konfigurieren, eine Datenpipeline für Ad-hoc-Daten erstellen oder aktuelle Zahlen mit Ihren neuesten Zielen und Prognosen vergleichen.
Beispiel
Beispielsweise können Sie Nutzernamen in Looker modellieren, die über ein Google-Formular erfasst wurden.
Um die Informationen in Looker zu erfassen und zu modellieren, führen Sie die folgenden Schritte aus:
- Erfassen Sie die Daten mithilfe von Google Formulare in einer Google-Tabelle. Für jede eingehende Antwort wird auf dem Tabellenblatt eine neue Zeile eingefügt.
- Geben Sie die Tabelle für das Dienstkonto frei, mit dem Sie eine Verbindung zu Looker herstellen, oder gewähren Sie Nutzern über einen Link Zugriff (nur Ansicht).
- Prüfen Sie, ob die Drive API und Sheets API für Ihr Projekt aktiviert sind.
- Erstellen Sie über die BigQuery-Benutzeroberfläche eine Tabelle, deren Inhalt aus der Tabelle stammt.
- Generieren Sie in Ihrem Looker-Projekt ein Datenmodell, bei dem die Tabellentabelle mit anderen Nutzerdaten zusammengeführt wird, die Sie möglicherweise bereits erfasst haben, z. B. Nutzerdaten. Standorte. Sie können auch SQL verwenden, um die Namen zu normalisieren, die aus der Datenbank stammen. Die Daten können in BigQuery im Cache gespeichert werden, um eine hohe Auslastung der Tabelle zu vermeiden.
Das folgende Beispiel zeigt, wie die resultierende LookML aussehen könnte:
explore: names_sheet { persist_for: "60 seconds" join: names_facts { sql_on: ${names_sheet.normalized_name} = ${names_facts.normalized_name} ;; sql_where: ${names_facts.city} ;; relationship: one_to_one } view_name: names_sheet { derived_table: { persist_for: "2 minutes" sql: SELECT row_number() OVER() as id, name, UPPER(CASE WHEN REGEXP_MATCH(name, r'\,') THEN REGEXP_EXTRACT(name, r', (\w+)') ELSE REGEXP_EXTRACT(name, r'^(\w+)') END ) as normalized_name FROM namesheet.names ;; } dimension: id { type: number } dimension: name { order_by_field: id # keep the rows in the original order } dimension: normalized_name { } measure: count { type: count drill_fields: [id, name, names_facts.city] } measure: count_from_new_york_city { type: count filters: [names_facts.city: "New York City"] } measure: percentage_from_new_york_city { type: number sql: ${count_from_new_york_city}/${count} ;; value_format_name: percent_2 } measure: average_age_median { type: average sql: ${names_facts.age_median} ;; value_format: "0000" } } }
Anhand dieses Modells können Sie Explores mit Ihren Daten erstellen und Looks und Dashboards erstellen, die Messwerte zu allen Nutzernamen enthalten, die Sie in Google Forms erfasst und in das Google-Tabellenblatt eingegeben haben, sowie weitere Informationen zu den einzelnen Nutzern.