当字段包含@ sign BigQuery标准SQL时,如何使用函数从Google BigQuery中提取json

时间:2018-08-08 10:35:46

标签: google-bigquery standard-sql

所以我的桌子看起来像这样

{"@timestamp":"2018-08-08T09:21:57.947+00:00","@version":"1","message":"bla bla"}

例如,我可以使用下面的json函数提取消息部分

JSON_EXTRACT_SCALAR(log,'$.message') AS message

但是当我尝试以相同方式提取时间戳记

JSON_EXTRACT_SCALAR(log,'$.@timestamp') AS timestamp

我收到错误“错误:JSONPath中不支持的运算符:@” 关于正确语法的任何想法吗?

1 个答案:

答案 0 :(得分:3)

如果JSON密钥使用无效的JSONPath字符,则可以使用单引号和括号['']来转义这些字符。例如:

  

$ ['@ timestamp']

SELECT 
 json_extract_scalar('{"@timestamp":"2018-08-08T09:21:57.947+00:00"}',"$['@timestamp']")

有关更多示例,请访问:JSON Functions in Standard SQL