Fogli di lavoro live nei database

Il team di BigQuery ha sviluppato la capacità di trattare un foglio Google come una tabella in un database. Ciò significa che puoi unire una tabella BigQuery di un miliardo di righe con una tabella di mappatura di 100 righe che digiti in un foglio di lavoro in una singola query.

Questa funzionalità ti consente di configurare modelli di dati, creare una pipeline di dati per i dati ad hoc o confrontare numeri aggiornati con i tuoi obiettivi e le tue proiezioni più recenti.

Esempio

Ad esempio, potresti voler creare modelli di nomi utente in Looker raccolti utilizzando un modulo Google.

Per raccogliere e modellare le informazioni in Looker, svolgi i seguenti passaggi:

  1. Utilizzando Moduli Google, raccogliere i dati in un foglio Google. A ogni invio viene aggiunta una riga al foglio.
  2. Condividi il foglio di lavoro con l'account di servizio che utilizzi per connetterti a Looker oppure concedi l'accesso agli utenti con un link (solo visualizzazione).
  3. Assicurati che le API Drive e Fogli siano abilitate per il tuo progetto.
  4. Dall'interfaccia di BigQuery, crea una tabella che recupera i contenuti dal foglio di lavoro.
  5. Nel tuo progetto Looker, genera un modello di dati che unisca la tabella del foglio di lavoro ad altri dati utente che potresti aver già raccolto, ad esempio le località degli utenti. Puoi anche utilizzare SQL per normalizzare i nomi provenienti dal database. I dati possono essere memorizzati nella cache in BigQuery per evitare un carico elevato sul foglio di lavoro.

Di seguito è riportato un esempio di come potrebbe essere il LookML risultante:

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"
    }
  }
}

Da questo modello, puoi creare esplorazioni con i tuoi dati e realizzare look e dashboard che mostrano metriche su tutti i nomi utente che hai raccolto da Moduli Google e inserito in Fogli Google, nonché altre informazioni su ogni singolo utente.