Sql Snowflake数据库中JSON文件的解析
数据库:雪花 My table包含JSON数据,例如:Sql Snowflake数据库中JSON文件的解析,sql,json,snowflake-cloud-data-platform,Sql,Json,Snowflake Cloud Data Platform,数据库:雪花 My table包含JSON数据,例如: { "bucket":"IN_Apps", "bySeqno":56, "cas":1527639206906626048, "content":"eyJoaWdoQmluIjoiNTQ4NTA4MDkiLCJkb2N1bWVudFR5cGUiOiJJSU5ETyIsImNhcmRUeXBlIyayI6Ik1BU1RFUkNBUkQifQ==", "event":"mutation", "ex
{
"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编译错误:位置0处的错误行2无效标识符>>“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
在模式已知之前的答案下方
我假设您的表中有一个名为json
的VARCHAR
(或类似)列,它存储您提供的值。您没有提供架构,因此请根据需要调整列名
您没有将PARSE_JSON
用作SQL中的函数。你应该写一些类似的东西
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
技术人员,有什么线索吗?你的表的确切模式是什么?您是否有一个名为“parse_json”的列名?这就是SQL所建议的,但那会很奇怪。可以执行“DESC TABLE v”并将输出添加到question@MarcinZukowski:不,我没有名为parse_json的列。它内置于snowflake中,用于解析JSON。请运行“DESC TABLE v”并提供输出,我已附上上述模式的快照。当我尝试从STG_YS_应用程序中选择parse_json(json):bucket::string作为bucket时,我得到了错误:无效标识符“json”。如果我遗漏了一些东西,请帮助。如果可能的话,请有人帮助我,雪花数据仓库对我来说有点新。我需要添加数据仓库吗?很抱歉,但你显然应该阅读并阅读/观看一些关于SQL和雪花变体处理的教程。。。您的问题表明您缺乏非常基本的SQL知识。