

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

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

# 导数函数
<a name="timeseries-specific-constructs.functions.derivatives"></a>

导数用于计算特定指标的变化率，并可用于主动响应事件。例如，假设您计算过去 5 分钟内 EC2 实例 CPU 利用率的导数，并注意到出现明显的正导数。这可能表明对工作负载的需求有所增加，因此您可能需要启动更多的 EC2 实例，以更好地处理您的工作负载。

Amazon Timestream 支持两种导数函数的变体。本节提供 LiveAnalytics 导数函数的时间流的用法信息以及示例查询。



## 使用情况信息
<a name="w2aab7c59c13c13c13b9"></a>


| 函数 | 输出数据类型 | 说明 | 
| --- | --- | --- | 
|  `derivative_linear(timeseries, interval)`  |  时间序列  |  计算 `timeseries` 中每个点对指定 `interval` 的[导数](https://wikipedia.org/wiki/Derivative)。  | 
|  `non_negative_derivative_linear(timeseries, interval)`  |  时间序列  |  与 `derivative_linear(timeseries, interval)` 相同，但仅返回正值。  | 

## 查询示例
<a name="w2aab7c59c13c13c13c11"></a>

**Example**  
计算过去 1 小时内 CPU 利用率每 5 分钟的变化率：  

```
SELECT DERIVATIVE_LINEAR(CREATE_TIME_SERIES(time, measure_value::double), 5m) AS result 
FROM “sampleDB”.DevOps 
WHERE measure_name = 'cpu_utilization' 
AND hostname = 'host-Hovjv' and time > ago(1h) 
GROUP BY hostname, measure_name
```

**Example**  
计算由一个或多个微服务产生的错误增长率：  

```
WITH binned_view as (
    SELECT bin(time, 5m) as binned_timestamp, ROUND(AVG(measure_value::double), 2) as value            
    FROM “sampleDB”.DevOps  
    WHERE micro_service = 'jwt'  
    AND time > ago(1h) 
    AND measure_name = 'service_error'
    GROUP BY bin(time, 5m)
)
SELECT non_negative_derivative_linear(CREATE_TIME_SERIES(binned_timestamp, value), 1m) as rateOfErrorIncrease
FROM binned_view
```