避免在bigquery中重复

Dan*_*uiz 7 google-bigquery

我正在使用bigquery并在文档中说:

与传统的RDBMS不同,没有主要/次要或行ID密钥的概念.如果需要,请为此目的在表架构中标识一列.

你知道我怎么能像pk那样插入没有重复的东西(但不仅仅是在同一个插入中)?问候

Pen*_*m10 11

所以,让我们首先明确一些事实.因为你不能插入没有重复.

Bigquery是一个适用于大型数据集的托管数据仓库,它不是传统数据库的替代品.

您每天最多只能对表执行96次DML(更新,删除)操作.这是设计的.它很低,因为它迫使你像BQ一样思考数据湖.

所以在Bigquery上你实际上让每个数据都进入,一切都只是通过设计追加.这意味着通过设计,您拥有一个数据库,可以为每次更新保留一个新行.因此,如果要使用最新数据,则需要选择最后一行并使用它.

我们实际上利用了我们添加到同一行的每个新更新的见解.例如,我们可以检测最终用户在注册流程中选择国家的时间.因为我们有一个国家的下拉,它滚动到他的国家花了一些时间,并且指标显示了这一点,因为我们最终在BQ中有两行,一个选择了一个国家,一个选择了国家,并且基于时间选择我们是能够优化过程.现在,在我们国家/地区的下拉列表中,我们列出了最近/最常见的5个国家/地区,因此这些用户不再需要滚动和选择国家/地区,而且速度更快.

换句话说,您使用Streaming Insert功能来不断添加新行.然后,通常使用Window Functions 查找最后一行的 SQL查询.

由于BigQuery 将DML语句限制为每个表96个,因此无法更新行或附加到记录.