Fogli di lavoro in tempo reale 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 con miliardi di righe a una tabella di mappatura di 100 righe che digiti in un foglio di lavoro in un'unica query.

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

Esempio

Ad esempio, potresti voler modellare i nomi utente in Looker raccolti utilizzando un modulo Google.

Per raccogliere e modellare le informazioni in Looker, devi seguire questi passaggi:

  1. Utilizzando Moduli Google, raccogli 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 o concedi l'accesso agli utenti con un link (solo visualizzazione).
  3. Assicurati che l'API Drive e l'API Fogli siano abilitate per il tuo progetto.
  4. Crea una tabella dall'interfaccia di BigQuery che recupera i contenuti dal foglio di lavoro.
  5. Nel tuo progetto Looker, genera un modello dei dati che unisca la tabella del foglio di lavoro ad altri dati utente che potresti aver già raccolto, ad esempio le posizioni degli utenti. Puoi anche utilizzare SQL per normalizzare i nomi che provengono 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 apparire il codice 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 nonché creare Look e dashboard che mostrano metriche su tutti i nomi utente che hai raccolto da Moduli Google e inserito nel foglio Google, oltre ad altre informazioni su ogni singolo utente.