Redshift是否支持JSON字段,比如Postgresql的json数据类型?如果支持,我该怎么使用它?
k97glaaz1#
您可以将JSON存储在AmazonRedshift中的普通文本字段中。有一些函数可以从JSON字段中提取数据,但它不是存储数据的有效方法,因为它没有利用Redshift基于列的架构的全部功能。参见:Amazon Redshift documentation - JSON Functions
kxxlusnw2#
更新:Redshift现在支持“super”类型的数据列,这允许保存JSON并在其上进行查询。添加了一个视频链接,进一步解释了新选项:https://www.youtube.com/watch?v=PR15TVZDgy4
ht4b089n3#
您可以使用SUPER类型在Redshift中存储JSON数据,并根据需要使用JSON_PARSE(...)将文本转换为JSON。参见https://docs.aws.amazon.com/redshift/latest/dg/r_SUPER_type.html例如:
CREATE TABLE t ( id INT, item SUPER ); INSERT INTO t VALUES(1, JSON_PARSE('{"name":"Beethoven", "born":1770}')); SELECT id, item.born FROM t WHERE item.name = 'Beethoven';
可以使用点符号查询JSON字段内容中的属性,如上所示,还可以连接JSON属性。注意,Redshift的SUPER类型目前有16MB的限制。
3条答案
按热度按时间k97glaaz1#
您可以将JSON存储在AmazonRedshift中的普通文本字段中。
有一些函数可以从JSON字段中提取数据,但它不是存储数据的有效方法,因为它没有利用Redshift基于列的架构的全部功能。
参见:Amazon Redshift documentation - JSON Functions
kxxlusnw2#
更新:Redshift现在支持“super”类型的数据列,这允许保存JSON并在其上进行查询。添加了一个视频链接,进一步解释了新选项:https://www.youtube.com/watch?v=PR15TVZDgy4
ht4b089n3#
您可以使用SUPER类型在Redshift中存储JSON数据,并根据需要使用JSON_PARSE(...)将文本转换为JSON。
参见https://docs.aws.amazon.com/redshift/latest/dg/r_SUPER_type.html
例如:
可以使用点符号查询JSON字段内容中的属性,如上所示,还可以连接JSON属性。
注意,Redshift的SUPER类型目前有16MB的限制。