寻找 BigQuery 标准 SQL 教程、示例、书籍的新手,

Posted

技术标签:

【中文标题】寻找 BigQuery 标准 SQL 教程、示例、书籍的新手,【英文标题】:Newbie looking for BigQuery Standard SQL tutorial, examples, books, 【发布时间】:2018-08-07 20:32:00 【问题描述】:

我已经使用 SQL 很多年了。我刚刚开始了一个项目,该项目使用 Google Firebase 和 BigQuery 来探索用户在我们的网站上所做的事情。

BigQuery 中的原始数据(Firebase 事件)非常复杂。

BigQuery 似乎使用的是 SQL 2011。我不确定这与 SQL-99 或 SQL-2009 有何不同。我还没有找到好的概览或教程。

我正在努力解决的一些挑战包括将事件分组到会话中并确定具有某些特征的组

我想知道我是否需要学习窗口化的工作原理,而不是使用 GROUP BY

我们将不胜感激任何有关加快学习曲线的建议。

安迪

【问题讨论】:

【参考方案1】:

主要区别在于最有效的模式不再是多个具有关系的平面表。相反,它在一张大表中嵌套了数据。

我称它们为子表,但它们实际上只是包含结构的数组。其中可能包含包含结构的数组。哪个可能...等等。

要学习的最重要的事情是如何使用这些数组。基本上有两种用例:

您需要子表中的一个字段作为结果中的维度:您必须使用交叉连接来展平表。将子表与其父表交叉连接是一个奇怪的概念,但效果很好。 您想从子表中获取一些聚合信息:对数组使用子查询并获取它

这两个概念都可以通过以下所有练习来学习:https://cloud.google.com/bigquery/docs/reference/standard-sql/arrays

但 GCP 在 Coursera 上也有一些涵盖 BigQuery 的课程。不过,我不确定它们的深度。

【讨论】:

【参考方案2】:

正如您在问题中提到的 BigQuery 符合 SQL 2011 [1]。

在 BigQuery 中,analytic functions 或 aggregate analytic functions 用于窗口化。

作为参考,您可以查看官方 BigQuery 标准 SQL document,要更深入地了解 BigQuery,您可以查看 Google BigQuery Analytics 书籍。

【讨论】:

以上是关于寻找 BigQuery 标准 SQL 教程、示例、书籍的新手,的主要内容,如果未能解决你的问题,请参考以下文章

Bigquery/标准 SQL:如何使用 sum() 聚合所有列(大约 100 列)?

BigQuery 标准 SQL 中的分位数函数

Google 标准 SQL UDF - 写入 BigQuery

bigquery 标准 sql 获取 dayofweek

BigQuery 标准 SQL 中的 JSON_EXTRACT?

如何让 BigQuery 的 API 使用标准 SQL 进行查询?