批量加载的数据模型映射 - Amazon Timestream
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

要获得与亚马逊 Timestream 类似的功能 LiveAnalytics,可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间,以实现实时分析。点击此处了解更多信息。

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

批量加载的数据模型映射

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

数据模型映射架构

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

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

有关更多信息,请参阅 DimensionMapping。度量的映射包含两个选项:MixedMeasureMappingsMultiMeasureMappings

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

  • 时间

  • Dimensions

  • 度量

如果可能,我们建议您将测量数据映射到 Timestream 中的多度量记录中。 LiveAnalytics有关多度量记录优势的信息,请参阅多度量记录

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

MixedMeasureMappingsMultiMeasureMappings 都包括 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 是给定 MixedMeasureMappingMULTI,则对于 MixedMeasureMappingMultiMeasureAttributeMappings 是必填项。否则,MeasureValueType 表示单度量记录的度量类型。

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

SourceColumn

位于 Amazon S3 中的源数据列。

TargetMultiMeasureAttributeName

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

MeasureValueType

DOUBLEBIGINTBOOLEANVARCHARTIMESTAMP 其中之一。

使用 MultiMeasureMappings 示例的数据模型映射

此示例演示映射到多度量记录的首选方法,将每个度量值存储在专用的列中。您可以通过示例 CSV 下载示例 CSV。该示例具有以下标题,可映射到表的 Timestream 中的目标列。 LiveAnalytics

  • time

  • measure_name

  • region

  • location

  • hostname

  • memory_utilization

  • cpu_utilization

确定 CSV 文件中的 timemeasure_name 列。在这种情况下,它们直接映射到同名 LiveAnalytics 表列的时间流。

  • time 映射到 time

  • measure_name 映射到 measure_name(或您选择的值)

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

在示例中,regionlocationhostname 都是维度。维度映射到 DimensionMapping 对象的数组中。

对于度量,该值TargetMultiMeasureAttributeName将变为 “时间流” LiveAnalytics 表中的一列。您可以保留相同的名称,如本例中所示。或者,您可以指定新名称。MeasureValueTypeDOUBLEBIGINTBOOLEANVARCHARTIMESTAMP 其中之一。

{ "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.

使用 MixedMeasureMappings 示例的数据模型映射

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