GoogleGoogle Professional Data Engineer (PDE) Certification
·CN
·更新于 21 Aug 2026
有两个大型表,sales_transaction_header 和 sales_transaction_line,它们紧密耦合,加载后不可变,并且经常进行连接。为了优化分析性能,您应该如何在 BigQuery 中对它们进行建模?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 创建一个 sales_transaction 表,将 sales_transaction_header 信息作为行存储,并将 sales_transaction_line 行作为嵌套和重复字段存储。.
为什么这是答案
正确答案是创建一个 salestransaction 表,将 salestransactionheader 信息作为行存储,并将 salestransactionline 行作为嵌套和重复字段存储。这是因为 BigQuery 在处理嵌套和重复字段时表现出色,这种建模方式能有效减少连接操作,提高查询性能,尤其适用于紧密耦合且经常连接的表。由于数据加载后不可变,这种非规范化设计不会引入更新复杂性。
将 header 和 line 信息重复存储在每行中会导致大量数据冗余,增加存储成本和查询扫描量。将数据存储为 JSON 类型会降低查询效率,因为 BigQuery 需要解析 JSON 字符串才能访问内部字段。创建单独的表并在查询时连接是传统关系型数据库的做法,但在 BigQuery 中,对于紧密耦合且经常连接的表,嵌套字段通常性能更优,因为可以避免昂贵的 JOIN 操作。在 WHERE 子句中首先指定 salestransactionline 只是查询优化的一种策略,并不能替代更优的数据建模。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 →
无需银行卡