如何在Snowflake中从指定URL读取并查询JSON文件?
在Snowflake中读取GitHub上的JSON文件
你之前使用PARSE_URL只能解析URL的结构信息,无法获取文件内容,正确操作步骤如下:
替换GitHub链接为原始文件地址
GitHub的blob链接指向的是网页视图,而非原始文件,需要把路径中的blob替换为raw,你的目标链接应改为:https://github.com/mehdimarjan/optimism-overtime-markets/raw/main/games.json获取并解析JSON内容
用Snowflake的GET函数抓取URL对应的文件内容,再通过PARSE_JSON将文本解析为JSON对象:
SELECT PARSE_JSON(GET('https://github.com/mehdimarjan/optimism-overtime-markets/raw/main/games.json')) AS full_json;
- 展开JSON数组并查询具体字段
如果JSON包含数组(比如示例中的games数组),可以用FLATTEN函数展开后提取指定字段,示例代码:
SELECT value:id::INT AS game_id, value:title::STRING AS game_title, value:status::STRING AS game_status FROM TABLE(FLATTEN( input => PARSE_JSON(GET('https://github.com/mehdimarjan/optimism-overtime-markets/raw/main/games.json')):games ));
关键说明
GET函数用于从HTTP/HTTPS URL获取资源内容,返回字符串格式的文件内容PARSE_JSON将字符串转换为Snowflake可处理的JSON对象FLATTEN用于将JSON数组拆分为多行,方便查询单个元素的字段
内容的提问来源于stack exchange,提问作者mehdi marjan
相关产品推荐
相关产品推荐

