正在解析 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 中有一个名为 json
的 VARCHAR
(或类似)列,并存储您提供的值。您没有提供架构,因此请根据需要调整列名称。
您没有在 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
我的 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 中有一个名为 json
的 VARCHAR
(或类似)列,并存储您提供的值。您没有提供架构,因此请根据需要调整列名称。
您没有在 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