GoogleCloud BigQuery异常处理

时间:2018-11-20 15:50:10

标签: google-cloud-platform google-bigquery

我正在尝试运行以下GooleCould的BigQuery:

select REGEXP_REPLACE(SPLIT(site, "=")[OFFSET(1)], r'%\d+', ' ')
    from some_db
    where site = 'something'
    and STARTS_WITH(site, 'XXX')

在执行过程中,出现以下错误:

  

数组索引1超出范围(溢出)

在使用AWS Athena时,我曾经使用 try 语句解决此类错误,但是找不到与BigQuery等效的东西。

我应该如何处理异常?

1 个答案:

答案 0 :(得分:2)

您应该使用SAFE_OFFSET而不是OFFSET

select REGEXP_REPLACE(SPLIT(site, "=")[SAFE_OFFSET(1)], r'%\d+', ' ')
from some_db
where site = 'something'
and STARTS_WITH(site, 'XXX')   

关于更常见的try / catch问题-BigQuery没有一个-但有一个SAFE前缀,可以在大多数函数中用作SAFE.function_name()-https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#safe-prefix