

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

# 変換関数
<a name="v10-panels-xform-functions"></a>

****  
このドキュメントのトピックは、**Grafana バージョン 10.x** をサポートする Grafana ワークスペース向けです。  
Grafana バージョン 9.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 9 での作業](using-grafana-v9.md)」を参照してください。  
Grafana バージョン 8.x をサポートする Grafana ワークスペースについては、「[Grafana バージョン 8 での作業](using-grafana-v8.md)」を参照してください。

データに関する次の変換を実行できます。

## 計算からのフィールドの追加
<a name="v10-panels-xform-funcs-add"></a>

この変換を使用して、他の 2 つのフィールドから計算した新しいフィールドを追加します。各変換では 1 つの新しいフィールドを追加できます。
+ **[モード]** – 以下のモードを選択します。
  + **[行を減らす]** – 選択したフィールドの各行に、選択済みの計算を個別に適用します。
  + **[二項演算]** – 選択した 2 つのフィールドから 1 行の値に基本的な二項演算 (合計や乗算など) を適用します。
  + **[単項演算]** – 選択したフィールドの 1 行の値に基本的な単項演算を適用します。使用できるオプションは、以下のとおりです。
    + **[絶対値 (abs)]** － 指定された式の絶対値を返します。これは、ゼロからの距離を正の数として表します。
    + **[Natural exponential (exp)]** (自然指数) - 特定の式の冪 *e* を返します。
    + **[Natural logarithm (ln)]** (自然対数) － 指定された式の自然対数を返します。
    + **[Floor (floor)]** (床関数) – 特定の式以下の最大整数を返します。
    + **[Ceiling (ceil)]** (天井関数) - 指定された式以上の最小整数を返します。
  + **[累積関数]** – 現在の行とそれ以前のすべての行に関数を適用します。
    + **[Total]** – 現在の行までの累積合計を計算します。
    + **[Mean]** – 現在の行までの平均を計算します。
  + **[ウィンドウ関数]** – ウィンドウ関数を適用します。ウィンドウは、*[trailing]* (末尾) または *[centered]* (中央) のいずれかになります。末尾のウィンドウでは、現在の行がウィンドウの最後の行になります。中央のウィンドウでは、ウィンドウは現在の行を中心とします。均等なウィンドウサイズの場合、ウィンドウは現在の行と前の行の中心になります。
    + **[Mean]** - 移動平均または実行平均を計算します。
    + **** – 移動標準偏差を計算します。
    + **[Variance]** – 移動分散を計算します。
  + **[行インデックス]** – 行インデックスを含むフィールドを挿入します。
+ **[Field name]** – 新しいフィールドの計算に使用する、フィールドの名前を選択します。
+ **[計算]** – **[掃き出し法]** を選択すると、**[計算]** フィールドが表示されます。フィールドを選択すると、新しいフィールドの作成に使用できる計算の選択肢が一覧で表示されます。使用可能な計算の詳細については、「[計算タイプ](v10-panels-calculation-types.md)」を参照してください。
+ **[演算]** – **[二項演算]** または **[単項演算]** モードを選択すると、**[演算]** フィールドが表示されます。これらのフィールドを使用すると、2 つの選択したフィールドから 1 行の値に対して基本的な数学演算を実行できます。二項演算に数値を使用することもできます。
+ **[As percentile]** – **[行インデックス]** モードを選択すると、**パーセンタイルとして**スイッチが表示されます。このスイッチを使用すると、行インデックスを行の合計数に対する割合で変換できます。
+ **[エイリアス]** – (オプション) 新しいフィールドの名前を入力します。このフィールドを空白のままにすると、計算に一致するようにフィールドの名前が付けられます。
+ **[すべてのフィールドを置き換え]** – (オプション) 他のすべてのフィールドを非表示にし、計算したフィールドのみを視覚化に表示する場合は、このオプションを選択します。

**注記**  
**[累積関数]**と**[ウィンドウ関数]**は、パブリックプレビューでは最新です。Grafana Labs ではサポートが限られており、この機能が一般公開される前に重要な変更が発生する可能性があります。

## 連結フィールド
<a name="v10-panels-xform-funcs-concat"></a>

**[連結フィールド]**

この変換を使用して、全フレームの全フィールドを 1 つの結果に結合します。

例えば、温度とアップタイムデータ (クエリ A) と空気品質インデックスとエラー情報 (クエリ b) を取得する個別のクエリがある場合、連結変換を適用すると、すべての関連情報が 1 つのビューに統合されたデータフレームが生成されます。

次の 2 つについて考えてみましょう。

*クエリ A*


| 温度 | アップタイム | 
| --- | --- | 
| 15.4 | 1230233 | 

*クエリ B*


| AQI | エラー | 
| --- | --- | 
| 3.2 | 5 | 

フィールドを連結すると、データフレームは次のようになります。


| 温度 | アップタイム | AQI | エラー | 
| --- | --- | --- | --- | 
| 15.4 | 1230233 | 3.2 | 5 | 

この変換により、さまざまなソースからのデータをマージするプロセスが簡素化され、分析と視覚化の包括的なビューが提供されます。

## クエリ結果から設定
<a name="v10-panels-xform-funcs-config"></a>

**[クエリ結果から設定]**

この変換を使用して、1 つのクエリを選択し、**[最小]** 、**[最大]** 、**[単位]**、**[しきい値]**などの標準オプションを抽出し、他のクエリ結果に適用します。これにより、特定のクエリによって返されるデータに基づいて、動的な視覚化設定が可能になります。

**オプション**
+ **[Config query]** (設定クエリ) – 設定として使用するデータを返すクエリを選択します。
+ **[適用先]** – 設定を適用するフィールドまたは系列を選択します。
+ **[オプションに適用]** – フィールドタイプを指定するか、**[適用先]** の選択に応じてフィールド名の正規表現を使用します。

**フィールドマッピングテーブル**

設定オプションの下に、フィールドマッピングテーブルがあります。このテーブルには、設定クエリによって返されるデータに含まれるすべてのフィールドと、**[用途]** および **[選択]** オプションが一覧表示されます。設定プロパティへのマッピングフィールドを制御でき、複数の行に対して選択する値を選べます。

次の例は、入力クエリとフィールド設定として使用されるクエリを示しています。

*入力クエリ*


| Time | 値 | 
| --- | --- | 
| 1626178119127 | 10 | 
| 1626178119129 | 30 | 

*設定クエリ*


| Time | 値 | 
| --- | --- | 
| 1626178119127 | 100 | 
| 1626178119129 | 100 | 

*出力クエリ (入力と同じですが、値フィールドに 設定が追加されました)*


| Time | 値 (設定: Max=100) | 
| --- | --- | 
| 1626178119127 | 10 | 
| 1626178119129 | 30 | 

各フィールドで最大設定オプションが設定されるようになりました。**[最小値]**、**[最大値]**、**[単位]**、**[しきい値]** などのオプションは、フィールド設定の一部です。設定すると、パネルエディタのオプションペインで手動で設定されたオプションではなく、視覚化によって使用されます。

**[値のマッピング]**

クエリ結果を値のマッピングに変換することもできます。このオプションでは、設定クエリ結果のすべての行で 1 つの値のマッピング行を定義します。次の例を参照してください。

*設定クエリ結果*


| 値 | テキスト | 色 | 
| --- | --- | --- | 
| L | 低 | 青 | 
| M | 中 | 緑色 | 
| H | 高 | 赤 | 

*フィールドマッピングで、以下を指定します。*


| フィールド | Use as | Select | 
| --- | --- | --- | 
| 値 | 値マッピング / Value | [すべての値] | 
| テキスト | 値マッピング / Text | [すべての値] | 
| 色 | 値マッピング / Color | [すべての値] | 

Grafana はクエリ結果から値マッピングを構築し、実際のデータクエリ結果に適用します。設定クエリの結果に従って、値がマッピングされ、色付けされているはずです。

## フィールドタイプの変換
<a name="v10-panels-xform-funcs-convert"></a>

この変換を使用して、指定されたフィールドのフィールドタイプを変更します。

この変換には、次のオプションがあります。
+ **[Field]** – 使用可能なフィールドから選択します。
+ **[as]** – 変換するフィールドタイプを選択します。
  + **[Numeric]** – 値の数値の作成を試みます。
  + **[String]** – 値の文字列を作成します。
  + **[時間]** – 値を時間として解析しようとします。
    + DateFormat を `yyyy-mm-dd` や `DD MM YYYY hh:mm:ss` などの文字列の入力として指定するオプションを表示します。
  + **[Boolean]** – 値はブール値になります。
  + **[Enum]** – 値は列挙型になります。
    + 列挙を管理するテーブルを表示します。
  + **[Other]** – 値を json として解析しようとします。

例えば、時間フィールドを **[時間]** として、日付形式を `YYYY` として選択することで変更できる次のクエリを考えてみましょう。


| Time | Mark | 値 | 
| --- | --- | --- | 
| 2017-07-01 | above | 25 | 
| 2018-08-02 | below | 22 | 
| 2019-09-02 | below | 29 | 
| 2020-10-04 | above | 22 | 

結果


| Time | Mark | 値 | 
| --- | --- | --- | 
| 2017-01-01 00:00:00 | above | 25 | 
| 2018-01-01 00:00:00 | below | 22 | 
| 2019-01-01 00:00:00 | below | 29 | 
| 2020-01-01 00:00:00 | above | 22 | 

この変換により、データタイプを柔軟に適応させ、視覚化の互換性と一貫性を確保できます。

## Extract Fields (フィールドの抽出)
<a name="v10-panels-xform-funcs-extract"></a>

この変換を使用して、データソースを選択し、さまざまな形式でそこからコンテンツを抽出します。この変換には次のフィールドがあります。
+ **[ソース]** – データソースのフィールドを選択します。
+ **[形式]** – 次のいずれかを選択します。
  + **[JSON]** – ソースから JSON コンテンツを解析します。
  + **[キーと値のペア]** – ソースからの形式 `a=b` または `c:d` にあるコンテンツを解析します。
  + **[自動]** – フィールドを自動的に検出します。
+ **[すべてのフィールドを置き換え]** – (オプション) 他のすべてのフィールドを非表示にし、計算したフィールドのみを視覚化に表示する場合は、このオプションを選択します。
+ **[時間保持]** - (オプション) **[すべてのフィールドを置き換え]** が真の場合にのみ使用できます。出力の時間フィールドを保持します。

以下のデータセットを考えてみましょう。

**データセットの例**


| Timestamp | json\$1data | 
| --- | --- | 
| 1636678740000000000 | \$1"value": 1\$1 | 
| 1636678680000000000 | \$1"value": 5\$1 | 
| 1636678620000000000 | \$1"value": 12\$1 | 

この設定を使用して、[時系列パネル](v10-panels-time-series.md)で使用されるデータを準備できます。
+ Source: json\$1data
+ 形式: JSON
  + Field: value
  + Alias: my\$1value
+ すべてのフィールドを置き換え: 真
+ 時間保持: 真

これにより、次の出力が生成されます。

**[変換されたデータ]**


| Timestamp | my\$1value | 
| --- | --- | 
| 1636678740000000000 | 1 | 
| 1636678680000000000 | 5 | 
| 1636678620000000000 | 12 | 

この変換では、さまざまな方法でデータを抽出、フォーマットできます。特定のデータニーズに基づいて抽出形式をカスタマイズできます。

## リソースからフィールドを検索
<a name="v10-panels-xform-funcs-lookup"></a>

この変換を使用して、外部ソースから追加のフィールドを検索してフィールド値を充実させます。

この変換には次のフィールドがあります。
+ **[Field]** (フィールド) – データセットからテキストフィールドを選択します。
+ **[ルックアップ]** - **[Countries]** (国)、**[USA States]** (米国の州)、および **[Airports]** (空港) から選択します。

**注記**  
この変換は空間データのみをサポートします。

例えば、以下のデータがある場合を考えてみましょう。

**データセットの例**


| ロケーション | 値 | 
| --- | --- | 
| AL | 0 | 
| AK | 10 | 
| Arizona | 5 | 
| Arkansas | 1 | 
| Somewhere | 5 | 

この設定では、次のようになります。
+ Field: location
+ Lookup: USA States

この場合、次の出力が返されます。

**[変換されたデータ]**


| ロケーション | ID | 名前 | Lng | Lat | 値 | 
| --- | --- | --- | --- | --- | --- | 
| AL | AL | Alabama | -80.891064 | 12.448457 | 0 | 
| AK | AK | Arkansas | -100.891064 | 24.448457 | 10 | 
| Arizona |  |  |  |  | 5 | 
| Arkansas |  |  |  |  | 1 | 
| Somewhere |  |  |  |  | 5 | 

この変換により、外部ソースから追加情報を取得してデータを拡張し、分析と視覚化のためのより包括的なデータセットを提供できます。

## クエリ refId によるデータのフィルタリング
<a name="v10-panels-xform-funcs-queryrefid"></a>

この変換を使用して、複数のクエリがあるパネル内の 1 つ以上のクエリを非表示にします。

Grafana では、クエリ識別文字がダークグレーテキストで表示されます。フィルタリングを切り替えるには、クエリ識別子を選択します。クエリ文字が白い場合、結果が表示されます。クエリ文字が暗い場合、結果は非表示です。

**注記**  
この変換は Graphite では使用できません。このデータソースは、返されたデータとクエリの相関関係をサポートしていないためです。

## 値によるデータのフィルタリング
<a name="v10-panels-xform-funcs-values"></a>

この変換を使用して、視覚化内で直接データポイントを選択的にフィルタリングします。この変換では、選択したフィールドに適用された 1 つ以上の条件に基づいて、データを含める、または除外するためのオプションを提供します。

この変換は、データソースが値によってネイティブにフィルタリングしない場合に非常に便利です。共有クエリを使用している場合、これを使用して値を絞り込んで表示することもできます。

すべてのフィールドで使用できる条件は次のとおりです。
+ **[Regex]** – 正規表現を照合します。
+ **[Is Null]** – 値が null の場合に照合。
+ ** [Is Not Null]** – 値が null でない場合に照合します。
+ **Equal** – 値が指定値と等しい場合に照合します。
+ **Different** – 値が指定された値と異なる場合に照合します。

数値フィールドで使用可能なその他の条件は次のとおりです。
+ **Greater** – 値が指定値より大きい場合に照合します。
+ **Lower** – 値が指定値よりも小さい場合に照合します。
+ **Greater or equal** – 値が指定値以上の場合に照合します。
+ **Lower or equal** – 値が指定値以下の場合に照合します。
+ **Range** – 指定された最小値と最大値 (最小値と最大値を含む) 間の範囲を照合します。

以下のデータセットを考えてみましょう。


| Time | 温度 | 高度 | 
| --- | --- | --- | 
| 2020-07-07 11:34:23 | 32 | 101 | 
| 2020-07-07 11:34:22 | 28 | 125 | 
| 2020-07-07 11:34:21 | 26 | 110 | 
| 2020-07-07 11:34:20 | 23 | 98 | 
| 2020-07-07 10:32:24 | 31 | 95 | 
| 2020-07-07 10:31:22 | 20 | 85 | 
| 2020-07-07 09:30:57 | 19 | 101 | 

温度が 30°C 未満のデータポイントを **[含める]** にすると、設定は次のようになります。
+ フィルタータイプ: [含める]
+ Condition:「温度」が [Lower Than] (未満)、「30」と一致する行

30°C 未満の温度のみが含まれる場合、次の結果が得られます。

**[変換されたデータ]**


| Time | 温度 | 高度 | 
| --- | --- | --- | 
| 2020-07-07 11:34:22 | 28 | 125 | 
| 2020-07-07 11:34:21 | 26 | 110 | 
| 2020-07-07 11:34:20 | 23 | 98 | 
| 2020-07-07 10:31:22 | 20 | 85 | 
| 2020-07-07 09:30:57 | 19 | 101 | 

複数の条件をフィルターに追加できます。例えば、高度が 100 を超える場合にのみデータを含めることができます。これを行うには、次の設定にその条件を追加します。
+ フィルタータイプ: 条件に [すべて一致] する [含める] 行
+ Condition 1:「温度」が [Lower Than] (未満)、「30」と一致する行
+ Condition 2:「高度」が [Greater] (超え)、「100」と一致する行

複数の条件がある場合、条件に**すべて一致**、または追加した条件の**いずれかに一致**する行にアクション (包含/除外) を適用するかを選択できます。

上記の例では、温度が 30°C 未満*かつ*高度が 100 を超える行を含めるため、**[すべて一致]** を選択しました。温度が 30°C 未満*または*高度が 100 を超える行を含める場合は、**[任意の一致]** を選択します。これには、元のデータの最初の行が含まれます。元のデータの温度は 32°C (最初の条件と一致しない) ですが、高度は 101 (2 番目の条件と一致する) であるため、含まれます。

無効または不完全な設定条件は無視されます。

この汎用的なデータフィルタリング変換により、特定の条件に基づいてデータポイントを選択的に含めたり除外したりできます。条件をカスタマイズしてデータプレゼンテーションを調整し、独自の分析ニーズを満たすことが可能です。

## Filter fields by name (名前によるフィールドのフィルタリング)
<a name="v10-panels-xform-funcs-name"></a>

この変換を使用して、クエリ結果の一部を削除します。フィールド名をフィルタリングする方法は 3 つあります。
+ 正規表現を入力します。
+ 含まれるフィールドを手動で選択します。
+ ダッシュボード変数を使用します。

*正規表現を使用*

正規表現を使用してフィルタリングすると、正規表現に一致するフィールド名が含まれます。例えば、正規表現 `'prod.*'` を使用すると、`prod` で始まるフィールドのみが返されます。

正規表現には、`${variableName}` 構文を使用して補間されたダッシュボード変数を含めることができます。

*含まれるフィールドを手動で選択*

フィールド名を選択または選択解除して、結果から削除します。正規表現も含まれている場合、チェックが入っていない場合でも、式に一致するフィールドが含まれます。

*ダッシュボード変数を使用*

**[変数から]** を選択すると、フィールドを含めるために使用されるダッシュボード変数を選択できます。複数の選択肢を持つダッシュボード変数を設定することで、同じフィールドを複数の視覚化にわたって表示できます。

この変換により、効果的な分析と視覚化に必要な特定のフィールドに焦点を当てて、クエリ結果を柔軟に調整できます。

## 文字列の形式を設定する
<a name="v10-panels-xform-funcs-string"></a>

この変換を使用して、文字列フィールドの出力をカスタマイズします。この変換には次のフィールドがあります。
+ **大文字** – 文字列全体を大文字形式にします。
+ **小文字** – 文字列全体を小文字形式にします。
+ **センテンスケース** – 文字列の最初の文字を大文字の形式にします。
+ **タイトルケース** – 文字列内の各単語の最初の文字を大文字の形式にします。
+ **パスカルケース** – 文字列内の各単語の最初の文字を大文字の形式にし、単語間のスペースは含まれません。
+ **キャメルケース** – 最初の単語を除き、文字列内の各単語の最初の文字を大文字の形式にし、単語間のスペースは含まれません。
+ **スネークケース** – 文字列内のすべての文字を小文字の形式にし、単語間のスペースの代わりにアンダースコアを使用します。
+ **ケバブケース** – 文字列内のすべての文字を小文字の形式にし、単語間のスペースの代わりにダッシュを使用します。
+ **Trim** – 文字列から先頭と末尾のすべてのスペースを削除します。
+ **文字列の単位** – 指定された開始位置と終了位置を使用して、文字列のサブ文字列を返します。

この変換により、視覚化と分析を向上させるために文字列データのプレゼンテーションを標準化して調整する便利な方法が提供されます。

**注記**  
この変換は現在パブリックプレビュー中です。Grafana Labs ではサポートが限られており、この機能が一般公開される前に重要な変更が発生する可能性があります。

## 時間形式
<a name="v10-panels-xform-funcs-time"></a>

この変換を使用して、時間フィールドの出力をカスタマイズします。出力は、[Moment.js 形式の文字列](https://momentjs.com/docs/#/displaying/)を使用してフォーマットできます。例えば、時間フィールドの年のみを表示する場合は、形式文字列「YYYY」を使用して暦年 (1999 年や 2012 年など) を表示できます。

**[変換前]**


| タイムスタンプ | イベント | 
| --- | --- | 
| 1636678740000000000 | システムスタート | 
| 1636678680000000000 | ユーザーログイン | 
| 1636678620000000000 | データ更新 | 

**「YYYY-MM-DD HH:mm:ss」を適用した後**


| タイムスタンプ | イベント | 
| --- | --- | 
| 2021-11-12 14:25:40 | システムスタート | 
| 2021-11-12 14:24:40 | ユーザーログイン | 
| 2021-11-12 14:23:40 | データ更新 | 

この変換により、視覚化の時間表現を調整し、時間データを表示する柔軟性と精度を提供できます。

**注記**  
この変換は、アルファ機能として Grafana v10 と互換性のあるワークスペースで使用できます。

## グループ化の条件
<a name="v10-panels-xform-funcs-group"></a>

この変換では、指定されたフィールド (列) 値でデータをグループ化し、各グループの計算を処理します。計算選択肢のリストの表示を選択します。

オリジナルデータの例を次に示します。


| Time | サーバー ID | CPU 温度 | サーバーステータス | 
| --- | --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | サーバー 1 | 80 | シャットダウン | 
| 7/7/2020 午前 11 時 34 分 20 秒 | サーバー 3 | 62 | OK | 
| 7/7/2020 午前 10 時 32 分 20 秒 | サーバー 2 | 90 | オーバーロード | 
| 7/7/2020 午前 10 時 31 分 22 秒 | サーバー 3 | 55 | OK | 
| 7/7/2020 午前 9 時 30 分 57 秒 | サーバー 3 | 62 | 再起動 | 
| 7/7/2020 午前 9 時 30 分 5 秒 | サーバー 2 | 88 | OK | 
| 7/7/2020 午前 9 時 28 分 6 秒 | サーバー 1 | 80 | OK | 
| 7/7/2020 午前 9 時 25 分 5 秒 | サーバー 2 | 88 | OK | 
| 7/7/2020 午前 9:23:07 | サーバー 1 | 86 | OK | 

この変換では 2 つのステップを実行します。まず、データをグループ化させる 1 つ以上のフィールドを指定します。これにより、これらのフィールドの同じ値すべてが、ソートされたかのようにグループ化されます。例えば、サーバー ID フィールドでグループ化すると、次のようにデータがグループ化されます。


| Time | サーバー ID | CPU 温度 | サーバーステータス | 
| --- | --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | サーバー 1 | 80 | シャットダウン | 
| 7/7/2020 午前 9 時 28 分 6 秒 | サーバー 1 | 80 | OK | 
| 7/7/2020 午前 9:23:07 | サーバー 1 | 86 | OK | 
| 7/7/2020 午前 10 時 32 分 20 秒 | サーバー 2 | 90 | オーバーロード | 
| 7/7/2020 午前 9 時 30 分 5 秒 | サーバー 2 | 88 | OK | 
| 7/7/2020 午前 9 時 25 分 5 秒 | サーバー 2 | 88 | OK | 
| 7/7/2020 午前 11 時 34 分 20 秒 | サーバー 3 | 62 | OK | 
| 7/7/2020 午前 10 時 31 分 22 秒 | サーバー 3 | 55 | OK | 
| 7/7/2020 午前 9 時 30 分 57 秒 | サーバー 3 | 62 | 再起動 | 

同じ値のサーバー ID を持つすべての行がグループ化されます。

データをグループ化するフィールドを選択すると、他のフィールドにさまざまな計算を追加でき、その計算を行の各グループに適用できます。例えば、これらの各サーバーの平均 CPU 温度を計算できます。そのため、CPU 温度フィールドに適用される*[平均]*計算を追加して、以下を取得できます。


| サーバー ID | CPU 温度 (平均) | 
| --- | --- | 
| サーバー 1 | 82 | 
| サーバー 2 | 88.6 | 
| サーバー 3 | 59.6 | 

また、複数の計算を追加できます。例:
+ 時間のフィールドでは、*[最後]*の値を計算して、各サーバーで最後のデータポイントがいつ受信されたかを把握できます。
+ サーバーステータスフィールドでは、*[最後]*の値を計算して、サーバーごとに最後の状態値を確認できます。
+ また、温度フィールドでは、*最後*の値を計算して、サーバーごとに最新の測定温度を知ることもできます。

その後、以下を取得します。


| サーバー ID | CPU 温度 (平均) | CPU 温度 (最新) | 時間 (最後) | サーバーステータス (最後) | 
| --- | --- | --- | --- | --- | 
| サーバー 1 | 82 | 80 | 7/7/2020 午前 11 時 34 分 20 秒 | シャットダウン | 
| サーバー 2 | 88.6 | 90 | 7/7/2020 午前 10 時 32 分 20 秒 | オーバーロード | 
| サーバー 3 | 59.6 | 62 | 7/7/2020 午前 11 時 34 分 20 秒 | OK | 

この変換により、時系列からキー情報を抽出して便利な方法で表示できます。

## Grouping to matrix (マトリックスへのグループ化)
<a name="v10-panels-xform-funcs-groupmatrix"></a>

この変換を使用して、クエリ出力の **[列]**、**[行]**、**[セル値]** フィールドの入力として使用される 3 つのフィールドを組み合わせて、マトリックスを生成します。以下のようにマトリックスが計算されます。

**元のデータ**


| サーバー ID | CPU 温度 | サーバーステータス | 
| --- | --- | --- | 
| サーバー 1 | 82 | OK | 
| サーバー 2 | 88.6 | OK | 
| サーバー 3 | 59.6 | シャットダウン | 

列名として `Server Status` の値、行名として `Server ID` の値、各セルの内容として `CPU Temperature` の値を使用して、マトリックスを生成できます。既存の列 (`Server Status`) と行の組み合わせ (`Server ID`) には、各セルの内容が表示されます。残りのセルでは、**[Null]**、**[真]**、**[偽]** 、または **[空]** のどの値を表示するかを選択できます。

**出力**


| サーバー ID サーバーステータス | OK | シャットダウン | 
| --- | --- | --- | 
| サーバー 1 | 82 |  | 
| サーバー 2 | 88.6 |  | 
| サーバー 3 |  | 59.6 | 

この変換を使用して、クエリ結果からフィールドを指定してマトリックスを作成します。マトリックスの出力には、これらのフィールドの一意の値間の関係が反映されます。これにより、複雑な関係を明確で構造化されたマトリックス形式で提示できます。

## Group to nested table (ネストされたテーブルにグループ化)
<a name="v10-panels-xform-funcs-grouptable"></a>

この変換を使用して、指定されたフィールド (列) 値でデータをグループ化し、各グループの計算を処理します。同じグループ化されたフィールド値を共有するレコードが生成され、ネストされたテーブルに表示されます。

フィールドの統計を計算するには、フィールドの横にあるボックスを選択し、**[計算]**オプションを選択します。これにより、統計を選択する別の選択ボックスが追加されます。

次の表にサンプルデータを示します。


| Time | サーバー ID | CPU 温度 | サーバーステータス | 
| --- | --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | サーバー 1 | 80 | シャットダウン | 
| 7/7/2020 午前 11 時 34 分 20 秒 | サーバー 3 | 62 | OK | 
| 7/7/2020 午前 10 時 32 分 20 秒 | サーバー 2 | 90 | オーバーロード | 
| 7/7/2020 午前 10 時 31 分 22 秒 | サーバー 3 | 55 | OK | 
| 7/7/2020 午前 9 時 30 分 57 秒 | サーバー 3 | 62 | 再起動 | 
| 7/7/2020 午前 9 時 30 分 5 秒 | サーバー 2 | 88 | OK | 
| 7/7/2020 午前 9 時 28 分 6 秒 | サーバー 1 | 80 | OK | 
| 7/7/2020 午前 9 時 25 分 5 秒 | サーバー 2 | 88 | OK | 
| 7/7/2020 午前 9:23:07 | サーバー 1 | 86 | OK | 

この変換には 2 つのステップがあります。まず、データをグループ化するフィールドを 1 つ以上指定します。これにより、これらのフィールドの同じ値がすべて、ソートされたかのようにグループ化されます。例えば、`Server ID` フィールドでグループ化した場合、Grafana は次のようにデータをグループ化します。


| サーバー ID | データ | 
| --- | --- | 
| Time | CPU 温度 | サーバーステータス | 
| --- | --- | --- | 
| Time | CPU 温度 | サーバーステータス | 
| --- | --- | --- | 
| Time | CPU 温度 | サーバーステータス | 
| --- | --- | --- | 
| サーバー 1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| サーバー 2 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| サーバー 3 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| 7/7/2020 午前 11 時 34 分 20 秒 | 80 | シャットダウン | 
| 7/7/2020 午前 9 時 28 分 6 秒 | 80 | OK | 
| 7/7/2020 午前 9:23:07 | 86 | OK | 
| 7/7/2020 午前 10 時 32 分 20 秒 | 90 | オーバーロード | 
| 7/7/2020 午前 9 時 30 分 5 秒 | 88 | OK | 
| 7/7/2020 午前 9 時 25 分 5 秒 | 88 | OK | 
| 7/7/2020 午前 11 時 34 分 20 秒 | 62 | OK | 
| 7/7/2020 午前 10 時 31 分 22 秒 | 55 | OK | 
| 7/7/2020 午前 9 時 30 分 57 秒 | 62 | 再起動 | 

データをグループ化するフィールドを選択すると、他のフィールドにさまざまな計算を追加でき、その計算を行の各グループに適用できます。例えば、これらの各サーバーの平均 CPU 温度を計算できます。これを行うには、CPU 温度フィールドに適用された平均計算を追加して、次の結果を取得します。


| サーバー ID | CPU 温度 (平均) |  | 
| --- | --- | --- | 
| Time | サーバーステータス | 
| --- | --- | 
| Time | サーバーステータス | 
| --- | --- | 
| Time | サーバーステータス | 
| --- | --- | 
| サーバー 1 | 82 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| サーバー 2 | 88.6 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| サーバー 3 | 59.6 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| 7/7/2020 午前 11 時 34 分 20 秒 | シャットダウン | 
| 7/7/2020 午前 9:28:06 | OK | 
| 7/7/2020 午前 9:23:07 | OK | 
| 7/7/2020 午前 10 時 32 分 20 秒 | オーバーロード | 
| 7/7/2020 午前 9 時 30 分 5 秒 | OK | 
| 7/7/2020 午前 9:25:05 | OK | 
| 7/7/2020 午前 11 時 34 分 20 秒 | OK | 
| 7/7/2020 午前 10 時 31 分 22 秒 | OK | 
| 7/7/2020 午前 9 時 30 分 57 秒 | 再起動 | 

## Create heatmap (ヒートマップの作成)
<a name="v10-panels-xform-funcs-heatmap"></a>

この変換を使用して、経時的な傾向を視覚化するためのヒストグラムデータを作成します。ヒートマップ視覚化と同様に、この変換はヒストグラムメトリクスを時間バケットに変換します。

**X バケット**

この設定は、X 軸をバケットに分割する方法を決定します。
+ **[サイズ]** – 入力フィールドに時間間隔を指定します。例えば、`1h` の時間範囲により、x 軸に 1 時間幅のセルが作成されます。
+ **[Count]** – 時間関連以外の系列の場合、このオプションを使用してバケット内の要素の数を定義します。

**Y バケット**

この設定は、Y 軸をバケットに分割する方法を決定します。
+ **[線形]**
+ **[対数]** – 底が 2 のログまたは底が 10 のログから選択します。
+ **[Symlog]** – 正負対象の対数目盛を使用します。負の値を許可して、底が 2 のログまたは底が 10 のログから選択します。

次のデータセットがあるとします。


| タイムスタンプ | 値 | 
| --- | --- | 
| 2023-01-01 12:00:00 | 5 | 
| 2023-01-01 12:15:00 | 10 | 
| 2023-01-01 12:30:00 | 15 | 
| 2023-01-01 12:45:00 | 8 | 
+ X バケットを `Size: 15m` に設定し、Y バケットを `Linear` に設定すると、ヒストグラムは値を X 軸で 15 分間隔、Y 軸で線形に編成します。
+ X バケットを `Count: 2`、Y バケットを `Logarithmic (base 10)` とすると、ヒストグラムは X 軸の 2 つのバケットに値をグループ化し、Y 軸の対数スケールを使用します。

## ヒストグラム
<a name="v10-panels-xform-funcs-histogram"></a>

この変換を使用して、入力データに基づいてヒストグラムを生成することで、値の分布を視覚化できます。
+ **[バケットサイズ]** – バケット内の最小項目と最大項目の範囲 (x最小 から x最大)。
+ **[バケットオフセット]** – ゼロベース以外のバケットのオフセット。
+ **[系列の結合]** – 使用可能なすべての系列を使用して統合されたヒストグラムを作成。

**元のデータ**

系列 1


| A | B | C | 
| --- | --- | --- | 
| 1 | 3 | 5 | 
| 2 | 4 | 6 | 
| 3 | 5 | 7 | 
| 4 | 6 | 8 | 
| 5 | 7 | 9 | 

系列 2


| C | 
| --- | 
| 5 | 
| 6 | 
| 7 | 
| 8 | 
| 9 | 

**出力**


| x最小 | x最大 | A | B | C | C | 
| --- | --- | --- | --- | --- | --- | 
| 1 | 2 | 1 | 0 | 0 | 0 | 
| 2 | 3 | 1 | 0 | 0 | 0 | 
| 3 | 4 | 1 | 1 | 0 | 0 | 
| 4 | 5 | 1 | 1 | 0 | 0 | 
| 5 | 6 | 1 | 1 | 1 | 1 | 
| 6 | 7 | 0 | 1 | 1 | 1 | 
| 7 | 8 | 0 | 1 | 1 | 1 | 
| 8 | 9 | 0 | 0 | 1 | 1 | 
| 9 | 10 | 0 | 0 | 1 | 1 | 

生成されたヒストグラムを使用して値の分布を視覚化し、データの広がりと密度に関するインサイトを提供します。

## Join by field (フィールドで結合)
<a name="v10-panels-xform-funcs-joinfield"></a>

この変換を使用して、複数の結果を 1 つのテーブルにマージすることで、異なるクエリからのデータを統合できます。

複数の時系列の結果を共有時間フィールドを持つ 1 つのワイドテーブルに変換する場合に特に便利です。

**Inner join** (内部結合)

内部結合は、選択したフィールドからすべてのテーブルが同じ値を共有する複数のテーブルからのデータをマージします。このタイプの結合では、すべての結果で値が一致しないデータを除外します。

この変換を使用して、複数のクエリの結果 (渡された結合フィールドまたは最初の列の組み合わせ) を 1 つの結果に結合し、正常な結合を実行できない行を削除します。

次の例では、2 つのクエリがテーブルデータを返します。内部結合変換を適用する前に、2 つの個別のテーブルとして視覚化されます。

クエリ A


| Time | ジョブ | アップタイム | 
| --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | ノード | 25260122 | 
| 7/7/2020 午前 11 時 24 分 20 秒 | postgre | 123001233 | 
| 7/7/2020 午前 11 時 14 分 20 秒 | postgre | 345001233 | 

クエリ B


| Time | サーバー | エラー | 
| --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | サーバー 1 | 15 | 
| 7/7/2020 午前 11 時 24 分 20 秒 | サーバー 2 | 5 | 
| 7/7/2020 午前 11 時 4 分 20 秒 | サーバー 3 | 10 | 

内部結合変換を適用した後の結果は次のようになります。


| Time | ジョブ | アップタイム | サーバー | エラー | 
| --- | --- | --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | ノード | 25260122 | サーバー 1 | 15 | 
| 7/7/2020 午前 11 時 24 分 20 秒 | postgre | 123001233 | サーバー 2 | 5 | 

*Outer join* (外部結合)

外部結合には、すべての入力で値が一致しない内部結合と行のすべてのデータが含まれます。内部結合が時間フィールドでクエリ A とクエリ B を結合している間、外部結合には時間フィールドで一致しないすべての行が含まれます。

次の例では、2 つのクエリがテーブルデータを返します。外部結合変換を適用する前に、2 つのテーブルとして視覚化されます。

クエリ A


| Time | ジョブ | アップタイム | 
| --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | ノード | 25260122 | 
| 7/7/2020 午前 11 時 24 分 20 秒 | postgre | 123001233 | 
| 7/7/2020 午前 11 時 14 分 20 秒 | postgre | 345001233 | 

クエリ B


| Time | サーバー | エラー | 
| --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | サーバー 1 | 15 | 
| 7/7/2020 午前 11 時 24 分 20 秒 | サーバー 2 | 5 | 
| 7/7/2020 午前 11 時 4 分 20 秒 | サーバー 3 | 10 | 

外部結合変換を適用した後の結果は次のようになります。


| Time | ジョブ | アップタイム | サーバー | エラー | 
| --- | --- | --- | --- | --- | 
| 7/7/2020 午前 11 時 4 分 20 秒 |  |  | サーバー 3 | 10 | 
| 7/7/2020 午前 11 時 14 分 20 秒 | postgre | 345001233 |  |  | 
| 7/7/2020 午前 11 時 34 分 20 秒 | ノード | 25260122 | サーバー 1 | 15 | 
| 7/7/2020 午前 11 時 24 分 20 秒 | postgre | 123001233 | サーバー 2 | 5 | 

## Join by labels (ラベルで結合)
<a name="v10-panels-xform-funcs-joinlabel"></a>

この変換を使用して、複数の結果を 1 つのテーブルに結合します。

これは、複数の時系列の結果を共有**[ラベル]**フィールドを持つ単一のワイドテーブルに変換する場合に特に便利です。
+ **[Join]** (結合) – すべての時系列で使用可能なラベルまたは共通ラベル間で結合するラベルを選択します。
+ **[値]** – 出力結果の名前。

**例**

入力 1: `series1{what='Temp', cluster='A', job='J1'}`


| Time | 値 | 
| --- | --- | 
| 1 | 10 | 
| 2 | 200 | 

入力 2: `series2{what='Temp', cluster='B', job='J1'}`


| Time | 値 | 
| --- | --- | 
| 1 | 10 | 
| 2 | 200 | 

入力 3: `series3{what='Speed', cluster='B', job='J1'}`


| Time | 値 | 
| --- | --- | 
| 22 | 22 | 
| 28 | 77 | 

構成

```
value: 'what'
```

出力


| クラスター | ジョブ | 温度 | [Speed] (スピード) | 
| --- | --- | --- | --- | 
| A | J1 | 10 |  | 
| A | J1 | 200 |  | 
| B | J1 | 10 | 22 | 
| B | J1 | 200 | 77 | 

時系列データをこの変換と効果的に組み合わせて整理し、包括的なインサイトを提供します。

## フィールドへのラベル付け
<a name="v10-panels-xform-funcs-labelstofields"></a>

この変換を使用して、ラベルまたはタグを含む時系列の結果を、結果の各ラベルのキーと値を含むテーブルに変換します。ラベルを列または行の値として表示して、拡張データの視覚化を行います。

2 つの時系列のクエリ結果を示します。
+ 系列 1 – ラベル `Server=Server A`、 `Datacenter=EU`
+ 系列 2 – ラベル `Server=Server B`、 `Datacenter=EU`

**[列]** モードでは、結果は次のように表示されます。


| Time | サーバー | データセンター | 値 | 
| --- | --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | サーバー A | EU | 1 | 
| 7/7/2020 午前 11 時 34 分 20 秒 | サーバー B | EU | 2 | 

[Rows] (行) モードでは、結果には各系列のテーブルがあり、次のような各ラベル値が表示されます。


| ラベル | 値 | 
| --- | --- | 
| サーバー | サーバー A | 
| データセンター | EU | 


| ラベル | 値 | 
| --- | --- | 
| サーバー | サーバー B | 
| データセンター | EU | 

**値フィールド名**

**値フィールド名**としてサーバーを選択した場合、サーバーラベルの値ごとに 1 つのフィールドを取得します。


| Time | データセンター | サーバー A | サーバー B | 
| --- | --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | EU | 1 | 2 | 

**マージ動作**

フィールドトランスフォーマーへのラベルは、内蔵されている 2 つの異なる変換です。1 つ目は、1 つの系列で動作し、ラベルをフィールドに抽出します。2 つ目は、すべての結果を 1 つのテーブルに結合するマージ変換です。マージ変換は、一致するすべてのフィールドで結合を試みます。このマージステップは必須であり、オフにすることはできません。

これを説明するために、重複ラベルのない時系列を返すクエリが 2 つある例を次に示します。
+ 系列 1 – ラベル `Server=ServerA`
+ 系列 2 – ラベル `Datacenter=EU`

これにより、まず次の 2 つのテーブルが作成されます。


| Time | サーバー | 値 | 
| --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | サーバー A | 10 | 


| Time | データセンター | 値 | 
| --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | EU | 20 | 

マージ後


| Time | サーバー | 値 | データセンター | 
| --- | --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | サーバー A | 10 |  | 
| 7/7/2020 午前 11 時 34 分 20 秒 |  | 20 | EU | 

## [制限]
<a name="v10-panels-xform-funcs-limit"></a>

この変換を使用して、表示される行数を制限し、データに対してより焦点を絞ったビューを提供します。これは、大規模なデータセットを処理する場合に特に便利です。

以下は、データソースからのレスポンスに対する**[制限]**変換の影響を示す例です。


| Time | メトリクス | 値 | 
| --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | 温度 | 25 | 
| 7/7/2020 午前 11 時 34 分 20 秒 | 湿度 | 22 | 
| 7/7/2020 午前 10 時 32 分 20 秒 | 湿度 | 29 | 
| 7/7/2020 午前 10 時 31 分 22 秒 | 温度 | 22 | 
| 7/7/2020 午前 9 時 30 分 57 秒 | 湿度 | 33 | 
| 7/7/2020 午前 9 時 30 分 5 秒 | 温度 | 19 | 

以下は、値が「3」の制限変換を追加した後の結果です。


| Time | メトリクス | 値 | 
| --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | 温度 | 25 | 
| 7/7/2020 午前 11 時 34 分 20 秒 | 湿度 | 22 | 
| 7/7/2020 午前 10 時 32 分 20 秒 | 湿度 | 29 | 

この変換により、データの視覚的な表示を調整して、最も関連性の高いデータに集中できます。

## Merge series/tables (系列/テーブルのマージ)
<a name="v10-panels-xform-funcs-merge"></a>

この変換を使用して、複数のクエリの結果を 1 つの結果に結合します。これは、テーブルパネルの視覚化を使用する場合に特に便利です。共有フィールドに同じデータが含まれている場合、変換は値を同じ行にマージします。

以下に、テーブルデータを返す 2 つのクエリに対する **[系列/テーブルのマージ]** 変換の影響を例示します。

*クエリ A*


| Time | ジョブ | アップタイム | 
| --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | ノード | 25260122 | 
| 7/7/2020 午前 11 時 24 分 20 秒 | postgre | 123001233 | 

クエリ B


| Time | ジョブ | エラー | 
| --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | ノード | 15 | 
| 7/7/2020 午前 11 時 24 分 20 秒 | postgre | 5 | 

マージ変換を適用した後の結果は次のとおりです。


| Time | ジョブ | エラー | アップタイム | 
| --- | --- | --- | --- | 
| 7/7/2020 午前 11 時 34 分 20 秒 | ノード | 15 | 25260122 | 
| 7/7/2020 午前 11 時 24 分 20 秒 | postgre | 5 | 123001233 | 

この変換では、クエリ A とクエリ B の値を統一されたテーブルに結合し、より良いインサイトを得るためにプレゼンテーションを強化します。

## Organize fields by name (名前でフィールドを整理)
<a name="v10-panels-xform-funcs-organize"></a>

この変換を使用して、パネル内の 1 つのクエリによって返されるフィールドの名前を変更、並べ替え、または非表示にします。この変換は単一クエリを持つパネルでのみ機能します。パネルに複数のクエリがある場合は、*[外部結合]* 変換を適用するか、追加のクエリを削除する必要があります。

**[フィールドの変換]**

Grafana では、クエリが返すフィールドのリストが表示されます。以下の操作を実行できます。
+ **フィールドの順序の変更** – リスト内の新しい場所にフィールドをドラッグします。
+ **フィールドを非表示または表示** – フィールド名の横の目のアイコンを使用して、フィールドの表示を切り替えます。
+ **名前変更フィールド** – **名前変更**ボックスに新しい名前を入力します。

**例**

この最初のクエリ結果を考慮すると、次のようになります。


| Time | メトリクス | 値 | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | 温度 | 25 | 
| 2020-07-07 11:34:20 | 湿度 | 22 | 
| 2020-07-07 10:32:20 | 湿度 | 29 | 

名前変更フィールドオーバーライドを適用して、以下を作成できます。


| Time | センサー | 読み取り | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | 温度 | 25 | 
| 2020-07-07 11:34:20 | 湿度 | 22 | 
| 2020-07-07 10:32:20 | 湿度 | 29 | 

この変換により、クエリ結果の表示をカスタマイズし、Grafana 内のデータに対して明確で本質を突いた表現を確保できます。

## 値による分割
<a name="v10-panels-xform-funcs-partition"></a>

この変換を使用して、異なる `WHERE` 句を持つ複数のクエリを必要とせずに、複数の系列をグラフ化するプロセスを合理化します。

**注記**  
この関数は、Grafana バージョン 9 以降と互換性のあるワークスペースで使用できます。

これは、以下の例のように、メトリクス SQL テーブルを使用する場合に特に便利です。


| Time | リージョン | 値 | 
| --- | --- | --- | 
| 10/20/2022 12:00:00 PM | 米国 | 1520 | 
| 10/20/2022 12:00:00 PM | EU | 2936 | 
| 10/20/2022 午前 1 時 00 分 | 米国 | 1327 | 
| 10/20/2022 午前 1 時 00 分 | EU | 912 | 

*[値による分割]*トランスフォーマーを使用すると、単一のクエリを発行し、選択した 1 つ以上の列 (フィールド) に対して一意の値で結果を分割できます。次の例では `Region` を使用しています。

```
SELECT Time, Region, Value FROM metrics WHERE Time > '2022-10-20'
```


| Time | リージョン | 値 | 
| --- | --- | --- | 
| 10/20/2022 12:00:00 PM | 米国 | 1520 | 
| 10/20/2022 午前 1 時 00 分 | 米国 | 1327 | 


| Time | リージョン | 値 | 
| --- | --- | --- | 
| 10/20/2022 12:00:00 PM | EU | 2936 | 
| 10/20/2022 午前 1 時 00 分 | EU | 912 | 

この変換により、プロセスが簡素化され、同じ時系列視覚化内で複数の系列を視覚化する柔軟性が向上します。

## Prepare times series (時系列の準備)
<a name="v10-panels-xform-funcs-preparetimeseries"></a>

この変換を使用して、データソースが目的の視覚化と互換性のない形式で時系列データを返す際の問題に対処します。この変換により、時系列データをワイド形式とロング形式との間で変換できます。

**[マルチフレーム時系列]**

このオプションを使用して、時系列データフレームをワイド形式からロング形式に変換します。これは、データソースが視覚化と最適な互換性を得るために再形成する必要がある形式で、時系列情報を配信する場合に特に役立ちます。

*例*

入力


| タイムスタンプ | 値 1 | 値 2 | 
| --- | --- | --- | 
| 2023-01-01 00:00:00 | 10 | 20 | 
| 2023-01-01 01:00:00 | 15 | 25 | 

次のように変換できます。


| タイムスタンプ | 変数 | 値 | 
| --- | --- | --- | 
| 2023-01-01 00:00:00 | 値 1 | 10 | 
| 2023-01-01 00:00:00 | 値 2 | 20 | 
| 2023-01-01 01:00:00 | 値 1 | 15 | 
| 2023-01-01 01:00:00 | 値 2 | 25 | 

**[ワイド時系列]**

このオプションを使用して、時系列データフレームをロング形式からワイド形式に変換します。これは、データソースが時系列データをロング形式で配信し、視覚化にワイド形式が必要な場合に特に役立ちます。

*例*

入力


| タイムスタンプ | 変数 | 値 | 
| --- | --- | --- | 
| 2023-01-01 00:00:00 | 値 1 | 10 | 
| 2023-01-01 00:00:00 | 値 2 | 20 | 
| 2023-01-01 01:00:00 | 値 1 | 15 | 
| 2023-01-01 01:00:00 | 値 2 | 25 | 

次のように変換できます。


| タイムスタンプ | 値 1 | 値 2 | 
| --- | --- | --- | 
| 2023-01-01 00:00:00 | 10 | 20 | 
| 2023-01-01 01:00:00 | 15 | 25 | 

## 削減
<a name="v10-panels-xform-funcs-reduce"></a>

この変換を使用すると、データフレームの各フィールドに計算が適用され、単一の値が返されます。この変換は、複数の時系列データをよりコンパクトで要約された形式に統合するために特に役立ちます。この変換を適用すると、時間フィールドは削除されます。

以下の入力を検討します。

クエリ A


| Time | Temp | アップタイム | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | 12.3 | 256122 | 
| 2020-07-07 11:24:20 | 15.4 | 1230233 | 

クエリ B


| Time | AQI | エラー | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | 6.5 | 15 | 
| 2020-07-07 11:24:20 | 3.2 | 5 | 

縮小のトランスフォーマーには 2 つのモードがあります。
+ **[シリーズから行]** – 各フィールドの行と各計算の列を作成します。
+ **[縮小フィールド]** – 既存のフレーム構造を維持しますが、各フィールドを 1 つの値に折りたたみます。

例えば、系列で**[最初]**と**[最後]**の計算を使用して**[シリーズから行]**変換を行った場合、結果は次のようになります。


| フィールド | First | Last | 
| --- | --- | --- | 
| Temp | 12.3 | 15.4 | 
| アップタイム | 256122 | 1230233 | 
| AQI | 6.5 | 3.2 | 
| エラー | 15 | 5 | 

**最後**の計算における**縮小フィールド**は、それぞれ 1 行、2 つのフレームになります。

クエリ A


| 温度 | アップタイム | 
| --- | --- | 
| 15.4 | 1230233 | 

クエリ B


| AQI | エラー | 
| --- | --- | 
| 3.2 | 5 | 

## [正規表現で名前を変更]
<a name="v10-panels-xform-funcs-rename"></a>

この変換を使用して、正規表現と置換パターンを使用してクエリ結果の一部の名前を変更します。

正規表現を指定できます。正規表現は、バックリファレンスをサポートする置換パターンとともに、一致にのみ適用されます。例えば、ホストあたりの CPU 使用率を視覚化し、ドメイン名を削除するとします。正規表現を `([^\.]+)\..+` に設定し、置換パターンを `$1` に設定することで、`web-01.example.com` は `web-01` になります。

この変換により、視覚化のニーズに合わせてデータをカスタマイズできるため、ダッシュボードはより有益でユーザーフレンドリーになります。

## Rows to fields (行からフィールドへ)
<a name="v10-panels-xform-funcs-row"></a>

この変換を使用して、行を別々のフィールドに変換します。これは、フィールドを個別にスタイル変更および設定できるため便利です。また、動的フィールド設定のソースとして追加のフィールドを使用したり、フィールドラベルにマッピングしたりすることもできます。その後、追加のラベルを使用して、結果フィールドにより適切な表示名を定義できます。

この変換には、設定クエリによって返されるデータ内のすべてのフィールドを一覧表示するフィールドテーブルが含まれます。このテーブルでは、各設定プロパティにマッピングするフィールドを制御できます (**[用途]** オプション)。返されるデータに複数の行がある場合、選択する値を選ぶこともできます。

この変換には以下が必要です。
+ フィールド名のソースとして使用する 1 つのフィールド。

  デフォルトでは、変換は最初の文字列フィールドをソースとして使用します。このデフォルト設定は、代わりに使用するフィールドの **[用途]** 列で **[フィールド名]** を選択してオーバーライドできます。
+ 値のソースとして使用する 1 つのフィールド。

  デフォルトでは、変換は最初の数値フィールドをソースとして使用します。ただし、このデフォルト設定は、代わりに使用するフィールドの **[用途]** 列で **[フィールド値]** を選択してオーバーライドできます。

以下にデータを視覚化する場合に役立ちます。
+ ゲージ
+ 統計
+ 円グラフ

**追加フィールドをラベルにマッピング**

フィールドが設定プロパティにマッピングされない場合、Grafana は出力フィールドのラベルのソースとして自動的に使用します。

例


| 名前 | データセンター | 値 | 
| --- | --- | --- | 
| サーバー A | 米国 | 100 | 
| サーバー B | EU | 200 | 

出力:


| サーバー A (ラベル: データセンター: US) | サーバー B (ラベル: データセンター: EU) | 
| --- | --- | 
| 100 | 200 | 

フィールド表示名で追加のラベルを使用して、より完全なフィールド名を提供できるようになりました。

あるクエリから設定を抽出して別のクエリに適用する場合は、*[クエリ結果から設定]* 変換を使用する必要があります。

**例**

入力


| 名前 | 値 | 最大 | 
| --- | --- | --- | 
| サーバー A | 10 | 100 | 
| サーバー B | 20 | 200 | 
| サーバー C | 30 | 300 | 

出力


| サーバー A (設定: 最大=100) | サーバー B (設定: 最大=200) | サーバー C (設定: 最大=300) | 
| --- | --- | --- | 
| 10 | 20 | 30 | 

ソースデータ内の各行が個別のフィールドになります。各フィールドには、最大設定オプションも設定されるようになりました。**[最小値]**、**[最大値]**、**[単位]**、**[しきい値]** などのオプションはすべてフィールド設定の一部であり、このような設定を行うと、パネルエディタのオプションペインで手動設定されるオプションではなく、視覚化によって使用されます。

この変換により、行を個々のフィールドに変換し、動的なフィールド設定を容易にし、追加のフィールドをラベルにマッピングできます。

## シリーズから行
<a name="v10-panels-xform-funcs-series"></a>

この変換を使用して、複数の時系列データクエリの結果を 1 つの結果にまとめます。これはテーブルパネルの視覚化を使用する場合に役立ちます。

この変換の結果には、時間、メトリクス、値の 3 つの列が含まれます。メトリクス列が追加されると、メトリクスのソースとなるクエリを簡単に確認できます。ソースクエリのラベルを定義して、この値をカスタマイズします。

次の例では、時系列データを返すクエリが 2 つあります。変換を適用する前に、2 つの個別のテーブルとして視覚化されます。

*クエリ A*


| Time | 温度 | 
| --- | --- | 
| 2020-07-07 11:34:20 | 25 | 
| 2020-07-07 10:31:22 | 22 | 
| 2020-07-07 09:30:05 | 19 | 

*クエリ B*


| Time | 湿度 | 
| --- | --- | 
| 2020-07-07 11:34:20 | 24 | 
| 2020-07-07 10:32:20 | 29 | 
| 2020-07-07 09:30:57 | 33 | 

シリーズから行 変換を適用した後の結果は次のとおりです。


| Time | メトリクス | 値 | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | 温度 | 25 | 
| 2020-07-07 11:34:20 | 湿度 | 22 | 
| 2020-07-07 10:32:20 | 湿度 | 29 | 
| 2020-07-07 10:31:22 | 温度 | 22 | 
| 2020-07-07 09:30:57 | 湿度 | 33 | 
| 2020-07-07 09:30:05 | 温度 | 19 | 

この変換により、複数の時系列クエリの結果の統合が容易になり、効率的な分析と視覚化のための合理化された統合データセットが表形式で提供されます。

## 並べ替え
<a name="v10-panels-xform-funcs-sort"></a>

この変換を使用して、指定されたフィールドに基づいてクエリ結果内の各フレームをソートし、データを理解し分析しやすくします。ソートに必要なフィールドを設定することで、テーブルまたは視覚化にデータが表示される順序を制御できます。

**[Reverse]** (リバース) スイッチを使用して、指定されたフィールド内の値を逆に順序付けします。この機能は、分析ニーズに合わせて昇順と降順をすばやく切り替える場合に特に便利です。

例えば、時系列データがデータソースから取得されるシナリオでは、**[並べ替え]**変換を適用することで、分析要件に応じてタイムスタンプに基づいてデータフレームを昇順または降順に配置できます。この機能を使用すると、時系列データを簡単にナビゲートして解釈でき、整理された視覚的に一貫性のあるプレゼンテーションから貴重なインサイトを得られます。

## Spatial (空間)
<a name="v10-panels-xform-funcs-spatial"></a>

この変換を使用して、空間オペレーションをクエリ結果に適用します。
+ **[Action]** – アクションを選択します。
  + **[Prepare spatial field]** (空間フィールドの準備) – 他のフィールドの結果に基づいてジオメトリフィールドを設定します。
    + **[Location mode]** – ロケーションモードを選択します (これらのオプションは、**値の計算**モードと**変換**モードによって共有されます)。
      + **[Auto]** – デフォルトのフィールド名に基づいて位置データを自動的に識別します。
      + **[Coords]** (座標) – 緯度と経度フィールドを指定します。
      + **[Geohash]** – ジオハッシュフィールドを指定します。
      + **[ルックアップ]** - Gazetteer のロケーションフィールドを指定します。
  + **[計算]**– ジオメトリを使用して新しいフィールド (方位/距離/面積) を定義します。
    + **[関数]** – ジオメトリに適用する数学演算を選択します。
      + **[Heading]** (方位) – 2 つのポイント間の方位 (方向) を計算します。
      + **[面積]** – ジオメトリで定義されるポリゴンで囲まれたエリアを計算します。
      + **[Distance]** (距離) – 2 つのポイント間の距離を計算します。
  + **[変換]** - ジオメトリに空間オペレーションを適用します。
    + **[操作]** – ジオメトリに適用する操作を選択します。
      + **[線]** – 各行の頂点による単線機能を作成します。
      + **[ラインビルダー]** – 2 つのポイントの間に線を作成します。

この変換により、地理空間データを操作および分析し、ポイント間の線の作成、空間プロパティの計算などの操作が可能になります。

## 時系列のテーブル変換
<a name="v10-panels-xform-funcs-seriestotable"></a>

この変換を使用して時系列結果をテーブルに変換し、時系列データフレームを**[トレンド]**フィールドに変換します。**[トレンド]**フィールドは、[[スパークラインセルタイプ]](v10-panels-table.md#v10-panels-table-cell-type)を使用してレンダリングでき、テーブル行ごとにインラインスパークラインを生成します。複数の時系列クエリがある場合、それぞれが個別のテーブルデータフレームになります。これらは結合またはマージ変換を使用して結合し、行ごとに複数のスパークラインを持つ単一のテーブルを生成できます。

生成された**[トレンド]**フィールド値ごとに、計算関数を選択できます。デフォルトは **[最後の null 以外の値]**です。この値はスパークラインの隣に表示され、テーブル行のソートに使用されます。

## Regression analysis (回帰分析)
<a name="v10-panels-xform-funcs-regression"></a>

この変換を使用して、統計モデルによって予測された値を含む新しいデータフレームを作成します。これは、混沌としたデータの傾向を見つけるのに役立ちます。線形回帰または多項式回帰を使用して、データに数学関数を適合させることによって機能します。その後、データフレームを視覚化で使用してトレンドラインを表示できます。

これには、次のように 2 つの異なるモデルがあります。
+  **線形回帰** – 線形関数をデータに適合させます。
+  **多項式回帰** – 多項式関数をデータに適合させます。

**注記**  
この変換は現在パブリックプレビュー中です。Grafana Labs ではサポートが限られており、この機能が一般公開される前に重要な変更が発生する可能性があります。