

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

# Amazon Athena 데이터 소스에 연결
<a name="AWS-Athena"></a>

**참고**  
또한 버전 9 이상을 지원하는 워크스페이스에서 이 데이터 소스를 사용하려면 적절한 플러그인을 설치해야 할 수 있습니다. 자세한 내용은 [플러그인을 사용하여 워크스페이스 확장](grafana-plugins.md) 단원을 참조하십시오.

**참고**  
 이 설명서에서는 Athena 데이터 소스를 사용하기 전에 Amazon Athena 서비스에 익숙하다고 가정합니다.

Amazon Managed Grafana를 사용하면 Grafana 워크스페이스 콘솔의 데이터 소스 구성 옵션을 사용하여 Athena를 AWS 데이터 소스로 추가할 수 있습니다. 이 기능은 기존 Athena 계정을 검색하여 Athena를 데이터 소스로 추가하는 작업을 간소화하고 Athena에 액세스하는 데 필요한 인증 자격 증명의 구성을 관리합니다. 이 방법을 사용하여 인증을 설정하고 Athena를 데이터 소스로 추가하거나 자체 관리형 Grafana 서버에서와 동일한 방법을 사용하여 데이터 소스와 필요한 인증 자격 증명을 수동으로 설정할 수 있습니다.



 Amazon Managed Grafana에서 Athena에 액세스하기 위한 사전 조건이 있습니다. Athena 데이터 소스 사용과 관련된 사전 조건은 [사전 조건](Athena-prereq.md) 섹션을 참조하세요.

# 사전 조건
<a name="Athena-prereq"></a>

Amazon Managed Grafana for Athena에 대한 관리형 정책을 사용하려면 Athena 데이터 소스를 구성하기 전에 다음 태스크를 완료합니다.
+ `GrafanaDataSource: true`를 사용하여 Athena 작업 그룹에 태그를 지정합니다.
+ `grafana-athena-query-results-`로 시작하는 이름의 S3 버킷을 생성합니다. 이 정책은 해당 명명 규칙을 사용하여 쿼리 결과를 S3 버킷에 쓸 수 있는 권한을 제공합니다.

Athena 쿼리의 기본 데이터 소스에 액세스하기 위한 Amazon S3 권한은 이 관리형 정책에 포함되지 않습니다. Amazon S3 버킷에 필요한 권한을 사례별로 수동으로 추가해야 합니다. 자세한 내용은 이 설명서의 [Amazon Managed Grafana에 대한 자격 증명 기반 정책 예제](https://docs.aws.amazon.com/grafana/latest/userguide/security_iam_id-based-policy-examples.html)를 참조하세요.

# AWS 데이터 소스 구성을 사용하여 Amazon Athena를 데이터 소스로 추가
<a name="Athena-adding-AWS-config"></a>

## 사전 조건
<a name="Athena-prerequisites"></a>
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)가 사용자 환경에 설치 및 구성됩니다.
+ 계정에서 Athena에 액세스할 수 있습니다.

 AWS 데이터 소스 구성을 사용하려면 먼저 Amazon Managed Grafana 콘솔로 이동하여 계정 또는 전체 조직 단위에서 Athena 리소스를 읽는 데 필요한 IAM 정책을 워크스페이스에 부여하는 서비스 관리형 IAM 역할을 활성화합니다. 그런 다음, Amazon Managed Grafana 워크스페이스 콘솔을 사용하여 Athena 를 데이터 소스로 추가합니다.

# AWS 데이터 소스 구성을 사용하여 Athena를 데이터 소스로 추가하려면


1.  사용자 역할이 관리자 또는 편집자인지 확인합니다.

1.  [https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)의 Amazon Managed Grafana 콘솔에서 작업할 워크스페이스를 선택하세요.

1. 이 워크스페이스를 생성할 때이 워크스페이스에 서비스 관리형 권한을 사용하도록 선택하지 않은 경우 Grafana 워크스페이스 콘솔에서 AWS 데이터 소스 구성 옵션을 사용할 수 있도록 적절한 IAM 역할 및 정책이 활성화되도록 고객 관리형 권한을 사용하여 서비스 관리형 권한을 사용하는 것으로 변경합니다. 이를 수행하려면 **IAM 역할** 옆의 편집 아이콘을 선택하고 **서비스 관리형**, **변경 사항 저장**을 선택하세요. 자세한 내용은 [AWS 데이터 소스에 대한 Amazon Managed Grafana 권한 및 정책](AMG-manage-permissions.md) 단원을 참조하십시오.

1. **데이터 소스** 탭을 선택하세요. 그런 다음, **Amazon Athena**의 확인란을 선택하고 **작업**, **서비스 관리형 정책 활성화**를 선택하세요.

1. **데이터 소스** 탭을 다시 선택한 다음, **Amazon Athena** 행에서 **Grafana에서 구성**을 선택하세요.

1. 필요한 경우 IAM Identity Center를 사용하여 Grafana 워크스페이스 콘솔에 로그인합니다. 사용자가 Athena 데이터 소스에 액세스하려면 사용자/역할에 Athena 액세스 정책이 연결되어 있어야 합니다. 자세한 내용은 [AWS 관리형 정책: AmazonGrafanaAthenaAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaAthenaAccess) 섹션을 참조하세요.

1. Grafana 워크스페이스 콘솔의 왼쪽 탐색 모음에서 아래쪽 AWS 아이콘(두 개 있음)을 선택한 다음 **데이터 소스** 메뉴에서 **Athena**를 선택합니다.

1. Athena 데이터 소스에서 쿼리할 기본 리전을 선택한 다음, 원하는 계정을 선택하고 **데이터 소스 추가**를 선택하세요.

1.  단계에 따라 [**Athena 세부 정보** 설정](#Athena-settings)에서 **Athena 세부 정보**를 구성하세요.

## **Athena 세부 정보** 설정
<a name="Athena-settings"></a>

****Athena 세부 정보** 설정 구성**

1.  **연결 세부 정보** 메뉴에서 인증 제공업체(권장: **워크스페이스 IAM 역할**)를 선택하세요.

1.  Athena 계정이 있는 대상 Athena 데이터 소스를 선택하세요. 데이터 소스를 선택하지 않는 경우 드롭다운에 기본 데이터 소스가 있습니다.

   새 Athena 계정을 생성하려면 [Athena 시작](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html)의 지침을 따르세요.

1.  위에서 선택한 데이터 소스에서 대상 Athena 데이터베이스를 선택하세요.

1.  작업 그룹을 선택하세요. 기본값은 **기본**입니다.

1.  작업 그룹에 출력 위치가 미리 구성되어 있지 않은 경우 쿼리 결과에 사용할 S3 버킷 및 폴더를 지정합니다. 예: `s3://grafana-athena-plugin-test-data/query-result-output/ ` 

1.  **저장 및 테스트**를 선택하세요.

# 수동으로 Athena 데이터 소스 추가
<a name="Athena-add-the-data-source"></a>

## 사전 조건
<a name="Athena-prerequisites2"></a>
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)가 사용자 환경에 설치 및 구성되어 있습니다.
+  계정에서 **Amazon Athena**에 액세스할 수 있습니다.

**수동으로 Athena 데이터 소스를 추가하려면 다음을 수행합니다.**

1.  Grafana 콘솔 사이드 메뉴에서 **구성**(톱니) 아이콘에서 일시 중지하고 **데이터 소스**를 선택하세요.

1. **데이터 소스 추가**를 선택합니다.

1. **AWS Athena** 데이터 소스를 선택하세요. 필요한 경우 검색 상자에서 **Athena**를 입력하기 시작하면 해당 항목을 찾는 데 도움이 됩니다.

1.  **연결 세부 정보** 메뉴에서 인증 제공업체를 구성합니다(권장: **워크스페이스 IAM 역할 **).

1.  대상 Athena 데이터 소스, 데이터베이스 및 작업 그룹을 선택하세요.

   새 Athena 계정을 생성하려면 [Athena 시작하기](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html)의 지침을 따릅니다.

1.  작업 그룹에 출력 위치가 미리 구성되어 있지 않은 경우 쿼리 결과에 사용할 S3 버킷 및 폴더를 지정합니다. 예를 들어 `s3://grafana-athena-plugin-test-data/query-result-output/ `입니다.

1.  **저장 및 테스트**를 선택하세요.

다음은 **Athena 세부 정보** 설정 예제입니다.

![\[Athena 세부 정보 예제\]](http://docs.aws.amazon.com/ko_kr/grafana/latest/userguide/images/athena.png)


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

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

 Grafana는 Athena 지표를 읽을 수 있도록 IAM을 통해 부여된 권한이 필요합니다. 역할 수임을 위해 이러한 권한을 IAM 역할에 연결하고 Grafana의 기본 제공 지원을 활용할 수 있습니다. Grafana에 데이터 소스를 추가하기 전에 역할에 [필요한 정책을 구성](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)해야 합니다. 데이터 소스를 추가하려면 관리자 또는 편집자 역할이 필요합니다. 기본 제공 Amazon Grafana Athena 액세스 정책은 [AWS 관리형 정책: AmazonGrafanaAthenaAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaAthenaAccess) 섹션에 정의되어 있습니다.

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

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

매크로


|  매크로  |  설명  |  예제  |  출력 예제  | 
| --- | --- | --- | --- | 
|  \$1\$1\$1dateFilter(column)  |  \$1\$1\$1dateFilter는 패널의 날짜 범위를 기반으로 데이터(column 사용)를 선택하는 조건부 필터를 생성합니다. |  \$1\$1\$1date(my\$1date)  | my\$1date BETWEEN date '2017-07-18' AND date '2017-07-18' | 
|  \$1\$1\$1parseTime(column,format)  |  \$1\$1\$1parseTime은 varchar을 지정된 형식의 타임스탬프로 캐스팅합니다. |  \$1\$1\$1parseTime(eventtime, 'yyyy-MM-dd''T''HH:mm:ss''Z')  | parse\$1datetime(time,'yyyy-MM-dd''T''HH:mm:ss''Z') | 
|  \$1\$1\$1timeFilter(column,format)  |  \$1\$1\$1timeFilter는 패널의 시간 범위에 따라 데이터(column 사용)를 필터링하는 조건을 생성합니다. 두 번째 인수는 선택적으로 varchar에서 특정 형식의 타임스탬프로 열을 구문 분석하는 데 사용됩니다. | \$1\$1\$1timeFilter(time, 'yyyy-MM-dd HH:mm:ss') | TIMESTAMP time BETWEEN TIMESTAMP '2017-07-18T11:15:52Z' AND TIMESTAMP '2017-07-18T11:15:52Z' | 
|  \$1\$1\$1timeFrom()  |  \$1\$1\$1timeFrom은 패널 범위의 현재 시작 시간을 따옴표로 묶어 출력합니다. | \$1\$1\$1timeFrom() | TIMESTAMP '2017-07-18 11:15:52' | 
|  \$1\$1\$1timeTo()  |  \$1\$1\$1timeTo 는 패널 범위의 현재 종료 시간을 따옴표로 묶어 출력합니다. | \$1\$1\$1timeTo() | TIMESTAMP '2017-07-18 11:15:52' | 
|  \$1\$1\$1timeGroup(column, '1m', format)  |  \$1\$1\$1timeGroup 은 그래프의 기간마다 1개의 포인트만 존재하도록 타임스탬프를 그룹화합니다. 세 번째 인수는 선택적으로 varchar에서 특정 형식의 타임스탬프로 열을 구문 분석하는 데 사용됩니다. | \$1\$1\$1timeGroup(time,'5m','yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z') | FROM\$1UNIXTIME(FLOOR(TO\$1UNIXTIME(parse\$1datetime(time,'yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z'))/300)\$1300) | 
|  \$1\$1\$1table  |   \$1\$1\$1table은 테이블 선택기에서 선택한 테이블을 반환합니다. | \$1\$1\$1table | my\$1table | 
|  \$1\$1\$1column  |  \$1\$1\$1column은 열 선택기에서 선택한 열을 반환합니다(이때 테이블 필요). | \$1\$1\$1column  | col1  | 

**시각화**

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

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

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

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

시간 기록 및 그래프 시각화의 경우 다음을 수행해야 합니다.
+ `date` 또는 `datetime` 유형의 열을 선택합니다. `date` 열은 오름차순이어야 합니다(`ORDER BY column ASC` 사용).
+ 숫자 열도 선택합니다.

**쿼리 검사**

Amazon Managed Grafana는 Athena에서 지원하지 않는 매크로를 지원합니다. 즉, Athena에 직접 복사하여 붙여넣을 때 쿼리가 작동하지 않을 수 있습니다. Athena에서 직접 작동하는 전체 보간 쿼리를 보려면 **쿼리 검사기** 버튼을 클릭합니다. 전체 쿼리는 **쿼리** 탭 아래에 표시됩니다.

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

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

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

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

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

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

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

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

다음 표에서 주석을 렌더링하는 데 사용할 수 있는 열에 대한 설명을 보여줍니다.


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

## 비동기 쿼리 데이터 지원
<a name="athena-async-query"></a>

Amazon Managed Grafana에서 Athena 쿼리는 제한 시간 초과를 방지하기 위해 비동기 방식으로 처리됩니다. 비동기 쿼리는 별도의 요청을 사용하여 쿼리를 시작한 다음, 진행 상황을 확인하고 마지막으로 결과를 가져옵니다. 이렇게 하면 장기 실행되는 쿼리의 제한 시간 초과가 방지됩니다.

## 쿼리 결과 재사용
<a name="athena-query-reuse"></a>

이전 쿼리의 결과를 재사용하여 쿼리 성능을 개선할 수 있습니다. 쿼리 재사용을 활성화하려면 활성화 옵션은 쿼리 편집기의 **쿼리 결과 재사용** 섹션에 있습니다. 쿼리를 재사용하려는 각 쿼리에 대해 이 작업을 수행해야 합니다.

**참고**  
이 기능을 사용하려면 Athena 인스턴스에 엔진 버전 3이 있어야 합니다. 자세한 내용은 *Amazon Athena 사용 설명서*의 [Athena 엔진 버전 변경](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-changing.html)을 참조하세요.