

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 轉換資料
<a name="v9-panels-xform"></a>

****  
本文件主題專為支援 Grafana **9.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 10.x 版的 Grafana 工作區，請參閱[使用 Grafana 第 10 版](using-grafana-v10.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

在系統套用視覺化效果之前，轉換是操作查詢所傳回資料的強大方式。使用轉換，您可以：
+ 重新命名欄位
+ 聯結時間序列資料
+ 跨查詢執行數學操作
+ 使用一個轉換的輸出做為另一個轉換的輸入

對於依賴相同資料集的多個檢視的使用者，轉換提供了建立和維護許多儀表板的有效方法。

您也可以使用一個轉換的輸出做為另一個轉換的輸入，這會導致效能提升。

**注意**  
有時系統無法繪製轉換的資料圖形。發生這種情況時，請按一下視覺化上方的**資料表檢視**切換，以切換至資料的資料表檢視。這可協助您了解轉換的最終結果。

## 轉換類型
<a name="v9-panels-xform-types"></a>

Grafana 提供多種轉換資料的方式。以下是轉換函數的完整清單。

## 轉換順序
<a name="v9-panels-xform-order"></a>

有多個轉換時，Grafana 會依列出的順序套用轉換。每個轉換都會建立結果集，然後傳遞至處理管道中的下一個轉換。

Grafana 套用轉換的順序會直接影響結果。例如，如果您使用減少轉換將一欄的所有結果精簡為單一值，則您只能將轉換套用至該單一值。

## 將轉換函數新增至資料
<a name="v9-panels-xform-add"></a>

下列步驟會引導您將轉換新增至資料。

**將轉換新增至面板**

1. 導覽至您要新增一或多個轉換的面板。

1. 選擇面板標題，然後按一下**編輯**。

1. 選擇**轉換**索引標籤。

1. 選擇轉換。隨即出現轉換列，供您設定轉換選項。

1. 若要套用另一個轉換，請選擇**新增轉換**。此轉換作用於先前轉換傳回的結果集。

## 偵錯轉換
<a name="v9-panels-xform-debug"></a>

若要查看轉換的輸入和輸出結果集，請選擇轉換列右側的錯誤圖示。

輸入和輸出結果集可協助您偵錯轉換。

## 刪除轉換
<a name="v9-panels-xform-delete"></a>

我們建議您移除不需要的轉換。當您刪除轉換時，會從視覺化中移除資料。

事前準備：

識別依賴轉換的所有儀表板，並通知受影響的儀表板使用者。

**刪除轉換**

1. 開啟面板進行編輯。

1. 選擇**轉換**索引標籤。

1. 選擇您要刪除之轉換旁的垃圾桶圖示。

## 轉換函數
<a name="v9-panels-xform-functions"></a>

您可以對資料執行下列轉換。

**從計算新增欄位**

使用此轉換來新增從其他兩個欄位計算的新欄位。每個轉換都可讓您新增一個新欄位。
+ **模式** - 選取模式：
  + **減少資料列 – **個別將選取的計算套用至所選欄位的每一列。
  + **二進位選項** – 將基本數學操作 （總和、乘以等） 套用至來自兩個所選欄位的單一資料列中的值。
+ **欄位名稱** – 選取您要在新欄位的計算中使用的欄位名稱。
+ **計算**：如果您選取**減少資料列**模式，則**計算**欄位會顯示。按一下 欄位以查看可用來建立新欄位的計算選項清單。如需可用計算的資訊，請參閱[計算類型](v9-panels-calculation-types.md)。
+ **操作** – 如果您選取**二進位選項**模式，則會顯示**操作**欄位。這些欄位可讓您對來自兩個所選欄位的單一資料列中的值執行基本數學操作。您也可以使用二進位操作的數值。
+ **別名** – （選用） 輸入新欄位的名稱。如果您將此保留空白，則會命名 欄位以符合計算。
+ **取代所有欄位** – （選用） 如果您想要隱藏所有其他欄位，並僅在視覺化中顯示計算欄位，請選取此選項。

**串連欄位**

此轉換會將所有影格的所有欄位合併為一個結果。請考慮這兩個查詢。

查詢 A：


| 暫存 | 執行時間 | 
| --- | --- | 
|  15.4  |  1230233  | 

查詢 B：


| AQI | 錯誤 | 
| --- | --- | 
|  3.2  |  5  | 

串連欄位之後，資料框架會是：


| 暫存 | 執行時間 | AQI | 錯誤 | 
| --- | --- | --- | --- | 
|  15.4  |  1230233  |  3.2  |  5  | 

**查詢結果中的組態**

此轉換可讓您選取一個查詢，並從中擷取標準選項，例如 **Min**、**Max**、**Unit** 和 **Thresholds**，並將其套用至其他查詢結果。這會啟用動態查詢驅動的視覺化組態。

如果您想要擷取組態查詢結果中每一列的唯一組態，請嘗試資料列到欄位轉換。

**選項**
+ **組態查詢** – 選取傳回您要用作組態之資料的查詢。
+ **套用到** – 選取要套用組態的欄位或序列。
+ **套用至選項** – 通常是欄位類型或欄位名稱 regex，取決於您在**套用至**中選取的選項。

**轉換欄位類型**

此轉換會變更指定欄位的欄位類型。
+ **欄位** – 從可用欄位中選取
+ **as** – 選取要轉換為的 FieldType 
  + **數值** – 嘗試將值設為數字
  + **字串** – 將使值字串
  + **時間** – 嘗試將值剖析為時間
    + 會顯示一個選項，以指定 DateFormat 做為 yyyy-mm-dd 或 DD MM YYYY hh：mm：ss 等字串的輸入
  + **布林值** – 將使值成為布林值

例如，以下查詢可以透過選取時間欄位、時間格式和日期格式為 YYYY 來修改。


| 時間 | 標記 | Value | 
| --- | --- | --- | 
|  7/1/2017  |  上方  |  25  | 
|  8/2/2018  |  下方  |  22  | 
|  9/2/2019  |  下方  |  29  | 
|  10/4/2020  |  上方  |  22  | 

結果：


| 時間 | 標記 | Value | 
| --- | --- | --- | 
|  1/1/2017  |  上方  |  25  | 
|  1/1/2018  |  下方  |  22  | 
|  1/1/2019  |  下方  |  29  | 
|  1/1/2020  |  上方  |  22  | 

**依名稱篩選資料**

使用此轉換移除部分查詢結果。

Grafana 會顯示**識別符**欄位，後面接著查詢傳回的欄位。

您可以透過下列兩種方式之一套用篩選條件：
+ 輸入 regex 表達式。
+ 選擇欄位以切換該欄位的篩選。篩選的欄位會以深灰色文字顯示，未篩選的欄位則以白色文字顯示。

**依查詢篩選資料**

如果您想要隱藏一或多個查詢，請在具有多個查詢的面板中使用此轉換。

Grafana 會以深灰色文字顯示查詢識別字母。按一下查詢識別符以切換篩選。如果查詢字母為白色，則會顯示結果。如果查詢字母為深色，則會隱藏結果。

**注意**  
此轉換不適用於 Graphite，因為此資料來源不支援將傳回的資料與查詢關聯。

**依值篩選資料**

此轉換可讓您直接在 Grafana 中篩選資料，並從查詢結果中移除一些資料點。您可以選擇包含或排除符合您定義的一或多個條件的資料。這些條件會套用至選取的欄位。

如果您的資料來源不原生依值篩選，則此轉換很有用。如果您使用共用查詢，也可以使用此值來縮小顯示範圍。

所有欄位的可用條件如下：
+ **Regex** – 比對 regex 表達式
+ **為 Null** – 如果值為 Null 則相符
+ **Is Not Null** – 如果值不是 Null，則相符
+ **等於** – 如果值等於指定的值，則相符
+ **不同** – 如果值與指定的值不同，則相符

數字欄位的可用條件為：
+ **較大** – 如果值大於指定的值，則相符
+ **較低** – 如果值低於指定值，則相符
+ **大於或等於** – 如果值大於或等於，則相符
+ **小於或等於** – 如果值小於或等於，則相符
+ **範圍** – 符合指定最小值與最大值、最小值與最大值之間的範圍

請考慮下列資料集：


| 時間 | 溫度 | 高度 | 
| --- | --- | --- | 
|  7/7/2020 上午 11：34：23  |  32  |  101  | 
|  7/7/2020 上午 11：34：22  |  28  |  125  | 
|  7/7/2020 上午 11：34：21  |  26  |  110  | 
|  7/7/2020 上午 11：34：20  |  23  |  98  | 
|  7/7/2020 上午 10：32：24  |  31  |  95  | 
|  7/7/2020 上午 10：31：22  |  20  |  85  | 
|  7/7/2020 上午 9：30：57  |  19  |  101  | 

如果您**包含**溫度低於 30°C 的資料點，則組態會如下所示：
+ **篩選條件類型** – `Include`
+ **條件** – `Temperature`符合的列 `Lower Than 30`

此外，您會收到以下結果，其中只會包含低於 30°C 的溫度：


| 時間 | 溫度 | 高度 | 
| --- | --- | --- | 
|  7/7/2020 上午 11：34：22  |  28  |  125  | 
|  7/7/2020 上午 11：34：21  |  26  |  110  | 
|  7/7/2020 上午 11：34：20  |  23  |  98  | 
|  7/7/2020 上午 10：31：22  |  20  |  85  | 
|  7/7/2020 上午 9：30：57  |  19  |  101  | 

您可以將多個條件新增至篩選條件。例如，您可能只想在海拔高度大於 100 時包含資料。若要這麼做，請將該條件新增至下列組態：
+ 篩選條件類型 – `Match All`條件的資料`Include`列
+ 條件 1 – `Temperature``Lower`符合 的資料列 `30`
+ 條件 2 – `Altitude``Greater`符合 的資料列 `100`

當您有多個條件時，您可以選擇是否要將動作 （包括/排除） 套用至**符合所有**條件或**符合**任何您新增條件的資料列。

在上述範例中，我們選擇**全部相符**，因為我們想要包含溫度低於 30 且高度高於 100 的資料列。如果我們希望包含溫度低於 30 或高度高於 100 的資料列，則我們會選取**符合任何**資料列。這將包含原始資料中的第一列，其溫度為 32°C （不符合第一個條件），但高度為 101 （符合第二個條件），因此包含在內。

系統會忽略無效或設定不完整的條件。

**分組依據**

此轉換會依指定的欄位 （資料欄） 值將資料分組，並處理每個群組的計算。按一下以查看計算選項的清單。

以下是原始資料的範例。


| 時間 | 伺服器 ID | CPU 溫度 | 伺服器狀態 | 
| --- | --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  伺服器 1  |  80  |  Shutdown  | 
|  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  |  Rebooting (重新開機中)  | 
|  7/7/2020 上午 9：30：05  |  伺服器 2  |  88  |  OK  | 
|  7/7/2020 上午 9：28：06  |  伺服器 1  |  80  |  OK  | 
|  7/7/2020 上午 9：25：05  |  伺服器 2  |  88  |  OK  | 
|  7/7/2020 上午 9：23：07  |  伺服器 1  |  86  |  OK  | 

此轉換分為兩個步驟。首先，指定一或多個欄位來分組資料。這會將這些欄位的所有相同值分組在一起，就像您排序它們一樣。例如，如果我們依伺服器 ID 欄位分組，則會以下列方式將資料分組：


| 時間 | 伺服器 ID | CPU 溫度 | 伺服器狀態 | 
| --- | --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  伺服器 1  |  80  |  Shutdown  | 
|  7/7/2020 上午 9：28：06  |  伺服器 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：05  |  伺服器 2  |  88  |  OK  | 
|  7/7/2020 上午 9：25：05  |  伺服器 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  |  Rebooting (重新開機中)  | 

具有相同伺服器 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  |  Shutdown  | 
|  伺服器 2  |  88.6  |  90  |  7/7/2020 上午 10：32：20  |  過載  | 
|  伺服器 3  |  59.6  |  62  |  7/7/2020 上午 11：34：20  |  OK  | 

此轉換可讓您從時間序列中擷取金鑰資訊，並以方便的方式顯示。

**依欄位聯結**

使用此轉換將多個結果加入單一資料表。這對於將多個時間序列結果轉換為具有共用時間欄位的單一寬資料表特別有用。

*內部聯結*

內部聯結會合併來自多個資料表的資料，其中所有資料表都會從所選欄位共用相同的值。這種類型的聯結會排除值不符合每個結果的資料。

使用此轉換將多個查詢 （在傳遞的聯結欄位或第一個資料欄上結合） 的結果合併為一個結果，並捨棄無法成功聯結的資料列。

在下列範例中，兩個查詢會傳回資料表資料。在套用內部聯結轉換之前，它會視覺化為兩個不同的資料表。

查詢 A：


| 時間 | 任務 | 執行時間 | 
| --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  節點  |  25260122  | 
|  7/7/2020 上午 11：24：20  |  postgre  |  123001233  | 
|  7/7/2020 上午 11：14：20  |  postgre  |  345001233  | 

查詢 B：


| 時間 | Server | 錯誤 | 
| --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  伺服器 1  |  15  | 
|  7/7/2020 上午 11：24：20  |  伺服器 2  |  5  | 
|  7/7/2020 上午 11：04：20  |  伺服器 3  |  10  | 

套用內部聯結轉換後的結果如下所示：


| 時間 | 任務 | 執行時間 | Server | 錯誤 | 
| --- | --- | --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  節點  |  25260122  |  伺服器 1  |  15  | 
|  7/7/2020 上午 11：24：20  |  postgre  |  123001233  |  伺服器 2  |  5  | 

*外部聯結*

外部聯結包含來自內部聯結的所有資料，以及值在每個輸入中不相符的資料列。當內部聯結在時間欄位上聯結查詢 A 和查詢 B 時，外部聯結會包含時間欄位上不相符的所有列。

在下列範例中，兩個查詢會傳回資料表資料。在套用外部聯結轉換之前，它會視覺化為兩個資料表。

查詢 A：


| 時間 | 任務 | 執行時間 | 
| --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  節點  |  25260122  | 
|  7/7/2020 上午 11：24：20  |  postgre  |  123001233  | 
|  7/7/2020 上午 11：14：20  |  postgre  |  345001233  | 

查詢 B：


| 時間 | Server | 錯誤 | 
| --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  伺服器 1  |  15  | 
|  7/7/2020 上午 11：24：20  |  伺服器 2  |  5  | 
|  7/7/2020 上午 11：04：20  |  伺服器 3  |  10  | 

套用外部聯結轉換後的結果如下所示：


| 時間 | 任務 | 執行時間 | Server | 錯誤 | 
| --- | --- | --- | --- | --- | 
|  7/7/2020 上午 11：04：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  | 

**欄位的標籤**

此轉換會將包含標籤或標籤的時間序列結果變更為資料表，其中每個標籤索引鍵和值都會包含在資料表結果中。標籤可以顯示為資料欄或資料列值。

假設查詢結果有兩個時間序列：
+ 系列 1 – 標籤 Server=Server A， Datacenter=EU
+ 系列 2 – 標籤 Server=Server B， Datacenter=EU

在**資料欄**模式中，結果如下所示：


| 時間 | Server | Datacenter | Value | 
| --- | --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  伺服器 A  |  歐盟  |  1  | 
|  7/7/2020 上午 11：34：20  |  伺服器 B  |  歐盟  |  2  | 

在「資料列」模式中，結果具有每個序列的資料表，並顯示如下所示的每個標籤值：


| label | value | 
| --- | --- | 
|  Server  |  伺服器 A  | 
|  Datacenter  |  歐盟  | 


| label | value | 
| --- | --- | 
|  Server  |  伺服器 B  | 
|  Datacenter  |  歐盟  | 

*值欄位名稱*

如果您選取伺服器做為**值欄位名稱**，則伺服器標籤的每個值都會有一個欄位。


| 時間 | Datacenter | 伺服器 A | 伺服器 B | 
| --- | --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  歐盟  |  1  |  2  | 

*合併行為*

欄位轉換器的標籤在內部是兩個單獨的轉換。第一個作用於單一序列，並將標籤擷取至欄位。第二個是合併轉換，將所有結果聯結至單一資料表。合併轉換會嘗試在所有相符欄位上加入。此合併步驟為必要步驟，無法關閉。

**注意**  
*合併*轉換可以單獨使用，如下所述。

為了說明這一點，以下範例有兩個查詢會傳回沒有重疊標籤的時間序列。
+ 系列 1 – 標籤 Server=ServerA
+ 系列 2 – 標籤 Datacenter=EU

這首先會產生這兩個資料表：


| 時間 | Server | Value | 
| --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  ServerA  |  10  | 


| 時間 | Datacenter | Value | 
| --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  歐盟  |  20  | 

合併後：


| 時間 | Server | Value | Datacenter | 
| --- | --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  ServerA  |  10  |    | 
|  7/7/2020 上午 11：34：20  |    |  20  |  歐盟  | 

**合併**

使用此轉換將多個查詢的結果合併為單一結果。這在使用資料表面板視覺化時很有用。可合併的值會合併為相同的資料列。如果共用欄位包含相同的資料，則值可合併。

在下面的範例中，有兩個查詢會傳回資料表資料。在套用轉換之前，它會視覺化為兩個不同的資料表。

查詢 A：


| 時間 | 任務 | 執行時間 | 
| --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  節點  |  25260122  | 
|  7/7/2020 上午 11：24：20  |  postgre  |  123001233  | 

查詢 B：


| 時間 | 任務 | 錯誤 | 
| --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  節點  |  15  | 
|  7/7/2020 上午 11：24：20  |  postgre  |  5  | 

以下是套用合併轉換後的結果：


| 時間 | 任務 | 錯誤 | 執行時間 | 
| --- | --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  節點  |  15  |  25260122  | 
|  7/7/2020 上午 11：24：20  |  postgre  |  5  |  123001233  | 

**組織欄位**

使用此轉換來重新命名、重新排序或隱藏查詢傳回的欄位。

**注意**  
此轉換僅適用於具有單一查詢的面板。如果您的面板有多個查詢，則必須套用外部聯結轉換或移除額外的查詢。

Grafana 會顯示查詢傳回的欄位清單。您可以：
+ 將游標暫留在欄位上，以變更欄位順序。游標會變成手，然後您可以將欄位拖曳到新的位置。
+ 按一下欄位名稱旁的眼睛圖示來隱藏或顯示欄位。
+ 在重新命名方塊中輸入新名稱來重新命名欄位。

**依值分割**

當繪製多個序列時，此轉換有助於消除對具有不同`WHERE`子句的相同資料來源進行多個查詢的需求。考慮具有下列資料的指標 SQL 資料表：


| 時間 | 區域 | Value | 
| --- | --- | --- | 
|  10/20/2022 下午 12：00：00  |  美國  |  1520  | 
|  10/20/2022 下午 12：00：00  |  歐盟  |  2936  | 
|  10/20/2022 上午 1：00：00  |  美國  |  1327  | 
|  10/20/2022 上午 1：00：00  |  歐盟  |  912  | 

在 v9.3 之前，如果您想要在相同的 TimeSeries 面板中繪製美國的紅色趨勢線和歐洲的藍色趨勢線，您可能必須將其分割為兩個查詢：

```
SELECT Time, Value FROM metrics WHERE Time > '2022-10-20' AND Region='US'
SELECT Time, Value FROM metrics WHERE Time > '2022-10-20' AND Region='EU'
```

這還需要您事先知道指標資料表中實際存在的區域。

使用*依值分割*轉換器，您現在可以發出單一查詢，並將結果分割為您選擇的一或多個資料欄 (`fields`) 中的唯一值。以下範例使用 `Region`。

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


| 時間 | 區域 | Value | 
| --- | --- | --- | 
|  10/20/2022 下午 12：00：00  |  美國  |  1520  | 
|  10/20/2022 上午 1：00：00  |  美國  |  1327  | 


| 時間 | 區域 | Value | 
| --- | --- | --- | 
|  10/20/2022 下午 12：00：00  |  歐盟  |  2936  | 
|  10/20/2022 上午 1：00：00  |  歐盟  |  912  | 

**減少**

*減少*轉換會將計算套用至影格中的每個欄位，並傳回單一值。套用此轉換時會移除時間欄位。

考慮輸入：

查詢 A：


| 時間 | 暫存 | 執行時間 | 
| --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  12.3  |  256122  | 
|  7/7/2020 上午 11：24：20  |  15.4  |  1230233  | 

查詢 B：


| 時間 | AQI | 錯誤 | 
| --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  6.5  |  15  | 
|  7/7/2020 上午 11：24：20  |  3.2  |  5  | 

還原轉換器有兩種模式：
+ **序列到資料列** - 為每個欄位建立資料列，為每個計算建立資料欄。
+ **減少欄位** - 保留現有的影格結構，但會將每個欄位摺疊成單一值。

例如，如果您使用**第一個**和**最後一個**計算搭配**序列進行資料列**轉換，則結果為：


| 欄位 | First | Last | 
| --- | --- | --- | 
|  暫存  |  12.3  |  15.4  | 
|  執行時間  |  256122  |  1230233  | 
|  AQI  |  6.5  |  3.2  | 
|  錯誤  |  15  |  5  | 

使用上次計算減少欄位會產生兩個影格，每個影格各一個資料列：

查詢 A：


| 暫存 | 執行時間 | 
| --- | --- | 
|  15.4  |  1230233  | 

查詢 B：


| AQI | 錯誤 | 
| --- | --- | 
|  3.2  |  5  | 

**依 regex 重新命名**

使用此轉換來使用規則表達式和取代模式重新命名部分查詢結果。

您可以指定僅套用至相符項目的規則表達式，以及支援回溯參考的替代模式。例如，假設您正在視覺化每個主機的 CPU 用量，並想要移除網域名稱。您可以將 regex 設定為 ，`([^\.]+)\..+`而取代模式設定為 `$1`， `web-01.example.com` 會變成 `web-01`。

**欄位的資料列**

資料列轉換為欄位轉換會將資料列轉換為不同的欄位。這非常有用，因為欄位可以個別進行樣式和設定。它也可以使用其他欄位做為動態欄位組態的來源，或將其對應至欄位標籤。然後，可以使用其他標籤為產生的欄位定義更好的顯示名稱。

此轉換包含欄位資料表，其中列出組態查詢傳回的資料中的所有欄位。此表格可讓您控制哪些欄位應映射至每個組態屬性 (\$1Use as\$1\$1 選項）。如果傳回的資料中有多個資料列，您也可以選擇要選取的值。

此轉換需要：
+ 一個欄位，用來做為欄位名稱的來源。

  根據預設，轉換會使用第一個字串欄位做為來源。您可以覆寫此預設設定，方法是為您要使用**的欄位選取使用做為資料欄的欄位名稱**。 ****
+ 一個要用作值來源的欄位。

  根據預設，轉換會使用第一個數字欄位做為來源。但是，您可以在要改用**的欄位的「使用為」欄中選取欄位值**，以覆寫此預設設定。 ****

在 中視覺化資料時很有用：
+ 量測計
+ Stat
+ 圓餅圖

*將額外的欄位映射至標籤*

如果欄位未映射到組態屬性，Grafana 會自動將其用作輸出欄位上標籤的來源 -

範例：


| 名稱 | DataCenter | Value | 
| --- | --- | --- | 
|  ServerA  |  美國  |  100  | 
|  ServerB  |  歐盟  |  200  | 

輸出：


| ServerA （標籤：DataCenter：美國） | ServerB （標籤：DataCenter：EU) | 
| --- | --- | 
|  10  |  20  | 

額外的標籤現在可用於欄位顯示名稱，提供更完整的欄位名稱。

如果您想要從一個查詢擷取組態並將其套用至另一個查詢，則應使用查詢結果轉換中的組態。

*範例*

輸入:


| 名稱 | 值 | 最多 | 
| --- | --- | --- | 
|  ServerA  |  10  |  100  | 
|  ServerB  |  20  |  200  | 
|  ServerC  |  30  |  300  | 

輸出：


| ServerA （組態：max=100) | ServerB （組態：max=200) | ServerC （組態：max=300) | 
| --- | --- | --- | 
|  10  |  20  |  30  | 

您可以看到來源資料中的每一列都會變成個別欄位。每個欄位現在也具有最大組態選項集。Min、Max、Unit 和 Thresholds 等選項都是欄位組態的一部分，如果像這樣設定，則會由視覺化使用，而不是在面板編輯器選項窗格中手動設定的任何選項。

**準備時間序列**

當資料來源以您想要使用的面板不支援的格式傳回時間序列資料時，準備時間序列轉換很有用。

此轉換透過將時間序列資料從寬格式轉換為長格式或其他方式，協助您解決此問題。

選取**多影格時間序列**選項，將時間序列資料影格從寬格式轉換為長格式。

選取**廣角時間序列**選項，將時間序列資料影格從長格式轉換為廣角格式。

**序列到資料列**

使用此轉換將多個時間序列資料查詢的結果合併為單一結果。這在使用資料表面板視覺化時很有用。

此轉換的結果將包含三個資料欄：時間、指標和值。系統會新增指標欄，讓您可以輕鬆查看指標源自哪個查詢。透過在來源查詢上定義標籤來自訂此值。

在下面的範例中，有兩個查詢會傳回時間序列資料。在套用轉換之前，它會視覺化為兩個不同的資料表。

查詢 A：


| 時間 | 溫度 | 
| --- | --- | 
|  7/7/2020 上午 11：34：20  |  25  | 
|  7/7/2020 上午 10：31：22  |  22  | 
|  7/7/2020 上午 9：30：05  |  19  | 

查詢 B：


| 時間 | 濕度 | 
| --- | --- | 
|  7/7/2020 上午 11：34：20  |  24  | 
|  7/7/2020 上午 10：32：20  |  29  | 
|  7/7/2020 上午 9：30：57  |  33  | 

以下是將 系列套用至資料列轉換後的結果。


| 時間 | 指標 | Value | 
| --- | --- | --- | 
|  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：05  |  溫度  |  19  | 

**依 排序**

此轉換會依設定的欄位排序每個影格，當核取`reverse`時，值會以相反的順序傳回。

**限制**

使用此轉換來限制顯示的列數。

在下面的範例中，我們從資料來源收到以下回應：


| 時間 | 指標 | Value | 
| --- | --- | --- | 
|  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：05  |  溫度  |  19  | 

以下是新增值為「3」的限制轉換之後的結果：


| 時間 | 指標 | Value | 
| --- | --- | --- | 
|  7/7/2020 上午 11：34：20  |  溫度  |  25  | 
|  7/7/2020 上午 11：34：20  |  濕度  |  22  | 
|  7/7/2020 上午 10：32：20  |  濕度  |  29  | 