要获得与亚马逊 Timestream 类似的功能 LiveAnalytics,可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间,以实现实时分析。点击此处了解更多信息。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
批量加载的数据模型映射
以下内容讨论数据模型映射的架构,并给出具体示例。
数据模型映射架构
调用 DescribeBatchLoadTask 返回的 CreateBatchLoadTask 请求语法和 BatchLoadTaskDescription 对象包含 DataModelConfiguration 对象,该对象包含用于批量加载的 DataModel。DataModel定义了从以 CSV 格式存储在 S3 位置的源数据到 LiveAnalytics 数据库和表的目标时间流的映射。
该TimeColumn字段表示要映射到 Timestream 中目标表time列的值的 LiveAnalytics源数据的位置。TimeUnit 指定 TimeColumn 的单位,可以是 MILLISECONDS、SECONDS、MICROSECONDS 或 NANOSECONDS 其中之一。还存在用于维度和度量的映射关系。维度映射由源列和目标字段组成。
有关更多信息,请参阅 DimensionMapping。度量的映射包含两个选项:MixedMeasureMappings 和 MultiMeasureMappings。
总而言之,a DataModel 包含从 S3 位置的数据源到以下 LiveAnalytics 表的目标时间流的映射。
-
时间
-
Dimensions
-
度量
如果可能,我们建议您将测量数据映射到 Timestream 中的多度量记录中。 LiveAnalytics有关多度量记录优势的信息,请参阅多度量记录。
如果源数据中的多个度量存储在一行中,则可以将这些多个度量映射到 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 示例的数据模型映射
此示例演示映射到多度量记录的首选方法,将每个度量值存储在专用的列中。您可以通过示例 CSV 下载示例 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" } ] } }
使用 MixedMeasureMappings 示例的数据模型映射
我们建议您仅在需要映射到 Timestream 中的单度记录时才使用此方法。 LiveAnalytics