datamanager part-2
This commit is contained in:
parent
7e9f6684a8
commit
05477a2a66
|
@ -91,12 +91,52 @@ foo_2015-01-03/2015-01-04_v1_2
|
|||
* Dimensions: 由于Apache Druid支持schema更改,因此即使是同一个数据源的一部分,各个段之间的维度也可能不同。如果输入段具有不同的维度,则输出段基本上包括输入段的所有维度。但是,即使输入段具有相同的维度集,维度顺序或维度的数据类型也可能不同。例如,某些维度的数据类型可以从 `字符串` 类型更改为基本类型,或者可以更改维度的顺序以获得更好的局部性。在这种情况下,在数据类型和排序方面,最近段的维度先于旧段的维度。这是因为最近的段更有可能具有所需的新顺序和数据类型。如果要使用自己的顺序和类型,可以在压缩任务规范中指定自定义 `dimensionsSpec`。
|
||||
* Roll-up: 仅当为所有输入段设置了 `rollup` 时,才会汇总输出段。有关详细信息,请参见 [rollup](ingestion.md#rollup)。您可以使用 [段元数据查询](../Querying/segmentMetadata.md) 检查段是否已被rollup。
|
||||
|
||||
|
||||
#### 压缩合并的IOConfig
|
||||
压缩IOConfig需要指定 `inputSpec`,如下所示。
|
||||
|
||||
| 字段 | 描述 | 是否必须 |
|
||||
|-|-|-|
|
||||
| `type` | 任务类型,固定为 `compact` | 是 |
|
||||
| `inputSpec` | 输入规范 | 是 |
|
||||
|
||||
目前有两种支持的 `inputSpec`:
|
||||
|
||||
时间间隔 `inputSpec`:
|
||||
|
||||
| 字段 | 描述 | 是否必须 |
|
||||
|-|-|-|
|
||||
| `type` | 任务类型,固定为 `interval` | 是 |
|
||||
| `interval` | 需要合并压缩的时间间隔 | 是 |
|
||||
|
||||
段 `inputSpec`:
|
||||
|
||||
| 字段 | 描述 | 是否必须 |
|
||||
|-|-|-|
|
||||
| `type` | 任务类型,固定为 `segments` | 是 |
|
||||
| `segments` | 段ID列表 | 是 |
|
||||
|
||||
### 增加新的数据
|
||||
|
||||
Druid可以通过将新的段追加到现有的段集,来实现新数据插入到现有的数据源中。它还可以通过将现有段集与新数据合并并覆盖原始集来添加新数据。
|
||||
|
||||
Druid不支持按主键更新单个记录。
|
||||
|
||||
### 更新现有的数据
|
||||
|
||||
在数据源中摄取一段时间的数据并创建Apache Druid段之后,您可能需要对摄取的数据进行更改。有几种方法可以做到这一点。
|
||||
|
||||
#### 使用lookups
|
||||
|
||||
如果有需要经常更新值的维度,请首先尝试使用 [lookups](../Querying/lookups.md)。lookups的一个典型用例是,在Druid段中存储一个ID维度,并希望将ID维度映射到一个人类可读的字符串值,该字符串值可能需要定期更新。
|
||||
|
||||
#### 重新摄取数据
|
||||
|
||||
如果基于lookups的技术还不够,您需要将想更新的时间块的数据重新索引到Druid中。这可以在覆盖模式(默认模式)下使用 [批处理摄取](ingestion.md#批量摄取) 方法之一来完成。它也可以使用 [流式摄取](ingestion.md#流式摄取) 来完成,前提是您先删除相关时间块的数据。
|
||||
|
||||
如果在批处理模式下进行重新摄取,Druid的原子更新机制意味着查询将从旧数据无缝地转换到新数据。
|
||||
|
||||
我们建议保留一份原始数据的副本,以防您需要重新摄取它。
|
||||
|
||||
#### 使用基于Hadoop的摄取
|
||||
#### 使用原生批摄取重新索引
|
||||
### 删除数据
|
||||
|
|
Loading…
Reference in New Issue