

要获得与亚马逊 Timestream 类似的功能 LiveAnalytics，可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间，以实现实时分析。点击[此处](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)了解更多信息。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 批量加载的数据模型映射
<a name="batch-load-data-model-mappings"></a>

以下内容讨论数据模型映射的架构，并给出具体示例。

## 数据模型映射架构
<a name="batch-load-data-model-mappings-schema"></a>

调用 `DescribeBatchLoadTask` 返回的 `CreateBatchLoadTask` 请求语法和 `BatchLoadTaskDescription` 对象包含 `DataModelConfiguration` 对象，该对象包含用于批量加载的 `DataModel`。`DataModel`定义了从以 CSV 格式存储在 S3 位置的源数据到 LiveAnalytics 数据库和表的目标时间流的映射。

该`TimeColumn`字段表示要映射到 Timestream 中目标表`time`列的值的 LiveAnalytics源数据的位置。`TimeUnit` 指定 `TimeColumn` 的单位，可以是 `MILLISECONDS`、`SECONDS`、`MICROSECONDS` 或 `NANOSECONDS` 其中之一。还存在用于维度和度量的映射关系。维度映射由源列和目标字段组成。

有关更多信息，请参阅 [DimensionMapping](https://docs.aws.amazon.com/timestream/latest/developerguide/API_DimensionMapping)。度量的映射包含两个选项：`MixedMeasureMappings` 和 `MultiMeasureMappings`。

总而言之，a `DataModel` 包含从 S3 位置的数据源到以下 LiveAnalytics 表的目标时间流的映射。
+ 时间
+ Dimensions
+ 度量

如果可能，我们建议您将测量数据映射到 Timestream 中的多度量记录中。 LiveAnalytics有关多度量记录优势的信息，请参阅[多度量记录](writes.md#writes.writing-data-multi-measure)。

如果源数据中的多个度量存储在一行中，则可以将这些多个度量映射到 Timestream 中的多度量记录以供使用 LiveAnalytics 。`MultiMeasureMappings`如果存在必须映射到单度量记录的值，可使用 `MixedMeasureMappings`。

`MixedMeasureMappings` 和 `MultiMeasureMappings` 都包括 `MultiMeasureAttributeMappings`。无论是否需要单度量记录，均支持多度量记录。

如果 Timestream 中只需要多度量目标记录 LiveAnalytics，则可以在以下结构中定义度量映射。

```
CreateBatchLoadTask
    MeasureNameColumn
    MultiMeasureMappings
        TargetMultiMeasureName
        MultiMeasureAttributeMappings array
```

**注意**  
建议尽量使用 `MultiMeasureMappings`。

如果 Timestream 中需要单度量目标记录 LiveAnalytics，则可以在以下结构中定义度量映射。

```
CreateBatchLoadTask
    MeasureNameColumn
    MixedMeasureMappings array
        MixedMeasureMapping
            MeasureName
            MeasureValueType
            SourceColumn
            TargetMeasureName
            MultiMeasureAttributeMappings array
```

使用 `MultiMeasureMappings` 时，`MultiMeasureAttributeMappings` 数组始终为必填项。使用 `MixedMeasureMappings` 数组时，如果 `MeasureValueType` 是给定 `MixedMeasureMapping` 的 `MULTI`，则对于 `MixedMeasureMapping`，`MultiMeasureAttributeMappings` 是必填项。否则，`MeasureValueType` 表示单度量记录的度量类型。

无论哪种方式，都有 `MultiMeasureAttributeMapping` 的数组可用。您可以按如下方式定义每个 `MultiMeasureAttributeMapping` 中多度量记录的映射：

`SourceColumn`  
位于 Amazon S3 中的源数据列。

`TargetMultiMeasureAttributeName`  
目标表中目标多度量名称的名称。未提供 `MeasureNameColumn` 时需要此输入。如果已提供 `MeasureNameColumn`，则该列中的值会用作多度量名称。

`MeasureValueType`  
`DOUBLE`、`BIGINT`、`BOOLEAN`、`VARCHAR` 或 `TIMESTAMP` 其中之一。

## 使用 `MultiMeasureMappings` 示例的数据模型映射
<a name="batch-load-data-model-mappings-example-multi"></a>

此示例演示映射到多度量记录的首选方法，将每个度量值存储在专用的列中。您可以通过[示例 CSV](samples/batch-load-sample-file.csv.zip) 下载示例 CSV。该示例具有以下标题，可映射到表的 Timestream 中的目标列。 LiveAnalytics 
+ `time`
+ `measure_name`
+ `region`
+ `location`
+ `hostname`
+ `memory_utilization`
+ `cpu_utilization`

确定 CSV 文件中的 `time` 和 `measure_name` 列。在这种情况下，它们直接映射到同名 LiveAnalytics 表列的时间流。
+ `time` 映射到 `time`
+ `measure_name` 映射到 `measure_name`（或您选择的值）

使用 API 时，您可以在 `TimeColumn` 字段中指定 `time` 以及支持的时间单位值，例如 `TimeUnit` 字段中的 `MILLISECONDS`。这些对应于控制台中**源列名称**和**时间戳时间输入**。您可以使用 `MeasureNameColumn` 密钥定义的 `measure_name`，对记录进行分组或分区。

在示例中，`region`、`location` 和 `hostname` 都是维度。维度映射到 `DimensionMapping` 对象的数组中。

对于度量，该值`TargetMultiMeasureAttributeName`将变为 “时间流” LiveAnalytics 表中的一列。您可以保留相同的名称，如本例中所示。或者，您可以指定新名称。`MeasureValueType` 是 `DOUBLE`、`BIGINT`、`BOOLEAN`、`VARCHAR` 或 `TIMESTAMP` 其中之一。

```
{
  "TimeColumn": "time",
  "TimeUnit": "MILLISECONDS",
  "DimensionMappings": [
    {
      "SourceColumn": "region",
      "DestinationColumn": "region"
    },
    {
      "SourceColumn": "location",
      "DestinationColumn": "location"
    },
    {
      "SourceColumn": "hostname",
      "DestinationColumn": "hostname"
    }
  ],
  "MeasureNameColumn": "measure_name",
  "MultiMeasureMappings": {
    "MultiMeasureAttributeMappings": [
      {
        "SourceColumn": "memory_utilization",
        "TargetMultiMeasureAttributeName": "memory_utilization",
        "MeasureValueType": "DOUBLE"
      },
      {
        "SourceColumn": "cpu_utilization",
        "TargetMultiMeasureAttributeName": "cpu_utilization",
        "MeasureValueType": "DOUBLE"
      }
    ]
  }
}
```

![\[Visual builder interface showing column mappings for timestream data attributes and types.\]](http://docs.aws.amazon.com/zh_cn/timestream/latest/developerguide/images/column-mapping.jpg)


## 使用 `MixedMeasureMappings` 示例的数据模型映射
<a name="batch-load-data-model-mappings-example-mixed"></a>

我们建议您仅在需要映射到 Timestream 中的单度记录时才使用此方法。 LiveAnalytics