BigQuery 团队开发了将 Google 表格当作数据库中的表处理的功能。也就是说,您可以将包含十亿行数据的 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 表格中的所有用户名的相关指标,以及每个用户的其他信息。