SUPER 类型 - Amazon Redshift

SUPER 类型

使用 SUPER 数据类型将半结构化数据或文档存储为值。

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

SUPER 数据类型最高支持 16 MB 的单个 SUPER 对象的数据。有关 SUPER 数据类型的更多信息,包括在表中实现它的示例,请参阅在 Amazon Redshift 中摄取和查询半结构化数据

只能从以下文件格式摄取大于 1MB 的 SUPER 对象:

  • Parquet

  • JSON

  • TEXT

  • CSV

SUPER 数据类型具有以下属性:

  • Amazon Redshift 标量值:

    • Null

    • 布尔值

    • 一个数字,如 smallint、整数、bigint、小数或浮点(如 float4 或 float8)

    • 字符串值,如 varchar 或 char

  • 一个复杂的值:

    • 一个值数组,包括标量或复数

    • 一个结构,也称为元组或对象,它是属性名称和值(标量或复数)的映射

这两种类型的复数值中的任何一种都包含它们自己的标量或复数值,而对规则性没有任何限制。

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

Amazon Redshift 使用 PartiQL 来实现数组和结构的导航。Amazon Redshift 还使用 PartiQL 语法遍历 SUPER 数组。有关更多信息,请参阅 导航取消嵌套查询

Amazon Redshift 使用动态键入来处理无架构的 SUPER 数据,而无需在查询中使用数据类型之前声明数据类型。有关更多信息,请参阅 动态键入

您可以将动态数据掩蔽策略应用于 SUPER 类型列路径上的 scalar 值。有关动态数据掩蔽的更多信息,请参阅动态数据掩蔽。有关为 SUPER 数据类型使用动态数据掩蔽的信息,请参阅对 SUPER 数据类型路径使用动态数据掩蔽