查询 - Amazon Timestream

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

查询

借助 Timestream for Live Analytics DevOps,您可以轻松存储和分析物联网应用的传感器数据、用于设备维护的工业遥测数据以及许多其他用例的指标。Timestream for Live Analytics 中专门构建的自适应查询引擎允许您使用单个语句访问跨存储层的数据。SQL它可以透明地跨存储层访问和组合数据,而无需您指定数据位置。您可以使用SQL查询 Timestream for Live Analytics 中的数据,以便从一个或多个表中检索时间序列数据。您可以访问数据库和表的元数据信息。用于实时分析的 Timestream SQL 还支持用于时序分析的内置函数。您可以参考查询语言参考参考以了解更多详细信息。

Timestream for Live Analytics 旨在实现完全分离的数据摄取、存储和查询架构,其中每个组件都可以独立于其他组件进行扩展(使其能够为应用程序的需求提供几乎无限的扩展)。这意味着,当您的应用程序每天发送数百 TB 的数据或运行数百万个处理少量或大量数据的查询时,Timestream for Live Analytics 不会 “翻转”。随着数据随时间的推移而增长,Timestream for Live Analytics 的查询延迟基本保持不变。这是因为 Timestream for Live Analytics 查询架构可以利用大量的并行性来处理更大的数据量,并自动扩展以满足应用程序的查询吞吐量需求。

数据模型

Timestream 支持两种查询数据模型——平面模型和时间序列模型。

注意

Timestream 中的数据使用平面模型存储,它是查询数据的默认模型。时间序列模型是一个查询时间的概念,用于时间序列分析。

平面模型

平面模型是 Timestream 的默认查询数据模型。它以表格格式表示时间序列数据。维度名称、时间、度量名称和度量值显示为列。表中的每一行都是一个原子数据点,对应于时间序列中特定时间的测量结果。时间流数据库、表和列有一些命名限制。中描述了这些内容服务限制

下表显示了一个说明性示例,说明当数据作为单一测量记录发送时,Timestream 如何存储表示EC2实例利用率、内存利用率和网络活动的数据。CPU在这种情况下,维度是区域、可用区、虚拟私有云和EC2实例IDs的实例。衡量标准是EC2实例的CPU利用率、内存利用率和传入的网络数据。区域、az、vpc 和 instance_id 列包含维度值。时间列包含每条记录的时间戳。measure_name 列包含由 CPU 利用率、内存利用率和网络字节数_in表示的度量名称。measure_value:: double 列包含作为双精度发出的测量值(例如CPU利用率和内存利用率)。measure_value:: bigint 列包含以整数形式发出的测量值,例如传入的网络数据。

时间 区域 az vpc instance_id measure_name measure_value::double measure_value::bigint

2019-12-04 19:00:00.000 00000 000

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

CPU_利用率

35.0

null

2019-12-04 19:00:01.000 000 000 000

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

CPU_利用率

38.2

null

2019-12-04 19:00:02.000 000 000 000

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

CPU_利用率

45.3

null

2019-12-04 19:00:00.000 00000 000

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

memory_utilization

54.9

null

2019-12-04 19:00:01.000 000 000 000

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

memory_utilization

42.6

null

2019-12-04 19:00:02.000 000 000 000

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

memory_utilization

33.3

null

2019-12-04 19:00:00.000 00000 000

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

网络字节

34,400

null

2019-12-04 19:00:01.000 000 000 000

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

网络字节

1500

null

2019-12-04 19:00:02.000 000 000 000

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

网络字节

6000

null

下表显示了一个说明性示例,说明当数据作为多度CPU量记录发送时,Timestream 如何存储表示EC2实例利用率、内存利用率和网络活动的数据。

时间 区域 az vpc instance_id measure_name CPU_利用率 memory_utilization 网络字节

2019-12-04 19:00:00.000 00000 000

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

指标

35.0

54.9

34,400

2019-12-04 19:00:01.000 000 000 000

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

指标

38.2

42.6

1500

2019-12-04 19:00:02.000 000 000 000

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

指标

45.3

33.3

6,600

时间序列模型

时间序列模型是一种用于时间序列分析的查询时间结构。它将数据表示为(时间、度量值)对的有序序列。Timestream 支持插值等时间序列函数,使您能够填补数据中的空白。要使用这些函数,必须使用诸如 create_time_series 之类的函数将数据转换为时间序列模型。有关更多查询语言参考详细信息,请参阅。

使用前面的EC2实例示例,以下是以时间序列表示的CPU利用率数据。

区域 az vpc instance_id CPU_利用率

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

[{时间:2019-12-04 19:00:00.000 00000 000,值:35},{时间:2019-12-04 19:00:01.000 000 000 000 000,值:38.2},{时间:2019-12-04 19:00:00:02.000 000 000 000,值:45.3}]