我使用SQL已有很多年了。我刚刚启动了一个项目,该项目使用Google Firebase和BigQuery探索用户在我们网站上的活动。
BigQuery中的原始数据(Firebase事件)非常复杂。
看来BigQuery正在使用SQL2011。我不确定这与SQL-99或SQL-2009有何不同。我还没有找到很好的概述或教程。
我正在努力解决的一些挑战包括将活动分组到会话中并确定具有某些特征的组
我想知道是否需要学习开窗的工作方式而不是使用GROUP BY
。
任何有关加快学习速度的建议将不胜感激。
安迪
答案 0 :(得分:4)
主要区别在于,最有效的架构不再是具有关系的多个平面表。相反,它是在一个大表中嵌套数据。
我称它们为子表,但实际上它们只是包含结构的数组。其中可能包含包含结构的数组。可能...等等。
要学习的最重要的事情是如何使用这些数组。基本上有两个用例:
可以通过进行以下所有练习来学习这两个概念:https://cloud.google.com/bigquery/docs/reference/standard-sql/arrays
但是GCP也有一些关于BigQuery的课程。不过,我不确定它们能深入多少。
答案 1 :(得分:0)
如您在问题BigQuery符合SQL 2011 [1]所述。
在BigQuery中,analytic functions或aggregate analytic functions用于窗口化。
作为参考,您可以看一下官方的BigQuery标准SQL document,而对于BigQuery的更深入的了解可以看一本书Google BigQuery Analytics。