기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Athena 데이터 소스 사용
IAM 정책
Grafana는 Athena 지표를 읽을 수 있도록 IAM을 통해 부여된 권한이 필요합니다. 역할 수임을 위해 이러한 권한을 IAM 역할에 연결하고 Grafana의 기본 제공 지원을 활용할 수 있습니다. Grafana에 데이터 소스를 추가하기 전에 역할에 필요한 정책을 구성해야 합니다. 데이터 소스를 추가하려면 관리자 또는 편집자 역할이 필요합니다. 기본 제공 Amazon Grafana Athena 액세스 정책은 AWS 관리형 정책: AmazonGrafanaAthenaAccess 섹션에 정의되어 있습니다.
Athena 데이터 쿼리
Athena 데이터 소스는 표준 SQL 쿼리 편집기를 제공합니다. Amazon Managed Grafana에는 더 복잡한 시간 쿼리를 작성하는 데 도움이 되는 몇 가지 매크로가 포함되어 있습니다.
매크로
매크로 | 설명 | 예제 | 출력 예제 |
---|---|---|---|
$__dateFilter(column)
|
$__dateFilter 는 패널의 날짜 범위를 기반으로 데이터(column 사용)를 선택하는 조건부 필터를 생성합니다. |
$__date(my_date)
|
my_date BETWEEN date '2017-07-18' AND date
'2017-07-18' |
$__parseTime(column,format)
|
$__parseTime 은 varchar을 지정된 형식의 타임스탬프로 캐스팅합니다. |
$__parseTime(eventtime,
'yyyy-MM-dd''T''HH:mm:ss''Z')
|
parse_datetime(time,'yyyy-MM-dd''T''HH:mm:ss''Z') |
$__timeFilter(column,format)
|
$__timeFilter 는 패널의 시간 범위에 따라 데이터(column 사용)를 필터링하는 조건을 생성합니다. 두 번째 인수는 선택적으로 varchar에서 특정 형식의 타임스탬프로 열을 구문 분석하는 데 사용됩니다. |
$__timeFilter(time, 'yyyy-MM-dd
HH:mm:ss') |
TIMESTAMP time BETWEEN TIMESTAMP
'2017-07-18T11:15:52Z' AND TIMESTAMP
'2017-07-18T11:15:52Z' |
$__timeFrom()
|
$__timeFrom 은 패널 범위의 현재 시작 시간을 따옴표로 묶어 출력합니다. |
$__timeFrom() |
TIMESTAMP '2017-07-18 11:15:52' |
$__timeTo()
|
$__timeTo 는 패널 범위의 현재 종료 시간을 따옴표로 묶어 출력합니다. |
$__timeTo() |
TIMESTAMP '2017-07-18 11:15:52' |
$__timeGroup(column, '1m', format)
|
$__timeGroup 은 그래프의 기간마다 1개의 포인트만 존재하도록 타임스탬프를 그룹화합니다. 세 번째 인수는 선택적으로 varchar에서 특정 형식의 타임스탬프로 열을 구문 분석하는 데 사용됩니다. |
$__timeGroup(time,'5m','yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z') |
FROM_UNIXTIME(FLOOR(TO_UNIXTIME(parse_datetime(time,'yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z'))/300)*300) |
$__table
|
$__table 은 테이블 선택기에서 선택한 테이블을 반환합니다. |
$__table |
my_table |
$__column
|
$__column 은 열 선택기에서 선택한 열을 반환합니다(이때 테이블 필요). |
$__column
|
col1
|
시각화
Athena에서 대부분의 쿼리는 테이블 시각화로 가장 잘 표현됩니다. 쿼리는 테이블에 반환 데이터를 표시합니다. 쿼리할 수 있는 경우 테이블로 표시할 수 있습니다.
이 예제에서는 테이블 시각화에 대한 결과를 반환합니다.
SELECT {column_1}, {column_2} FROM {
table
};
시계열/그래프 시각화
시간 기록 및 그래프 시각화의 경우 다음을 수행해야 합니다.
-
date
또는datetime
유형의 열을 선택합니다.date
열은 오름차순이어야 합니다(ORDER BY column ASC
사용). -
숫자 열도 선택합니다.
쿼리 검사
Amazon Managed Grafana는 Athena에서 지원하지 않는 매크로를 지원합니다. 즉, Athena에 직접 복사하여 붙여넣을 때 쿼리가 작동하지 않을 수 있습니다. Athena에서 직접 작동하는 전체 보간 쿼리를 보려면 쿼리 검사기 버튼을 클릭합니다. 전체 쿼리는 쿼리 탭 아래에 표시됩니다.
템플릿 및 변수
Athena 쿼리 변수 추가에 대한 자세한 내용은 쿼리 변수 추가 섹션을 참조하세요. Athena 데이터 소스를 사용 가능한 쿼리의 데이터 소스로 사용합니다.
Athena 테이블에서 쿼리된 모든 값을 변수로 사용할 수 있습니다. 너무 많은 값을 선택하지 마세요. 그러면 성능 문제가 발생할 수 있습니다.
변수를 생성한 후 변수 구문을 사용하여 Athena 쿼리에 사용할 수 있습니다. 변수에 대한 자세한 내용은 템플릿 및 변수 섹션을 참조하세요.
Annotations
Annotations을 사용하면 그래프 위에 풍부한 이벤트 정보를 오버레이할 수 있습니다. 패널을 선택하거나 대시보드 메뉴 주석 보기를 사용해 주석 쿼리를 추가하여 주석을 추가할 수 있습니다.
주석을 자동으로 추가하는 예제 쿼리:
SELECT time as time, environment as tags, humidity as text FROM tableName WHERE $__dateFilter(time) and humidity > 95
다음 표에서 주석을 렌더링하는 데 사용할 수 있는 열에 대한 설명을 보여줍니다.
명칭 | 설명 |
---|---|
|
날짜/시간 필드의 이름. 기본 SQL 날짜/시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다. |
|
종료 날짜/시간 필드의 선택적 이름. 기본 SQL 날짜/시간 데이터 유형 또는 에포크 값을 포함하는 열일 수 있습니다. (Grafana v6.6 이상) |
|
이벤트 설명 필드. |
|
이벤트 태그에 대해 쉼표로 구분된 문자열로 사용할 선택적 필드 이름. |
비동기 쿼리 데이터 지원
Amazon Managed Grafana에서 Athena 쿼리는 제한 시간 초과를 방지하기 위해 비동기 방식으로 처리됩니다. 비동기 쿼리는 별도의 요청을 사용하여 쿼리를 시작한 다음, 진행 상황을 확인하고 마지막으로 결과를 가져옵니다. 이렇게 하면 장기 실행되는 쿼리의 제한 시간 초과가 방지됩니다.
쿼리 결과 재사용
이전 쿼리의 결과를 재사용하여 쿼리 성능을 개선할 수 있습니다. 쿼리 재사용을 활성화하려면 활성화 옵션은 쿼리 편집기의 쿼리 결과 재사용 섹션에 있습니다. 쿼리를 재사용하려는 각 쿼리에 대해 이 작업을 수행해야 합니다.
참고
이 기능을 사용하려면 Athena 인스턴스에 엔진 버전 3이 있어야 합니다. 자세한 내용은 Amazon Athena 사용 설명서의 Athena 엔진 버전 변경을 참조하세요.