选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

JSON 函数

聚焦模式
JSON 函数 - Amazon Redshift
注意

我们建议您使用以下函数来处理 JSON:

使用 JSON_PARSE,您只需要在摄取时将 JSON 文本转换为 SUPER 类型值一次,之后就可以对 SUPER 值进行操作了。Amazon Redshift 解析 SUPER 值的效率比 VARCHAR 更高,后者是基于文本的 JSON 函数的输出。有关处理 SUPER 数据类型的更多信息,请参阅Amazon Redshift 中的半结构化数据

当您需要存储相对较小的一组键值对时,您可以通过以 JSON 格式存储数据来节省空间。由于 JSON 字符串可存储在单个列中,因此使用 JSON 可能比以表格格式存储数据更高效。例如,假设您有一个稀疏表,在此表中,您需要设置多个列来完整表示所有可能的属性,但大多数列值对任何给定行或任何给定列为 NULL。通过将 JSON 用于存储,您可能能够将行的数据以键值对的形式存储在单个 JSON 字符串中并删除稀疏填充的表列。

此外,当 JSON 架构发生变化时,您还可以轻松修改 JSON 字符串来存储其它键值对,而无需向表添加列。

我们建议慎用 JSON。若要存储较大的数据集,JSON 不是一个好的选择,因为将分散的数据存储在单个列中后,JSON 不会利用 Amazon Redshift 的列存储架构。虽然 Amazon Redshift 支持跨 CHAR 和 VARCHAR 列的 JSON 函数,但我们建议使用 SUPER 来处理 JSON 序列化格式的数据。SUPER 使用可以有效查询分层数据的后解析无 schema 表示。有关 SUPER 数据类型的更多信息,请参阅Amazon Redshift 中的半结构化数据

JSON 使用 UTF-8 编码的文本字符串,因此 JSON 字符串可存储为 CHAR 或 VARCHAR 数据类型。

JSON 字符串必须是根据以下规则正确设置格式的 JSON:

  • 根级别的 JSON 可以是 JSON 对象或 JSON 数组。JSON 对象是用大括号括起的一组无序的键值对(由逗号分隔)。

    例如,{"one":1, "two":2}

  • JSON 数组是用方括号括起的一组有序值(由逗号分隔)。

    以下是示例:["first", {"one":1}, "second", 3, null]

  • JSON 数组使用从零开始的索引;数组中的第一个元素位于位置 0。在 JSON 键:值对中,键是用双引号括起的字符串。

  • JSON 值可能为以下任一值:

    • JSON 对象

    • array

    • 字符串

      • 用双引号表示

    • 数字

      • 包括整数、小数和浮点数

    • 布尔值

    • null

  • 空对象和空数组是有效的 JSON 值。

  • JSON 字段区分大小写。

  • 将忽略 JSON 结构元素之间的空格(如 { }, [ ])。

Amazon Redshift JSON 函数和 Amazon Redshift COPY 命令使用相同的方法处理 JSON 格式的数据。有关使用 JSON 的更多信息,请参阅从 JSON 格式数据执行的 COPY 操作

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。