2022-04-10 23:08:18 +00:00
|
|
|
|
---
|
2022-08-26 19:07:59 +00:00
|
|
|
|
slug: /zh/faq/integration/json-import
|
2024-01-17 05:33:02 +00:00
|
|
|
|
title: 如何将 JSON 导入到 ClickHouse?
|
2022-04-10 23:08:18 +00:00
|
|
|
|
toc_hidden: true
|
|
|
|
|
sidebar_position: 11
|
|
|
|
|
---
|
|
|
|
|
|
2024-01-17 05:33:02 +00:00
|
|
|
|
# 如何将 JSON 导入到 ClickHouse? {#how-to-import-json-into-clickhouse}
|
2022-04-10 23:08:18 +00:00
|
|
|
|
|
2024-01-17 05:33:02 +00:00
|
|
|
|
ClickHouse 支持多种[输入和输出的数据格式](../../interfaces/formats.md)。其中包括多种 JSON 变体,但最常用于数据导入的是 [JSONEachRow](../../interfaces/formats.md#jsoneachrow)。它期望每行一个 JSON 对象,每个对象由一个新行分隔。
|
2022-04-10 23:08:18 +00:00
|
|
|
|
|
2024-01-17 05:33:02 +00:00
|
|
|
|
## 示例 {#examples}
|
2022-04-10 23:08:18 +00:00
|
|
|
|
|
2024-01-17 05:33:02 +00:00
|
|
|
|
使用 [HTTP 接口](../../interfaces/http.md):
|
2022-04-10 23:08:18 +00:00
|
|
|
|
|
|
|
|
|
``` bash
|
|
|
|
|
$ echo '{"foo":"bar"}' | curl 'http://localhost:8123/?query=INSERT%20INTO%20test%20FORMAT%20JSONEachRow' --data-binary @-
|
|
|
|
|
```
|
|
|
|
|
|
2024-01-17 05:33:02 +00:00
|
|
|
|
使用 [CLI接口](../../interfaces/cli.md):
|
2022-04-10 23:08:18 +00:00
|
|
|
|
|
|
|
|
|
``` bash
|
|
|
|
|
$ echo '{"foo":"bar"}' | clickhouse-client --query="INSERT INTO test FORMAT JSONEachRow"
|
|
|
|
|
```
|
|
|
|
|
|
2024-01-17 05:33:02 +00:00
|
|
|
|
除了手动插入数据外,您可能会考虑使用 [客户端库](../../interfaces/index.md) 之一。
|
2022-04-10 23:08:18 +00:00
|
|
|
|
|
2024-01-17 05:33:02 +00:00
|
|
|
|
## 实用设置 {#useful-settings}
|
2022-04-10 23:08:18 +00:00
|
|
|
|
|
2024-01-17 05:33:02 +00:00
|
|
|
|
- `input_format_skip_unknown_fields` 允许插入 JSON,即使存在表格架构中未出现的额外字段(通过丢弃它们)。
|
|
|
|
|
- `input_format_import_nested_json` 允许将嵌套 JSON 对象插入到 [Nested](../../sql-reference/data-types/nested-data-structures/nested.md) 类型的列中。
|
2022-04-10 23:08:18 +00:00
|
|
|
|
|
2023-03-18 02:45:43 +00:00
|
|
|
|
:::note
|
2024-01-21 23:27:59 +00:00
|
|
|
|
对于 HTTP 接口,设置作为 `GET` 参数指定;对于 `CLI` 接口,则作为前缀为 -- 的附加命令行参数。
|
2022-04-10 23:08:18 +00:00
|
|
|
|
:::
|