Athena データソースの使用 - Amazon Managed Grafana

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

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 を使用して) データをフィルタリングする条件を作成します。2 番目の引数は、オプションで 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 つのポイントしかないようにします。3 番目の引数は、オプションで列を 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 で直接機能する補間されたクエリ全体を表示するには、Query Inspector ボタンをクリックします。完全なクエリは、クエリタブの下に表示されます。

テンプレートと変数

Athena クエリ変数の追加の詳細については、「」を参照してくださいクエリ変数の追加。Athena データソースを使用可能なクエリのデータソースとして使用します。

Athena テーブルからクエリされた値は、変数として使用できます。値が多すぎるとパフォーマンスの問題が発生する可能性があるため、選択しすぎないようにしてください。

変数を作成したら、 を使用して Athena クエリでその変数を使用できます変数構文。変数の詳細については、「」を参照してくださいテンプレートと変数

‏注釈

‏注釈 では、グラフの上に豊富なイベント情報をオーバーレイできます。注釈を追加するには、パネルを選択するか、ダッシュボードメニューの注釈ビューを使用して注釈クエリを追加します。

注釈を自動的に追加するクエリの例:

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 カンマ区切りの文字列としてイベントタグに使用するオプションのフィールド名。

非同期クエリデータのサポート

Amazon Managed Grafana の Athena クエリは、タイムアウトを回避するために非同期的に処理されます。非同期クエリでは、個別のリクエストを使用してクエリを開始し、その進行状況を確認し、最後に結果を取得します。これにより、長時間実行されるクエリのタイムアウトを回避できます。

クエリ結果の再利用

以前のクエリの結果を再利用して、クエリのパフォーマンスを向上させることができます。クエリの再利用を有効にするには、クエリエディタのクエリ結果の再利用セクションで を有効にします。これは、クエリを再利用するクエリごとに実行する必要があります。

注記

この機能を使用するには、Athena インスタンスがエンジンバージョン 3 にある必要があります。詳細については、「Amazon Athena ユーザーガイド」の「Athena エンジンのバージョンの変更」を参照してください。 Amazon Athena