A equipe do BigQuery desenvolveu a capacidade de tratar uma planilha do Google como uma tabela em um banco de dados. Isso significa que você pode mesclar uma tabela do BigQuery com bilhões de linhas com uma tabela de mapeamento de 100 linhas digitada em uma planilha em uma única consulta.
Com esse recurso, você pode configurar modelos de dados, criar um pipeline de dados ad hoc ou comparar números atualizados com suas metas e projeções mais recentes.
Exemplo
Por exemplo, você pode modelar nomes de usuário no Looker que foram coletados usando um formulário do Google.
Para coletar e modelar as informações no Looker, siga estas etapas:
- Usando os Formulários Google, colete os dados em uma planilha Google. Cada envio adiciona uma linha na planilha.
- Compartilhe a planilha com a conta de serviço que você usa para se conectar ao Looker ou conceda acesso aos usuários com um link (somente leitura).
- Verifique se a API Drive e a API Sheets estão ativadas no projeto.
- Crie uma tabela na interface do BigQuery que extrai o conteúdo da planilha.
- No seu projeto do Looker, gere um modelo de dados que una a tabela da planilha a outros dados de usuários que você já coletou, como locais. Também é possível usar o SQL para normalizar os nomes que vêm do banco de dados. Os dados podem ser armazenados em cache no BigQuery para evitar a sobrecarga na planilha.
Confira abaixo um exemplo do LookML resultante:
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" } } }
Com esse modelo, é possível criar análises detalhadas com seus dados e criar visualizações e painéis que mostram métricas sobre todos os nomes de usuário que você coletou nos Formulários Google e inseriu nas Planilhas Google, além de outras informações sobre cada usuário.