本文介紹顏色函數的基本語法及示例。
日志服務支持如下顏色函數。
在日志服務分析語句中,表示字符串的字符必須使用單引號('')包裹,無符號包裹或被雙引號("")包裹的字符表示字段名或列名。例如:'status'表示字符串status,status或"status"表示日志字段status。
在日志服務控制臺上使用顏色函數時,查詢和分析結果的可視化效果并不理想,推薦您在終端服務器上展示查詢和分析結果。
控制臺展示效果
終端展示效果
函數名稱 | 語法 | 說明 | 支持SQL | 支持SPL |
bar(x, width) | 通過width指定整條ANSI條形圖的寬度,其中該ANSI條形圖的起始顏色為紅色(low_color),結束顏色為綠色(high_color)。然后通過x截取其中一段ANSI條形圖并返回。 | √ | × | |
bar(x, width, low_color, high_color) | 通過width指定整條ANSI條形圖的寬度,其中該ANSI條形圖的起始顏色和結束顏色為自定義顏色。然后通過x截取其中一段ANSI條形圖并返回。 | √ | × | |
color(string) | 將顏色字符串轉換為color類型。 | √ | × | |
color(x, low, high, low_color, high_color) | 通過判斷x在low和high之間的占比指定low_color和high_color的份量,然后返回處于low_color和high_color之間的一個顏色。 | √ | × | |
color(y, low_color, high_color) | 通過y指定low_color和high_color的份量,然后返回處于low_color和high_color之間的一個顏色。 | √ | × | |
render(boolean expression) | 通過顏色渲染返回結果。布爾表達式為真時,返回綠色勾;否則返回紅色叉。 | √ | × | |
render(x, color) | 通過自定義的顏色渲染返回結果。 | √ | × | |
rgb(red, green, blue) | 通過RGB值返回一個顏色值。 | √ | × |
bar函數
bar函數用于繪制一條ANSI條形圖。
語法
通過width指定整條ANSI條形圖的寬度,其中該ANSI條形圖的起始顏色為紅色(low_color),結束顏色為綠色(high_color)。然后通過x截取其中一段ANSI條形圖并返回。
bar(x, width)
通過width指定整條ANSI條形圖的寬度,其中該ANSI條形圖的起始顏色和結束顏色為自定義顏色。然后通過x截取其中一段ANSI條形圖并返回。
bar(x, width, low_color, high_color)
參數說明
參數 | 說明 |
x | 用于指定返回的條形圖占整條ANSI條形圖的比例。參數值為double類型,取值范圍為[0,1]。 |
width | 整條ANSI條形圖的寬度。 |
low_color | 顏色梯度中起始顏色的RGB值。 |
high_color | 顏色梯度中結束顏色的RGB值。 |
返回值類型
varchar類型。
示例
示例1:計算1小時PV占總PV的比值,然后通過ANSI條形圖表示計算結果。
查詢和分析語句
* | SELECT Method, bar(pv/m,100) FROM( SELECT *, max(pv) over() AS m FROM( SELECT Method, count(1) AS pv FROM internal-operation_log WHERE __date__ > '2021-09-10 00:00:00' AND __date__ < '2021-09-10 01:00:00' GROUP BY Method ) )
查詢和分析結果(控制臺)
查詢和分析結果(終端)
示例2:使用白色和紅色繪制一條ANSI條形圖,寬度為50。
查詢和分析語句
* | SELECT bar(1,50,rgb(255,255,255),rgb(255,0,0))
查詢和分析結果(控制臺)
查詢和分析結果(終端)
color函數
color函數用于獲取目標值對應的顏色。
語法
將顏色字符串轉換為color類型。
color(string)
通過判斷x在low和high之間的占比指定low_color和high_color的份量,然后返回處于low_color和high_color之間的一個顏色。
color(x, low, high, low_color, high_color)
通過y指定low_color和high_color的份量,然后返回處于low_color和high_color之間的一個顏色。
color(y, low_color, high_color)
參數說明
參數 | 說明 |
x | 參數值為double類型。 |
y | 參數值為double類型,取值范圍為[0,1]。 |
low | 最小值,參數值為double類型。 |
high | 最大值,參數值為double類型。 |
low_color | 顏色梯度中起始顏色的RGB值。 |
high_color | 顏色梯度中結束顏色的RGB值。 |
string | 字符串,可選值為black、red、green、yellow、blue、magenta、cyan、white或CSS樣式的RGB值(例如#000)。 |
返回值類型
color類型。
示例
示例1:將顏色字符串轉換為color類型。
查詢和分析語句
* | SELECT color('#000')
查詢和分析結果(控制臺)
查詢和分析結果(終端)
示例2:對request_length字段值進行取余計算并將計算結果傳遞給color函數,color函數根據該計算結果返回一個顏色,然后將該顏色傳遞給bar函數,最后通過bar函數繪制出相應的ANSI條形圖。
查詢和分析語句
*|SELECT x,bar(10,10, color(x, 0,10, rgb(255,0,0), rgb(0,255,0)), rgb(0,255,0)) FROM(SELECT *FROM (SELECT request_length%10 x FROM log))
查詢和分析結果(控制臺)
查詢和分析結果(終端)
示例3:通過color函數返回一種顏色,然后傳遞給bar函數,繪制出相應的ANSI條形圖。
查詢和分析語句
*|SELECT bar(10,10, color(0.3, rgb(255,255,255), rgb(255,0,0)), rgb(0,255,0))
查詢和分析結果(控制臺)
查詢和分析結果(終端)
render函數
render函數通過顏色渲染返回結果。
語法
通過顏色渲染返回結果。布爾表達式為真時,返回綠色勾;否則返回紅色叉。
render(boolean expression)
通過自定義的顏色渲染返回結果。
render(x, color)
參數說明
參數 | 說明 |
boolean expression | 布爾表達式。 |
x | X坐標,參數值為integer類型。 |
color | 顏色,參數值為color類型。 |
返回值類型
varchar類型。
示例
示例1:通過count函數統計網站訪問PV,然后通過render函數判斷PV是否小于1000。如果小于,則返回綠色勾。
查詢和分析語句
* | SELECT render(count(*)<1000)
查詢和分析結果(控制臺)
查詢和分析結果(終端)
示例2:通過count函數統計日志總數,然后使用綠色渲染計算結果。
查詢和分析語句
* | SELECT render(count(*),rgb(48,169,16))
查詢和分析結果(控制臺)
查詢和分析結果(終端)
rgb函數
rgb函數會根據RGB值返回一個顏色。
語法
rgb(red, green, blue)
參數說明
參數 | 說明 |
red | 顏色中的紅色份量,取值范圍為[0,255],參數值為integer類型。 |
green | 顏色中的綠色份量,取值范圍為[0,255],參數值為integer類型。 |
blue | 顏色中的藍色份量,取值范圍為[0,255],參數值為integer類型。 |
返回值類型
color類型。
示例
根據RGB值返回一個顏色。
查詢和分析語句
*|SELECT rgb(255,0,0)
查詢和分析結果(控制臺)
查詢和分析結果(終端)