

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Athena データソースに接続する
<a name="AWS-Athena"></a>

**注記**  
バージョン 9 以降をサポートするワークスペースでは、このデータソースに適切なプラグインのインストールが必要になる場合があります。詳細については、「[プラグインを使用したワークスペースの拡張](grafana-plugins.md)」を参照してください。

**注記**  
 このガイドでは、Amazon Athena データソースを使用する前に、ユーザーが Amazon Athena サービスに精通していることを前提としています。

Amazon Managed Grafana では、Grafana ワークスペースコンソールの AWS データソース設定オプションを使用して、Athena をデータソースとして追加できます。この機能は、既存の Athena アカウントを検出してデータソースとして Athena を追加するのを簡素化し、Athena へのアクセスに必要な認証情報の設定を管理します。この方法を使用して認証を設定し、データソースとして Athena を追加するか、セルフマネージド Grafana サーバーと同じ方法を使用して、データソースと必要な認証情報を手動で設定できます。



 Amazon Managed Grafana が Athena にアクセスできるようにするには、いくつかの前提条件があります。Athena データソースの使用に関連する前提条件については、「[前提条件](Athena-prereq.md)」を参照してください。

# 前提条件
<a name="Athena-prereq"></a>

Amazon Managed Grafana for Athena のマネージドポリシーを使用するには、Athena データソースを設定する前に以下の作業が完了している必要があります:
+ Athena ワークグループに `GrafanaDataSource: true` をタグ付けします。
+ `grafana-athena-query-results-` で始まる名前の S3 バケットを作成します。このポリシーにより、その名前付け規則を使用してクエリ結果を S3 バケットに書き込むための権限が提供されます。

Athena クエリの基盤となるデータソースにアクセスするための Amazon S3 の権限は、このマネージドポリシーには含まれません。そのため、必要に応じて対象の Amazon S3 バケットに手動でアクセス権を追加する必要があります。詳細については、このガイドの [「Amazon Managed Grafana の ID ベースのポリシーの例](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 のアイコン (2 つあります) を選択し、**データソース**メニューから **Athena** を選択します。

1. Athena データソースがクエリするデフォルトリージョンを選択し、対象となるアカウントを選択し、[**データソースの追加**] を選択します。

1.  [[**Athena Details**] (Athena の詳細) の設定](#Athena-settings) の手順に従って [**Athena Details**] (Athena の詳細) を設定します。

## [**Athena Details**] (Athena の詳細) の設定
<a name="Athena-settings"></a>

****Athena の詳細**設定を構成する**

1.  [**接続の詳細**] メニューで、認証プロバイダーを選択します (推奨: **Workspace 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.  [**接続の詳細**] メニューで、認証プロバイダーを設定します (推奨: **Workspace 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 Details**] (Athena の詳細) の設定例を以下に示します。

![\[[Athena Details] (Athena の詳細) の例\]](http://docs.aws.amazon.com/ja_jp/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 には、より複雑な時系列クエリの記述に役立つマクロがいくつか含まれています。

マクロ


|  Macro  |  説明  |  例  |  出力例  | 
| --- | --- | --- | --- | 
|  \$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 型をtimestamp 型に変換します。 |  \$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 を使用して) データのフィルタ条件を作成します。第 2 引数は、カラムを varchar 型から指定された形式の timestamp 型に変換するために使用します (オプション)。 | \$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 つのポイントになるようにします。第 3 引数は、カラムを varchar 型から指定された形式の timestamp 型に変換するために使用します (オプション)。 | \$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 で直接実行可能な補完された完全なクエリは、[**Query Inspector**] ボタンで確認できます。完全なクエリは、[**クエリ**] タブの下に表示されます。

## テンプレートおよび変数
<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)」を参照してください。

## ‏注釈
<a name="using-Athena-annotations"></a>

[‏注釈](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)」を参照してください。