diff --git a/DataIngestion/dataformats.md b/DataIngestion/dataformats.md
index b23db7d..2bb421b 100644
--- a/DataIngestion/dataformats.md
+++ b/DataIngestion/dataformats.md
@@ -120,7 +120,7 @@ TSV `inputFormat` 有以下组件:
#### ORC
> [!WARNING]
-> 使用ORC输入格式之前,首先需要包含 [druid-core-extensions](../Development/orc-extensions.md)
+> 使用ORC输入格式之前,首先需要包含 [druid-orc-extensions](../Development/orc-extensions.md)
> [!WARNING]
> 如果您正在考虑从早于0.15.0的版本升级到0.15.0或更高版本,请仔细阅读 [从contrib扩展的迁移](../Development/orc-extensions.md#从contrib扩展迁移)。
@@ -148,8 +148,118 @@ TSV `inputFormat` 有以下组件:
ORC `inputFormat` 有以下组件:
+| 字段 | 类型 | 描述 | 是否必填 |
+|-|-|-|-|
+| type | String | 填 `orc` | 是 |
+| flattenSpec | JSON对象 | 指定嵌套JSON数据的展平配置。更多信息请参见[flattenSpec](#flattenspec) | 否 |
+| binaryAsString | 布尔类型 | 指定逻辑上未标记为字符串的二进制orc列是否应被视为UTF-8编码字符串。 | 否(默认为false) |
+
#### Parquet
+
+> [!WARNING]
+> 使用Parquet输入格式之前,首先需要包含 [druid-parquet-extensions](../Development/parquet-extensions.md)
+
+一个加载Parquet格式数据的 `inputFormat` 示例:
+```
+"ioConfig": {
+ "inputFormat": {
+ "type": "parquet",
+ "flattenSpec": {
+ "useFieldDiscovery": true,
+ "fields": [
+ {
+ "type": "path",
+ "name": "nested",
+ "expr": "$.path.to.nested"
+ }
+ ]
+ }
+ "binaryAsString": false
+ },
+ ...
+}
+```
+
+Parquet `inputFormat` 有以下组件:
+
+| 字段 | 类型 | 描述 | 是否必填 |
+|-|-|-|-|
+| type | String | 填 `parquet` | 是 |
+| flattenSpec | JSON对象 | 定义一个 [flattenSpec](#flattenspec) 从Parquet文件提取嵌套的值。注意,只支持"path"表达式('jq'不可用)| 否(默认自动发现根级别的属性) |
+| binaryAsString | 布尔类型 | 指定逻辑上未标记为字符串的二进制orc列是否应被视为UTF-8编码字符串。 | 否(默认为false) |
+
#### FlattenSpec
+
+`flattenSpec` 位于 `inputFormat` -> `flattenSpec` 中,负责将潜在的嵌套输入数据(如JSON、Avro等)和Druid的平面数据模型之间架起桥梁。 `flattenSpec` 示例如下:
+```
+"flattenSpec": {
+ "useFieldDiscovery": true,
+ "fields": [
+ { "name": "baz", "type": "root" },
+ { "name": "foo_bar", "type": "path", "expr": "$.foo.bar" },
+ { "name": "first_food", "type": "jq", "expr": ".thing.food[1]" }
+ ]
+}
+```
+> [!WARNING]
+> 概念上,输入数据被读取后,Druid会以一个特定的顺序来对数据应用摄入规范: 首先 `flattenSpec`(如果有),然后 `timestampSpec`, 然后 `transformSpec` ,最后是 `dimensionsSpec` 和 `metricsSpec`。在编写摄入规范时需要牢记这一点
+
+展平操作仅仅支持嵌套的 [数据格式](dataformats.md), 包括:`avro`, `json`, `orc` 和 `parquet`。
+
+`flattenSpec` 有以下组件:
+
+| 字段 | 描述 | 默认值 |
+|-|-|-|
+| useFieldDiscovery | 如果为true,则将所有根级字段解释为可用字段,供 [`timestampSpec`](../DataIngestion/ingestion.md#timestampSpec)、[`transformSpec`](../DataIngestion/ingestion.md#transformSpec)、[`dimensionsSpec`](../DataIngestion/ingestion.md#dimensionsSpec) 和 [`metricsSpec`](../DataIngestion/ingestion.md#metricsSpec) 使用。
如果为false,则只有显式指定的字段(请参阅 `fields`)才可供使用。 | true |
+| fields | 指定感兴趣的字段及其访问方式, 详细请见下边 | `[]` |
+
+**字段展平规范**
+
+`fields` 列表中的每个条目都可以包含以下组件:
+
+
字段 | +描述 | +默认值 | +
type | +
+ 可选项如下:
+
|
+ none(必填) | +
name | +展平后的字段名称。这个名称可以被timestampSpec , transformSpec , dimensionsSpec 和metricsSpec 引用 |
+ none(必填) | +
expr | +用于在展平时访问字段的表达式。对于类型 `path`,这应该是 JsonPath。对于 `jq` 类型,这应该是 jackson-jq 表达式。对于其他类型,将忽略此参数。 | +none(对于 `path` 和 `jq` 类型的为必填) | +