本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
JSON 函数
当您需要存储相对较小的一组键值对时,您可以通过以 JSON 格式存储数据来节省空间。由于 JSON 字符串可存储在单个列中,因此使用 JSON 可能比以表格格式存储数据更高效。
例如,假设您有一个稀疏表,在此表中,您需要设置多个列来完整表示所有可能的属性。但大多数列值对任何给定行或任何给定列为 NULL。通过将 JSON 用于存储,您可能能够将行的数据以键值对的形式存储在单个 JSON 字符串中并删除稀疏填充的表列。
此外,您还可以轻松修改 JSON 字符串以存储其他键值对,而无需向表添加列。
我们建议慎用 JSON。若要存储较大的数据集,JSON 不是一个好的选择,因为将分散的数据存储在单个列中后,JSON 不会利用 AWS Clean Rooms 的列存储架构。
JSON 使用 UTF-8 编码的文本字符串,因此 JSON 字符串可存储为 CHAR 或 VARCHAR 数据类型。如果字符串包含多字节字符,则使用 VARCHAR。
JSON 字符串必须是根据以下规则正确设置格式的 JSON:
-
根级别的 JSON 可以是 JSON 对象或 JSON 数组。JSON 对象是用大括号括起的一组无序的键值对(由逗号分隔)。
例如,
{"one":1, "two":2}
-
JSON 数组是用方括号括起的一组有序值(由逗号分隔)。
以下是示例:
["first", {"one":1}, "second", 3, null]
-
JSON 数组使用从零开始的索引;数组中的第一个元素位于位置 0。在 JSON 键:值对中,键是用双引号括起的字符串。
-
JSON 值可能为以下任一值:
-
JSON 对象
-
JSON 数组
-
用双引号括起的字符串
-
数字 (整数和浮点)
-
布尔值
-
Null
-
-
空对象和空数组是有效的 JSON 值。
-
JSON 字段区分大小写。
-
将忽略 JSON 结构元素之间的空格(如
{ }, [ ]
)。
AWS Clean Rooms JSON 函数和 AWS Clean Rooms COPY 命令使用相同的方法处理 JSON 格式的数据。