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 einer Milliarde Zeilen mit einer Zuordnungstabelle mit 100 Zeilen verknüpfen können, die Sie in einer einzigen Abfrage in eine Tabelle eingeben.
Mit dieser Funktion können Sie Datenmodelle konfigurieren, eine Datenpipeline für Ad-hoc-Daten erstellen oder aktuelle Zahlen mit Ihren neuesten Zielvorhaben und Prognosen vergleichen.
Beispiel
Beispielsweise möchten Sie Nutzernamen in Looker modellieren, die über ein Google-Formular erfasst wurden.
So erfassen und modellieren Sie die Informationen in Looker:
- Erfassen Sie die Daten mit 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 Anzeige).
- Achten Sie darauf, dass die Drive API und die Tabellen API für Ihr Projekt aktiviert sind.
- Erstellen Sie über die BigQuery-Benutzeroberfläche eine Tabelle, deren Inhalt aus der Tabelle stammt.
- Erstellen Sie in Ihrem Looker-Projekt ein Datenmodell, das die Tabellen in der Tabelle mit anderen Nutzerdaten zusammenführt, die Sie möglicherweise bereits erhoben haben, z. B. den Standort der Nutzer. 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 explorative Datenanalysen mit Ihren Daten erstellen und Looks und Dashboards mit Messwerten zu allen Nutzernamen erstellen, die Sie in Google Forms erfasst und in das Google-Tabellenblatt eingegeben haben, sowie andere Informationen zu den einzelnen Nutzern.