正在解析 Snowflake 数据库中的 JSON 文件

Parsing JSON file in Snowflake Database

数据库:雪花

我的 table 包含 JSON 数据,例如:

{
    "bucket":"IN_Apps",
    "bySeqno":56,
    "cas":1527639206906626048,
    "content":"eyJoaWdoQmluIjoiNTQ4NTA4MDkiLCJkb2N1bWVudFR5cGUiOiJJSU5ETyIsImNhcmRUeXBlIyayI6Ik1BU1RFUkNBUkQifQ==",
    "event":"mutation",
    "expiration":0,
    "flags":33554432,
    "key":"iin54850809",
    "lockTime":0,
    "partition":948,
    "revSeqno":1,
    "vBucketUuid":137987627737694
}

当我试图解析它时。

select 
parse_json:bucket::string as bucket ,
parse_json:bySeqno::string as bySeqno ,
parse_json:cas::INT as cas ,
parse_json:content::string as content ,
parse_json:event::string as event 
,parse_json:expiration::string as expiration
,parse_json:flags::string as flags
,parse_json:key::string as key
,parse_json:lockTime::string as lockTime
,parse_json:partition::string as partition
,parse_json:revSeqno::string as revSeqno
,parse_json:vBucketUuid::string as vBucketUuid
from STG_YS_APPS v

但它抛出类似的错误。

SQL compilation error: error line 2 at position 0 invalid identifier > >'PARSE_JSON'

有人能帮帮我吗

使用已知架构回答

更新:由于您提供了架构,它显示了 VARIANT 类型的 VAR 列,这就是您所需要的,再简单不过了:

select
var:bucket::string as bucket,
var:bySeqno::string as bySeqno,
var:cas::int as cas
...
from STG_YS_APPS v

架构已知之前的答案下方

我假设您的 table 中有一个名为 jsonVARCHAR(或类似)列,并存储您提供的值。您没有提供架构,因此请根据需要调整列名称。

您没有在 SQL 中使用 PARSE_JSON 作为函数。你应该这样写

select
parse_json(json):bucket::string as bucket,
parse_json(json):bySeqno::string as bySeqno,
parse_json(json):cas::int as cas
...
from STG_YS_APPS v