BigQuery 团队开发了一种功能,可将 Google 表格视为数据库中的表。也就是说,您可以在单个查询中将包含 10 亿行的 BigQuery 表与您输入到电子表格中的 100 行映射表联接。
借助此功能,您可以配置数据模型、为临时数据创建数据流水线,或将最新数据与最新目标和预测值进行比较。
示例
例如,您可能希望在 Looker 中对使用 Google 表单收集的用户名进行建模。
如需在 Looker 中收集和建模信息,您需要执行以下步骤:
- 使用 Google 表单将数据收集到 Google 表格中。每次提交都会在工作表中添加一行。
- 与您用于连接到 Looker 的服务账号共享电子表格,或通过链接向用户授予访问权限(仅限查看)。
- 确保已为您的项目启用 Drive API 和 Sheets API。
- 通过 BigQuery 界面创建一个表,从电子表格中获取其内容。
- 在 Looker 项目中,生成数据模型,将电子表格表与您可能已收集的其他用户数据(例如用户的位置信息)联接起来。您还可以使用 SQL 对来自数据库的名称进行标准化处理。您可以在 BigQuery 中缓存数据,以免电子表格出现大量负载。
以下是生成的 LookML 的示例:
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"
}
}
}
借助此模型,您可以使用数据创建探索,并构建数据视图和信息中心,以显示您从 Google 表单中收集并输入到 Google 表格中的所有用户名的相关指标,以及每个用户的其他信息。