

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# SUPER 类型
<a name="r_SUPER_type"></a>

使用 SUPER 数据类型将半结构化数据或文档存储为值。尽管 Amazon Redshift 能够使用 VARCHAR 存储此类值，但我们建议改用 SUPER 数据类型。

半结构化数据不符合 SQL 数据库中使用的关系数据模型的刚性和表格结构。它包含引用数据中不同实体的标签。它们可以包含复杂的值，如数组、嵌套结构和其他与序列化格式（如 JSON）相关联的复杂结构。SUPER 数据类型是一组无 schema 数组和结构值，它们包含 Amazon Redshift 的所有其他标量类型。

SUPER 数据类型最高支持 16 MB 的单个 SUPER 对象的数据。有关 SUPER 数据类型的更多信息，包括在表中实现它的示例，请参阅[Amazon Redshift 中的半结构化数据](super-overview.md)。

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。有关压缩编码的更多信息，请参阅[压缩编码](c_Compression_encodings.md)。

SUPER 数据类型以无架构形式支持半结构化数据的持久性。虽然分层数据模型可以更改，但旧版本的数据可以共存在于同一个 SUPER 列中。

Amazon Redshift 使用 PartiQL 来实现数组和结构的导航。Amazon Redshift 还使用 PartiQL 语法遍历 SUPER 数组。有关更多信息，请参阅 [PartiQL：适用于 Amazon Redshift 的 SQL 兼容查询语言](super-partiql.md)。

Amazon Redshift 使用动态键入来处理无架构的 SUPER 数据，而无需在查询中使用数据类型之前声明数据类型。有关更多信息，请参阅 [动态键入](query-super.md#dynamic-typing-lax-processing)。

可以将动态数据掩蔽策略应用于 SUPER 类型列的路径上的标量值。有关动态数据掩蔽的更多信息，请参阅[动态数据掩蔽](t_ddm.md)。有关为 SUPER 数据类型使用动态数据掩蔽的信息，请参阅[对 SUPER 数据类型路径使用动态数据掩蔽](t_ddm-super.md)。

建议您在处理 SUPER 数据时将 `r_enable_case_sensitive_super_attribute` 配置选项设置为 true。有关更多信息，请参阅 [enable\$1case\$1sensitive\$1super\$1attribute](r_enable_case_sensitive_super_attribute.md)。