| 输入 | 输出 | 别名 |
|---|---|---|
| ✔ | ✔ |
说明
JSONEachRow 格式。
示例用法
基础示例
format_json_object_each_row_column_for_object_name。
该设置的值应设为某个列名,该列名会在结果对象中用作某一行的 JSON 键。
输出
test 的表,包含两列:
JSONObjectEachRow 格式输出,并使用 format_json_object_each_row_column_for_object_name 设置:
Query
Response
输入
data.json 的文件中:
Query
Response
Query
Response
插入数据
Query
- 对象中的键值对按任意顺序排列。
- 省略某些值。
省略值的处理
DEFAULT expr,ClickHouse 会根据 input_format_defaults_for_omitted_fields 设置采用不同的填补规则。
请看下表:
Query
- 如果
input_format_defaults_for_omitted_fields = 0,则x和a的默认值均为0(即UInt32数据类型的默认值) 。 - 如果
input_format_defaults_for_omitted_fields = 1,则x的默认值为0,但a的默认值为x * 2。
当以
input_format_defaults_for_omitted_fields = 1 插入数据时,相比 input_format_defaults_for_omitted_fields = 0,ClickHouse 会消耗更多计算资源。查询数据
UserActivity 表为例:
SELECT * FROM UserActivity FORMAT JSONEachRow 的返回结果为:
JSON 相同。
字符串中可以输出任意字节序列。如果你确定表中的数据可以在不丢失任何信息的情况下格式化为 JSON,请使用
JSONEachRow 格式。Nested 结构的用法
Nested 数据类型的列,则可以插入具有相同结构的 JSON 数据。可通过 input_format_import_nested_json 设置启用此功能。
例如,考虑如下表:
Query
Nested 数据类型说明中所示,ClickHouse 会将嵌套结构的每个组成部分视为单独的列 (在我们的表中即 n.s 和 n.i) 。你可以按如下方式插入数据:
Query
input_format_import_nested_json=1。
Query
Response
Query
Response
Query
Response