

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

# Amazon Redshift Data 데이터 소스 사용
<a name="Redshift-using-the-data-source"></a>

## IAM 정책
<a name="Redshift-policies"></a>

 Grafana는 Redshift 지표를 읽을 수 있도록 IAM을 사용하여 부여된 권한이 필요합니다. 역할 수임을 위해 이러한 권한을 IAM 역할에 연결하고 Grafana의 기본 제공 지원을 활용할 수 있습니다. 기본 제공 Amazon Grafana Redshift 액세스 정책은 [AWS 관리형 정책: AmazonGrafanaRedshiftAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaRedshiftAccess) 섹션에 정의되어 있습니다.

## Amazon Redshift 데이터 쿼리
<a name="Redshift-query"></a>

 Amazon Redshift 데이터 소스는 표준 SQL 쿼리 편집기를 제공합니다. Amazon Managed Grafana에는 더 복잡한 시간 쿼리를 작성하는 데 도움이 되는 몇 가지 매크로가 포함되어 있습니다.

매크로


|  매크로  |  설명  |  출력 예시  | 
| --- | --- | --- | 
|  $\_\_timeEpoch(column)  |  $\_\_timeEpoch는 UNIX 타임스탬프로 변환하고 열 이름을 시간으로 바꾸는 표현식으로 대체됩니다. |  UNIX\_TIMESTAMP(dateColumn) as "time"  | 
|  $\_\_timeFilter(column)  |  $\_\_timeFilter는 패널의 시간 범위에 따라 데이터(column 사용)를 필터링하는 조건을 생성함  |  time BETWEEN '2017-07-18T11:15:52Z' AND '2017-07-18T11:15:52Z'  | 
|  $\_\_timeFrom()  |  $\_\_timeFrom은 패널 범위의 현재 시작 시간을 따옴표로 묶어 출력함  | '2017-07-18T11:15:52Z' | 
|  $\_\_timeTo()  |  $\_\_timeTo는 패널 범위의 현재 종료 시간을 따옴표로 묶어 출력함  | '2017-07-18T11:15:52Z' | 
|  $\_\_timeGroup(column, '1m')  |  $\_\_timeGroup은 그래프의 기간마다 1개의 포인트만 존재하도록 타임스탬프를 그룹화함  | floor(extract(epoch from time)/60)\*60 AS "time" | 
|  $\_\_schema  |  $\_\_schema 에서는 선택한 스키마를 사용합니다. | public | 
|  $\_\_table  |   $\_\_table은 지정된 $\_\_schema에서 테이블을 출력함(기본적으로 퍼블릭 스키마 사용)  | sales | 
|  $\_\_column  |  $\_\_column은 현재 $\_\_table에서 열을 출력함  | date  | 
|  $\_\_unixEpochFilter(column)  |  $\_\_unixEpochFilter는 지정된 열 이름을 사용하여 시간 범위 필터로 대체됨(Unix 타임스탬프로 시간이 표시됨)  |   column >= 1624406400 AND column <= 1624410000  | 
|  $\_\_unixEpochGroup(column)  |  $\_\_unixEpochGroup은 $\_\_timeGroup과 동일하지만 시간이 Unix 타임스탬프로 저장됨  | floor(time/60)\*60 AS "time" | 

**시각화**

Redshift에서 대부분의 쿼리는 테이블 시각화로 가장 잘 표현됩니다. 모든 쿼리는 테이블에서 데이터를 표시합니다. 쿼리할 수 있는 경우 테이블에 넣을 수 있습니다.

이 예제에서는 테이블 시각화에 대한 결과를 반환합니다.

```
SELECT {column_1}, {column_2} FROM {table};
```

**시계열 및 그래프 시각화 **

시계열 및 그래프 시각화에는 몇 가지 요구 사항이 있습니다.
+ `date` 또는 `datetime` 유형의 열을 선택해야 합니다.
+ `date` 열은 오름차순이어야 합니다(`ORDER BY column ASC` 사용).
+ 숫자 열을 선택해야 합니다.

보다 합리적인 그래프를 만들려면 `$__timeFilter` 및 `$__timeGroup` 매크로를 사용해야 합니다.

**시계열 쿼리 예제:**

```
SELECT
  avg(execution_time) AS average_execution_time,
  $__timeGroup(start_time, 'hour'),
  query_type
FROM
  account_usage.query_history
WHERE
  $__timeFilter(start_time)
group by
  query_type,start_time
order by
  start_time,query_type ASC;
```

**채우기 모드**

또한 Grafana는 일부 기본값이 있는 값 없이 프레임을 자동 완성합니다. 이 값을 구성하려면 쿼리 편집기에서 **값 채우기**를 변경합니다.

**쿼리 검사**

Grafana는 Redshift에서 지원하지 않는 매크로를 지원하므로 Redshift에 직접 복사하여 붙여넣을 수 있는 완전히 렌더링된 쿼리가 쿼리 검사기에 표시됩니다. 보간된 전체 쿼리를 보려면 **쿼리 검사기** 메뉴를 선택합니다. 그러면 전체 쿼리가 **쿼리** 탭에 표시됩니다.

## 템플릿 및 변수
<a name="using-redshift-templates-variables"></a>

새 Redshift 쿼리 변수를 추가하는 방법에 대한 자세한 내용은 [쿼리 변수 추가](variables-types.md#add-a-query-variable) 섹션을 참조하세요. Redshift 데이터 소스를 사용 가능한 쿼리의 데이터 소스로 사용합니다.

Amazon Redshift 테이블에서 쿼리한 모든 값을 변수로 사용할 수 있습니다. 너무 많은 값을 선택하지 마세요. 그러면 성능 문제가 발생할 수 있습니다.

변수를 생성한 후 [변수 구문](templates-and-variables.md#variable-syntax)을 사용하여 Redshift 쿼리에 사용할 수 있습니다. 변수에 대한 자세한 내용은 [템플릿 및 변수](templates-and-variables.md) 섹션을 참조하세요.

## Annotations
<a name="using-redshift-annotations"></a>

[Annotations](dashboard-annotations.md)을 사용하면 그래프 위에 풍부한 이벤트 정보를 오버레이할 수 있습니다. 패널을 선택하거나 **대시보드** 메뉴에서 연 **주석** 보기를 사용해 주석 쿼리를 추가하여 주석을 추가할 수 있습니다.

주석을 자동으로 추가하는 예제 쿼리:

```
SELECT
  time as time,
  environment as tags,
  humidity as text
FROM
  $__table
WHERE
  $__timeFilter(time) and humidity > 95
```

다음 표는 주석을 렌더링하는 데 고려하는 열의 값을 나타냅니다.


|  이름  |  설명  | 
| --- | --- | 
|  Time  |  날짜 또는 시간 필드의 이름. 기본 SQL 날짜 또는 시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다. | 
|  Timeend  |  종료 날짜 또는 시간 필드의 선택적 이름. 기본 SQL 날짜 또는 시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다. | 
|  Text  |  이벤트 설명 필드. | 
|  Tags  |  이벤트 태그에 대해 쉼표로 구분된 문자열로 사용할 선택적 필드 이름. | 