从 2025 年 11 月 1 日起,Amazon Redshift 将不再支持创建新的 Python UDF。如果您想要使用 Python UDF,请在该日期之前创建 UDF。现有的 Python UDF 将继续正常运行。有关更多信息,请参阅博客文章
SUPER 类型
使用 SUPER 数据类型将半结构化数据或文档存储为值。尽管 Amazon Redshift 能够使用 VARCHAR 存储此类值,但我们建议改用 SUPER 数据类型。
半结构化数据不符合 SQL 数据库中使用的关系数据模型的刚性和表格结构。它包含引用数据中不同实体的标签。它们可以包含复杂的值,如数组、嵌套结构和其他与序列化格式(如 JSON)相关联的复杂结构。SUPER 数据类型是一组无 schema 数组和结构值,它们包含 Amazon Redshift 的所有其他标量类型。
SUPER 数据类型最高支持 16 MB 的单个 SUPER 对象的数据。有关 SUPER 数据类型的更多信息,包括在表中实现它的示例,请参阅Amazon Redshift 中的半结构化数据。
Amazon Redshift 为使用 COPY 命令摄取以下半结构化数据格式提供了内置支持:
JSON
ARRAY
TEXT
CSV
只能从以下文件格式摄取大于 1MB 的 SUPER 对象:
-
Parquet
-
JSON
-
TEXT
-
CSV
SUPER 数据类型具有以下属性:
-
Amazon Redshift 标量值:
-
Null
-
布尔值
-
一个数字,如 smallint、整数、bigint、小数或浮点(如 float4 或 float8)
-
字符串值,如 varchar 或 char
-
-
一个复杂的值:
-
一个值数组,包括标量或复数
-
一个结构,也称为元组或对象,它是属性名称和值(标量或复数)的映射
-
这两种类型的复数值中的任何一种都包含它们自己的标量或复数值,而对规则性没有任何限制。
SUPER 数据类型的默认压缩编码为 ZSTD。有关压缩编码的更多信息,请参阅压缩编码。
SUPER 数据类型以无架构形式支持半结构化数据的持久性。虽然分层数据模型可以更改,但旧版本的数据可以共存在于同一个 SUPER 列中。
Amazon Redshift 使用 PartiQL 来实现数组和结构的导航。Amazon Redshift 还使用 PartiQL 语法遍历 SUPER 数组。有关更多信息,请参阅 。
Amazon Redshift 使用动态键入来处理无架构的 SUPER 数据,而无需在查询中使用数据类型之前声明数据类型。有关更多信息,请参阅 动态键入。
可以将动态数据掩蔽策略应用于 SUPER 类型列的路径上的标量值。有关动态数据掩蔽的更多信息,请参阅动态数据掩蔽。有关为 SUPER 数据类型使用动态数据掩蔽的信息,请参阅对 SUPER 数据类型路径使用动态数据掩蔽。
建议您在处理 SUPER 数据时将 r_enable_case_sensitive_super_attribute
配置选项设置为 true。有关更多信息,请参阅 enable_case_sensitive_super_attribute。