要获得与亚马逊 Timestream 类似的功能 LiveAnalytics,可以考虑适用于 InfluxDB 的亚马逊 Timestream。它为实时分析提供了简化的数据摄取和个位数毫秒的查询响应时间。在这里了解更多。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
批量加载的数据模型映射
以下内容讨论了数据模型映射的架构,并给出了示例。
数据模型映射架构
CreateBatchLoadTask请求语法和调用返回的BatchLoadTaskDescription对象,该DataModelConfiguration对象DescribeBatchLoadTask包含DataModel用于批量加载的对象。DataModel定义了从以 CSV 格式存储在 S3 位置的源数据到 LiveAnalytics 数据库和表的目标时间流的映射。
该TimeColumn字段表示要映射到 Timestream 中目标表time列的值的 LiveAnalytics源数据的位置。TimeUnit指定了的单位TimeColumn,并且可以是MILLISECONDS、SECONDSMICROSECONDS、或之一NANOSECONDS。还有维度和度量的映射。维度映射由源列和目标字段组成。
有关更多信息,请参阅 DimensionMapping。度量的映射有两个选项,MixedMeasureMappings和。MultiMeasureMappings
总而言之,a DataModel 包含从 S3 位置的数据源到以下 LiveAnalytics 表的目标时间流的映射。
-
Time
-
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是给MULTI定的MixedMeasureMapping,则MultiMeasureAttributeMappings是必需的MixedMeasureMapping。否则,MeasureValueType表示单项测量记录的度量类型。
无论哪种方式,都有一系列MultiMeasureAttributeMapping可用。您可以MultiMeasureAttributeMapping按如下方式定义每条中多度量记录的映射:
SourceColumn-
源数据中位于 Amazon S3 中的列。
TargetMultiMeasureAttributeName-
目标表中目标多指标名称的名称。如果未提供此输入
MeasureNameColumn,则需要此输入。如果提供,MeasureNameColumn则该列中的值将用作多度量名称。 MeasureValueType-
、
DOUBLEBIGINTBOOLEANVARCHAR、或之一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中指定支持的时间单位值,例如MILLISECONDS在TimeUnit字段中。它们对应于控制台中输入的源列名称和时间戳时间。您可以使用MeasureNameColumn密钥定义measure_name的记录分组或分区。
在样本中region,location、和hostname是维度。维度映射到一个DimensionMapping对象数组中。
对于度量,该值TargetMultiMeasureAttributeName将变为 “时间流” LiveAnalytics 表中的一列。您可以保留相同的名称,如本例所示。或者你可以指定一个新的。 MeasureValueType是、DOUBLE、BIGINTBOOLEANVARCHAR、或之一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