BigQuery 中用于 Google Analytics 数据的标准 SQL 还是旧版 SQL?
Posted
技术标签:
【中文标题】BigQuery 中用于 Google Analytics 数据的标准 SQL 还是旧版 SQL?【英文标题】:Standard or Legacy SQL for Google Analytics Data in BigQuery? 【发布时间】:2017-03-30 08:07:05 【问题描述】:我们刚刚开始在 BigQuery 中使用 Google Analytics 数据,之前在工作环境中只使用了 MSSQL Server。我们想将部分分析转移到 GCP 和 BigQuery,但无法确定更好的选择 - 标准 SQL 还是旧版 SQL? 在这两种情况下,我们都必须适应新的语言版本,但真正的问题是,在 Google Analytics(分析)数据分析方面,最佳选择是什么?从技术角度来看,是否有什么东西应该让我们选择传统而不是标准,或者相反? 有两个版本对我们来说很误导,因为legacy现在似乎更发达,但是perphaps标准将是未来BQ中SQL的主要版本?
【问题讨论】:
【参考方案1】:BigQuery 标准 SQL 是必经之路。它具有比 Legacy SQL 更多的功能。
注意:这不是二元选择。你总是可以使用 Legacy SQL - 如果有什么你会发现用它更容易表达的话。根据我的经验,它大多是相反的——只有极少数例外。最突出的(例如对我来说) - Table Decorators - Support for table decorators in standard SQL is planned but not yet implemented.
我建议您查看 Migrating from legacy SQL - 不是从迁移的角度,因为您是 BigQuery 的新手 - 而是因为它是在一个地方查看和比较两种方言功能的好地方。
我还建议您查看BigQuery Issue Tracker,以便您获得一些额外的见解
【讨论】:
感谢您的回答。也许是我,但我很难找到有关 Google Analytics 和标准 SQL 的资料 - 甚至 Google 的资料(如 BQ Cookbook)几乎都是旧版 SQL... @user3853657 - 你可以在这里搜索关于 SO 的问题。肯定有很多很多——我回答了很多这样的问题。您将能够看到使用其中一个的区别。只是搜索【参考方案2】:标准 SQL 是在 BigQuery 中使用的首选 SQL 方言,例如 stated in the migration guide。虽然遗留 SQL 已经存在了相当长的一段时间——并且在撰写本文时仍然是默认的——但没有对其进行积极的开发工作。如果您正在评估使用哪个,您应该选择标准 SQL,因为除了与 T-SQL(SQL Server 的方言)更相似之外,它更具表现力,更少令人惊讶的边缘情况,并且通常具有更多功能。
【讨论】:
【参考方案3】:使用标准 SQL,因为这是长期路线图。
根据经验,一些查询在 Legacy SQL 下会更快,但这种情况正在改变,因为标准 SQL 是积极开发的一种。
【讨论】:
如果您确实发现了两个方言之间的查询速度较慢的示例,请file a bug report 提供示例作业 ID,以便我们进行调查。我们在缩小差距方面取得了一些进展,但我们可能错过了一些。以上是关于BigQuery 中用于 Google Analytics 数据的标准 SQL 还是旧版 SQL?的主要内容,如果未能解决你的问题,请参考以下文章
sql 脚本适用于 MySQL,但不适用于 google bigquery
如何将 Spark-BigQuery_connector 用于现有的 spark 环境(不使用 google dataproc)
用于将 HLL_COUNT.INIT 提取到 BigQuery 的 Google DataFlow API