Log Service のカラー関数の構文と使用方法について説明します。
Log Service は、次のカラー関数をサポートしています。
-
Log Service の分析ステートメントでは、文字列を単一引用符 (') で囲む必要があります。単一引用符で囲まれていない文字、または二重引用符 (") で囲まれている文字は、フィールド名または列名として扱われます。たとえば、'status' は文字列「status」を表しますが、status または "status" は status という名前のログフィールドを表します。
-
Log Service コンソールでは、カラー関数の結果が正しくレンダリングされません。代わりに、ターミナルで結果を表示してください。
-
コンソールの表示:コンソールでは色はレンダリングされず、
\e[38;5;1mなどの ANSI エスケープシーケンスがそのままの文字として表示されます。 -
ターミナルの表示
mysql> select pv, bar(pv/10.0, 10, color(0, 50, 100, rgb(255, 0, 0), rgb(0, 255, 0)), rgb(0, 255, 0)) from(select * from (VALUES (0),(1), (2), (3), (4), (5), (6), (7),(8),(9)) AS X(pv)); +------+----------------------------------------------------------------------+ | pv | _col1 | +------+----------------------------------------------------------------------+ | 0 | | | 1 | █ | | 2 | ██ | | 3 | ███ | | 4 | ████ | | 5 | █████ | | 6 | ██████ | | 7 | ███████ | | 8 | ████████ | | 9 | █████████ | +------+----------------------------------------------------------------------+ 10 rows in set (0.21 sec)
-
|
関数 |
構文 |
説明 |
SQLサポート |
SPLサポート |
|
bar(x, width) |
x に基づき、指定された width とデフォルトの赤から緑へのグラデーションを持つ棒グラフセグメントを返します。 |
√ |
× |
|
|
bar(x, width, low_color, high_color) |
x に基づき、指定された width とカスタムの開始色および終了色を持つ棒グラフセグメントを返します。 |
√ |
× |
|
|
color(string) |
色の文字列を |
√ |
× |
|
|
color(x, low, high, low_color, high_color) |
low と high の間の x の割合によって low_color と high_color を按分し、low_color と high_color の間の色を返します。 |
√ |
× |
|
|
color(y, low_color, high_color) |
y を使用して low_color と high_color の割合を指定し、low_color と high_color の間の色を返します。 |
√ |
× |
|
|
render(ブール式) |
ブール式が true の場合は緑色のチェックマーク (✓) を返し、それ以外の場合は赤色のバツ印 (✗) を返します。 |
√ |
× |
|
|
render(x, color) |
指定した色で結果をレンダリングします。 |
√ |
× |
|
|
rgb(red, green, blue) |
RGB 値に基づいて色の値を返します。 |
√ |
× |
bar 関数
bar 関数は ANSI 棒グラフを描画します。
構文
-
x に基づき、指定された width とデフォルトの赤から緑へのグラデーションを持つ棒グラフセグメントを返します。
bar(x, width) -
x に基づき、指定された width とカスタムの開始色および終了色を持つ棒グラフセグメントを返します。
bar(x, width, low_color, high_color)
パラメーター
|
パラメーター |
説明 |
|
x |
レンダリングする棒の割合。値は [0, 1] の範囲の DOUBLE 型である必要があります。 |
|
width |
完全な ANSI 棒グラフの幅。 |
|
low_color |
グラデーションの開始色の RGB 値。 |
|
high_color |
グラデーションの終了色の RGB 値。 |
戻り値のデータ型
varchar
例
-
例1:1時間ごとの 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 ) ) -
クエリと分析の結果 (コンソール):_col1 列には、
bar関数によって生成された ANSI 棒グラフが表示されます。 -
クエリと分析の結果 (ターミナル)
+-----------------+----------------------------------------------+ | GetProjectLogs | ████████ | | GetLogStoreLogs | ████████████████████████████████████████████ | +-----------------+----------------------------------------------+ 2 rows in set (8.99 sec)
-
-
例2:白から赤へのグラデーションを使用して、幅 50 の ANSI 棒グラフを描画します。
-
分析ステートメント
* | SELECT bar(1, 50, rgb(255, 255, 255), rgb(255, 0, 0)) -
クエリと分析の結果 (コンソール):
_col0列には、白から赤へのグラデーションバーとしてレンダリングされる ANSI エスケープシーケンスが含まれています。 -
クエリと分析の結果 (ターミナル)
+------+------+ | _col0 | _col0 | +------+------+ | [白から赤へのグラデーションバー] | | +------+------+ 1 row in set (0.20 sec)
-
color 関数
color 関数は、指定された値に対応する色を返します。
構文
-
色の文字列を
color型に変換します。color(string) -
low と high の間での x の割合によって 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 |
[0, 1] の範囲の DOUBLE 型の値。 |
|
low |
範囲の最小値。DOUBLE 型です。 |
|
high |
範囲の最大値。DOUBLE 型です。 |
|
low_color |
グラデーションの開始色の RGB 値。 |
|
high_color |
グラデーションの終了色の RGB 値。 |
|
string |
色の名前の文字列 (例: |
戻り値のデータ型
color
例
-
例1:色の文字列を
color型に変換します。-
分析ステートメント
* | SELECT color('#000') -
クエリと分析の結果 (コンソール):結果は
#000000です。 -
クエリと分析の結果 (ターミナル)
mysql> SELECT color('#000'); +---------+ | _col0 | +---------+ | #000000 | +---------+ 1 row in set (0.21 sec)
-
-
例2:request_length フィールドの剰余から色付きの ANSI 棒グラフを生成します。
-
分析ステートメント
*|SELECT x, bar(1, 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)) -
x列には数値が表示され、_col1列にはxに基づいて赤から緑に変化する色の棒グラフが表示されます。 -
クエリと分析の結果 (ターミナル)
| x | _col1 | |------|--------------------------------| | 1 | [色付きグラデーションバー] | | 6 | [色付きグラデーションバー] | | 4 | [色付きグラデーションバー] | | 7 | [色付きグラデーションバー] | | 7 | [色付きグラデーションバー] | | 0 | [色付きグラデーションバー] | 6 rows in set (0.21 sec)
-
-
例3:比率に応じた開始色で ANSI 棒グラフを生成します。
-
分析ステートメント
*|SELECT bar(1, 10, color(0.3, rgb(255, 255, 255), rgb(255, 0, 0)), rgb(0, 255, 0)) -
クエリと分析の結果 (コンソール):結果には、グラデーションカラーバーを表示する ANSI エスケープシーケンスが含まれています。
-
クエリと分析の結果 (ターミナル)
mysql> select bar(1, 10, color(0.3, rgb(255, 255, 255), rgb(255, 0, 0)), rgb(0, 255, 0)); +----------------------------------------------------------------------+ | _col0 | +----------------------------------------------------------------------+ | ██████████ | +----------------------------------------------------------------------+ 1 row in set (0.21 sec)
-
render 関数
render 関数は、色や記号で出力をフォーマットします。
構文
-
ブール式が true の場合は緑色のチェックマーク (✓) を返し、それ以外の場合は赤色のバツ印 (✗) を返します。
render(ブール式) -
指定した色で結果をレンダリングします。
render(x, color)
パラメーター
|
パラメーター |
説明 |
|
ブール式 |
評価するブール式。 |
|
x |
レンダリングする INTEGER 型の値。 |
|
color |
レンダリングに使用する色。このパラメーターは |
戻り値のデータ型
varchar
例
-
例1:PV カウントが 1,000 未満かどうかを確認します。true の場合は ✓ を返します。
-
分析ステートメント
* | SELECT render(count(*) < 1000) -
クエリと分析の結果 (コンソール):コンソールでは色はレンダリングされず、
\e[38;5;1mなどの ANSI エスケープシーケンスがそのままの文字として表示されます。 -
クエリと分析の結果 (ターミナル)
mysql> select render(count(*) < 1000); +------------------+ | _col0 | +------------------+ | ✓ | +------------------+ 1 row in set (0.22 sec)
-
-
例2:ログの総数をカウントし、結果を緑色でレンダリングします。
-
分析ステートメント
* | SELECT render(count(*), rgb(48, 169, 16)) -
クエリと分析の結果 (コンソール)
_col0 \e[38;5;70m1\e[0m -
クエリと分析の結果 (ターミナル):結果の「1」は緑色で表示されます。
mysql> select render(count(*), rgb(48, 169, 16)); +----------------+ | _col0 | +----------------+ | 1 | +----------------+ 1 row in set (0.21 sec)
-
rgb 関数
rgb 関数は、指定された RGB 値から色を作成します。
構文
rgb(red, green, blue)
パラメーター
|
パラメーター |
説明 |
|
red |
赤のコンポーネント。0 から 255 までの整数です。 |
|
green |
緑のコンポーネント。0 から 255 までの整数です。 |
|
blue |
青のコンポーネント。0 から 255 までの整数です。 |
戻り値のデータ型
color
例
RGB 値に基づいて色を返します。
-
分析ステートメント
*|SELECT rgb(255, 0, 0) -
クエリと分析の結果 (コンソール):
_col0列は#ff0000を返します。 -
クエリと分析の結果 (ターミナル)
select rgb(255, 0, 0); +---------+ | _col0 | +---------+ | #ff0000 | +---------+ 1 row in set (0.21 sec)