如何避免在Google BigQuery / SQL中的五个常见错误

Google BigQuery / SQL中五个常见错误的避免方法' (避免在 'Google BigQuery / SQL' 中的五个常见错误)

多年来与BigQuery合作,我发现有5个普遍存在的问题,即使是经验丰富的数据科学家也会犯错

Photo by James Harrison on Unsplash

Google BigQuery之所以受欢迎有很多原因。它非常快速,易于使用,提供完整的GCP套件,处理您的数据并确保尽早发现错误。此外,您还可以使用标准SQL和一些非常好用的内置函数。简而言之,几乎是完整的套餐!

永远假设存在错误和重复,永远!

然而,与其他网络服务和编程语言类似,当使用BigQuery时,有一些事项需要了解以避免陷入陷阱。多年来,我犯了很多错误,并意识到几乎所有我认识的人在某个时候都遇到过相同的问题。在这里,我想重点指出其中一些问题,因为我在职业生涯的晚期才发现这些问题,并且还发现其他非常有经验的数据科学家也遇到了相同的问题。

因此,我将向您提供我对BigQuery中几乎每个人在某个时候都会犯的5个潜在错误的排行榜,而您甚至可能都不知道这些错误。因此,请务必避免这些错误,因为每一点都可能产生严重后果,并时刻记住在处理数据时保持正确的态度:永远假设存在错误和重复,永远!

1. 使用“NOT IN”时要小心

这发生得如此之快。您急于想要快速检查两个表,并查看某个表中是否存在在第二个表中提到的某个项目。既然听起来很直观,为什么不使用NOT IN语句呢?

问题在于,当您的表中存在NULL值时,NOT IN的工作方式并不如预期。如果存在NULL值,您将无法得到期望的结果!

请自行查看以下示例代码,我试图找出在input_1中存在但不在input_2中的类别:

WITH  input_1 AS (  SELECT    category  FROM (    SELECT      ["a", "b", CAST(NULL AS STRING), "d"] AS category),    UNNEST(category) category ),  input_2 AS (  SELECT…