

Amazon Timestream for LiveAnalytics와 유사한 기능을 원하는 경우 Amazon Timestream for InfluxDB를 고려해 보세요. 간소화된 데이터 수집과 실시간 분석을 위한 10밀리초 미만의 쿼리 응답 시간을 제공합니다. [여기](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)에서 자세히 알아보세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 시계열 보기
<a name="timeseries-specific-constructs.views"></a>

Timestream for LiveAnalytics는 데이터를 `timeseries` 데이터 유형으로 변환하기 위해 다음 함수를 지원합니다.

**Topics**
+ [CREATE\$1TIME\$1SERIES](#timeseries-specific-constructs.views.CREATE_TIME_SERIES)
+ [UNNEST](#timeseries-specific-constructs.views.UNNEST)

## CREATE\$1TIME\$1SERIES
<a name="timeseries-specific-constructs.views.CREATE_TIME_SERIES"></a>

 **CREATE\$1TIME\$1SERIES**는 시계열의 모든 원시 측정값(시간 및 측정값 값)을 받아 시계열 데이터 유형을 반환하는 집계 함수입니다. 이 함수의 구문은 다음과 같습니다.

```
CREATE_TIME_SERIES(time, measure_value::<data_type>)
```

 여기서 `<data_type>`은 측정값의 데이터 유형이며 bigint, boolean, double 또는 varchar 중 하나일 수 있습니다. 두 번째 파라미터는 null일 수 없습니다.

아래와 같이 **지표**라는 테이블에 저장된 EC2 인스턴스의 CPU 사용률을 고려합니다.


| Time | 리전 | az | vpc | instance-id | measure\$1name | measure\$1value::double | 
| --- | --- | --- | --- | --- | --- | --- | 
|  2019-12-04 19:00:00.000000000  |  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  cpu\$1utilization  |  35.0  | 
|  2019-12-04 19:00:01.000000000  |  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  cpu\$1utilization  |  38.2  | 
|  2019-12-04 19:00:02.000000000  |  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  cpu\$1utilization  |  45.3  | 
|  2019-12-04 19:00:00.000000000  |  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  cpu\$1utilization  |  54.1  | 
|  2019-12-04 19:00:01.000000000  |  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  cpu\$1utilization  |  42.5  | 
|  2019-12-04 19:00:02.000000000  |  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  cpu\$1utilization  |  33.7  | 

쿼리 실행:

```
SELECT region, az, vpc, instance_id, CREATE_TIME_SERIES(time, measure_value::double) as cpu_utilization FROM metrics
    WHERE measure_name=’cpu_utilization’
    GROUP BY region, az, vpc, instance_id
```

측정값이 `cpu_utilization`인 모든 계열을 반환합니다. 이 경우 2개의 계열이 있습니다.


| 리전 | az | vpc | instance-id | cpu\$1utilization | 
| --- | --- | --- | --- | --- | 
|  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  [\$1time: 2019-12-04 19:00:00.000000000, measure\$1value::double: 35.0\$1, \$1time: 2019-12-04 19:00:01.000000000, measure\$1value::double: 38.2\$1, \$1time: 2019-12-04 19:00:02.000000000, measure\$1value::double: 45.3\$1]  | 
|  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  [\$1time: 2019-12-04 19:00:00.000000000, measure\$1value::double: 35.1\$1, \$1time: 2019-12-04 19:00:01.000000000, measure\$1value::double: 38.5\$1, \$1time: 2019-12-04 19:00:02.000000000, measure\$1value::double: 45.7\$1]  | 

## UNNEST
<a name="timeseries-specific-constructs.views.UNNEST"></a>

 `UNNEST`는 `timeseries` 데이터를 플랫 모델로 변환할 수 있는 테이블 함수입니다. 구문은 다음과 같습니다.

 `UNNEST`는 `timeseries`를 `time` 및 `value`의 두 열로 변환합니다. 아래와 같이 UNNEST와 함께 별칭을 사용할 수도 있습니다.

```
UNNEST(timeseries) AS <alias_name> (time_alias, value_alias)
```

여기서 `<alias_name>`은 플랫 테이블의 별칭이고, `time_alias`는 `time` 열의 별칭이고, `value_alias`는 `value` 열의 별칭입니다.

예를 들어 플릿의 일부 EC2 인스턴스가 5초 간격으로 지표를 내보내도록 구성되어 있고, 다른 인스턴스는 15초 간격으로 지표를 내보내며, 지난 6시간 동안 10초 단위로 모든 인스턴스의 평균 지표가 필요한 시나리오를 생각해 보세요. 이 데이터를 얻기 위해 **CREATE\$1TIME\$1SERIES**를 사용하여 지표를 시계열 모델로 변환합니다. 그런 다음 **INTERPOLATE\$1LINEAR**를 사용하여 10초 단위로 누락된 값을 가져올 수 있습니다. 그런 다음 **UNNEST**를 사용하여 데이터를 플랫 모델로 다시 변환한 다음 **AVG**를 사용하여 모든 인스턴스에서 평균 지표를 가져옵니다.

```
WITH interpolated_timeseries AS (
    SELECT region, az, vpc, instance_id,
        INTERPOLATE_LINEAR(
            CREATE_TIME_SERIES(time, measure_value::double),
                SEQUENCE(ago(6h), now(), 10s)) AS interpolated_cpu_utilization
    FROM timestreamdb.metrics 
    WHERE measure_name= ‘cpu_utilization’ AND time >= ago(6h)
    GROUP BY region, az, vpc, instance_id
)
SELECT region, az, vpc, instance_id, avg(t.cpu_util)
FROM interpolated_timeseries
CROSS JOIN UNNEST(interpolated_cpu_utilization) AS t (time, cpu_util)
GROUP BY region, az, vpc, instance_id
```

 위의 쿼리는 별칭과 함께 **UNNEST**를 사용하는 방법을 보여줍니다. 다음은 **UNNEST**에 별칭을 사용하지 않는 동일한 쿼리의 예입니다.

```
WITH interpolated_timeseries AS (
    SELECT region, az, vpc, instance_id,
        INTERPOLATE_LINEAR(
            CREATE_TIME_SERIES(time, measure_value::double),
                SEQUENCE(ago(6h), now(), 10s)) AS interpolated_cpu_utilization
    FROM timestreamdb.metrics 
    WHERE measure_name= ‘cpu_utilization’ AND time >= ago(6h)
    GROUP BY region, az, vpc, instance_id
)
SELECT region, az, vpc, instance_id, avg(value)
FROM interpolated_timeseries
CROSS JOIN UNNEST(interpolated_cpu_utilization)
GROUP BY region, az, vpc, instance_id
```