Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Snowflake数据库中JSON文件的解析_Sql_Json_Snowflake Cloud Data Platform - Fatal编程技术网

Sql Snowflake数据库中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

数据库:雪花

My 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编译错误:位置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知识。