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 表格中的所有用户名的相关指标,以及每个用户的其他信息。