Log Service提供單位換算函數,協助您換算資料量或時間間隔的單位。本文介紹單位換算函數的基本文法及樣本。
Log Service支援如下單位換算函數。
|
函數分類 |
函數名稱 |
文法 |
說明 |
支援SQL |
支援SPL |
|
資料量單位轉換函式 |
convert_data_size(x) |
對資料量單位進行換算,系統自動判斷最優的換算單位,返回使用最優單位表示的資料量。傳回型別為string。例如將1024 KB換算為1 MB,1024 MB換算為1 GB。 |
√ |
× |
|
|
convert_data_size(x, unit) |
對資料量單位進行換算,返回使用指定單位表示的資料量。傳回型別為string。 |
√ |
× |
||
|
format_data_size(x, unit) |
對Byte單位進行換算,返回使用指定單位表示的資料量。傳回型別為string。 |
√ |
× |
||
|
parse_data_size(x) |
對資料量單位進行換算,返回以Byte為單位的資料量。傳回型別為decimal。 |
√ |
× |
||
|
to_data_size_B(x) |
對資料量單位進行換算,返回以Byte為單位的資料量。傳回型別為double。 |
√ |
× |
||
|
to_data_size_KB(x) |
對資料量單位進行換算,返回以KB為單位的資料量。傳回型別為double。 |
√ |
× |
||
|
to_data_size_MB(x) |
對資料量單位進行換算,返回以MB為單位的資料量。傳回型別為double。 |
√ |
× |
||
|
to_data_size_GB(x) |
對資料量單位進行換算,返回以GB為單位的資料量。傳回型別為double。 |
√ |
× |
||
|
to_data_size_TB(x) |
對資料量單位進行換算,返回以TB為單位的資料量。傳回型別為double。 |
√ |
× |
||
|
to_data_size_PB(x) |
對資料量單位進行換算,返回以PB為單位的資料量。傳回型別為double。 |
√ |
× |
||
|
時間間隔單位轉換函式 |
format_duration(x) |
對以秒為單位的時間間隔進行格式化,轉換為可讀的字串類型。 |
√ |
× |
|
|
parse_duration(x) |
對時間間隔進行格式化,轉換為 |
√ |
× |
||
|
to_days(x) |
對時間間隔單位進行換算,轉換為以天為單位的時間間隔。 |
√ |
× |
||
|
to_hours(x) |
對時間間隔單位進行換算,轉換為以小時為單位的時間間隔。 |
√ |
× |
||
|
to_microseconds(x) |
對時間間隔單位進行換算,轉換為以微秒為單位的時間間隔。 |
√ |
× |
||
|
to_milliseconds(x) |
對時間間隔單位進行換算,轉換為以毫秒為單位的時間間隔。 |
√ |
× |
||
|
to_minutes(x) |
對時間間隔單位進行換算,轉換為以分鐘為單位的時間間隔。 |
√ |
× |
||
|
to_most_succinct_time_unit(x) |
對時間間隔單位進行換算,系統自動判斷最優的換算單位,返回使用最優單位表示的時間間隔。 |
√ |
× |
||
|
to_nanoseconds(x) |
對時間間隔單位進行換算,轉換為以納秒為單位的時間間隔。 |
√ |
× |
||
|
to_seconds(x) |
對時間間隔單位進行換算,轉換為以秒為單位的時間間隔。 |
√ |
× |
convert_data_size函數
convert_data_size函數用於對資料量單位進行換算。
文法
-
對資料量單位進行換算,系統自動判斷最優的換算單位,返回使用最優單位表示的資料量。
convert_data_size(x) -
對資料量單位進行換算,返回使用指定單位表示的資料量。
convert_data_size(x, unit)
參數說明
|
參數 |
說明 |
|
x |
資料量,參數值為string類型。 |
|
unit |
資料的儲存單位,取值範圍為KB、MB、GB、PB、TB、EB、ZB、YB。 |
傳回值類型
string類型。
樣本
-
樣本1:將1200 KB換算為其他資料單位的值。
-
查詢和分析語句
* | SELECT convert_data_size('1200KB') -
查詢和分析結果返回結果為
1.17MB。
-
-
樣本2:body_bytes_sent欄位表示發送給用戶端的位元組數,單位為Byte。通過convert_data_size函數將欄位值換算為以KB為單位的值。
-
查詢和分析語句
* | select convert_data_size(format_data_size(body_bytes_sent, 'KB')) -
查詢和分析結果中,
_col0列傳回值分別為1.74KB、11.38KB、4.12KB、1.19KB,表示將body_bytes_sent欄位值經format_data_size轉換為KB單位後再通過convert_data_size得到的資料大小。
-
format_data_size函數
format_data_size函數用於對Byte單位進行換算,返回使用指定單位表示的資料量。
文法
format_data_size(x, unit)
參數說明
|
參數 |
說明 |
|
x |
以Byte為單位的資料量,參數值為bigint類型。 |
|
unit |
資料的儲存單位,取值範圍為KB、MB、GB、PB、TB、EB、ZB、YB。 |
傳回值類型
string類型。
樣本
-
樣本1:body_bytes_sent欄位表示發送給用戶端的位元組數,單位為Byte。通過format_data_size函數將欄位值換算為以KB為單位的值。
-
欄位範例
body_bytes_sent:4619 -
查詢和分析語句
* | select format_data_size(body_bytes_sent, 'KB') -
查詢和分析結果中,
_col0列傳回值分別為 7.33KB、2.19KB、4.16KB、4.84KB。
-
-
樣本2:body_bytes_sent欄位表示發送給用戶端的位元組數,單位為Byte。通過sumFunction Compute總位元組數,再通過format_data_size函數將總位元組數換算為以GB為單位的值。
-
欄位範例
body_bytes_sent:4619 -
查詢和分析語句
* | select format_data_size(sum(body_bytes_sent), 'GB') -
查詢和分析結果:
_col0列的值為0.73GB,表示body_bytes_sent欄位值的總和經格式化後為 0.73 GB。
-
parse_data_size函數
parse_data_size函數用於對資料量單位進行換算,返回以Byte為單位的資料量。
文法
parse_data_size(x)
參數說明
|
參數 |
說明 |
|
x |
資料量,參數值為string類型。 |
傳回值類型
decimal類型。
樣本
將1024 KB換算為以Byte為單位的值。
-
查詢和分析語句
*| SELECT parse_data_size('1024KB') -
查詢和分析結果傳回值為
1048576,即 1024 KB 轉換為位元組後的數值。
to_data_size_B函數
to_data_size_B函數用於對資料量單位進行換算,返回以Byte為單位的資料量。
文法
to_data_size_B(x)
參數說明
|
參數 |
說明 |
|
x |
資料量,參數值為string類型。 |
傳回值類型
double類型。
樣本
將1024 KB換算為以Byte為單位的值。
-
查詢和分析語句
* | select to_data_size_B('1024KB') -
查詢和分析結果返回結果為
1048576.0,即 1024 KB 對應 1048576.0 Bytes。
to_data_size_KB函數
to_data_size_KB函數用於對資料量單位進行換算,返回以KB為單位的資料量。
文法
to_data_size_KB(x)
參數說明
|
參數 |
說明 |
|
x |
資料量,參數值為string類型。 |
傳回值類型
double類型。
樣本
body_bytes_sent欄位表示發送給用戶端的位元組數,單位為Byte。通過to_data_size_KB函數將欄位值換算為以KB為單位的值。
-
查詢和分析語句
* | select to_data_size_KB(format_data_size(body_bytes_sent, 'KB')) -
查詢和分析結果返回
_col0列,值依次為 3.52、4.25、3.2、1.69。
to_data_size_MB函數
to_data_size_MB函數用於對資料量單位進行換算,返回以MB為單位的資料量。
文法
to_data_size_MB(x)
參數說明
|
參數 |
說明 |
|
x |
資料量,參數值為string類型。 |
傳回值類型
double類型。
樣本
body_bytes_sent欄位表示發送給用戶端的位元組數,單位為Byte。通過to_data_size_MB函數將總位元組數換算為以MB為單位的值。
-
查詢和分析語句
* | select to_data_size_MB(format_data_size(sum(body_bytes_sent), 'KB')) -
查詢和分析結果返回
814.49,即body_bytes_sent總和轉換為 MB 後的數值。
to_data_size_GB函數
to_data_size_GB函數用於對資料量單位進行換算,返回以GB為單位的資料量。
文法
to_data_size_GB(x)
參數說明
|
參數 |
說明 |
|
x |
資料量,參數值為string類型。 |
傳回值類型
double類型。
樣本
body_bytes_sent欄位表示發送給用戶端的位元組數,單位為Byte。通過to_data_size_GB函數將總位元組數換算為以GB為單位的值。
-
查詢和分析語句
* | select to_data_size_GB(format_data_size(sum(body_bytes_sent), 'KB')) -
查詢和分析結果返回
0.79,即發送位元組總量(body_bytes_sent)轉換為 GB 後的值。
to_data_size_TB函數
to_data_size_TB函數用於對資料量單位進行換算,返回以TB為單位的資料量。
文法
to_data_size_TB(x)
參數說明
|
參數 |
說明 |
|
x |
資料量,參數值為string類型。 |
傳回值類型
double類型。
樣本
body_bytes_sent欄位表示發送給用戶端的位元組數,單位為Byte。通過to_data_size_TB函數將總位元組數換算為以TB為單位的值。
-
查詢和分析語句
* | select to_data_size_TB(format_data_size(sum(body_bytes_sent), 'KB')) -
查詢和分析結果返回單列
_col0,值為0.01,表示body_bytes_sent總和轉換為 TB 後的結果。
to_data_size_PB函數
to_data_size_PB函數用於對資料量單位進行換算,返回以PB為單位的資料量。
文法
to_data_size_PB(x)
參數說明
|
參數 |
說明 |
|
x |
資料量,參數值為string類型。 |
傳回值類型
double類型。
樣本
將1048576 GB換算為以PB為單位的值。
-
查詢和分析語句
*| SELECT to_data_size_PB('1048576GB') -
查詢和分析結果返回結果為
1.0,表示 1048576 GB 等於 1.0 PB。
format_duration函數
format_duration函數用於對以秒為單位的時間間隔進行格式化,轉換為可讀的字串類型。
文法
format_duration(x)
參數說明
|
參數 |
說明 |
|
x |
時間間隔,參數值為double類型。 |
傳回值類型
string類型。
樣本
將235秒轉換為3 minutes, 55 seconds格式。
-
查詢和分析語句
* | SELECT format_duration(235) -
查詢和分析結果:返回結果 _col0 列的值為
3 minutes, 55 seconds,表示將 235 秒格式化為時間間隔字串。
parse_duration函數
parse_duration函數用於對時間間隔進行格式化,轉換為0 00:00:00.000格式。
文法
parse_duration(x)
參數說明
|
參數 |
說明 |
|
x |
時間間隔,參數值為string類型。 |
傳回值類型
interval類型。
樣本
將1340毫秒轉換為0 00:00:01.340格式。
-
查詢和分析語句
* | SELECT parse_duration('1340ms') -
查詢和分析結果返回結果為
0 00:00:01.340,即將 1340 毫秒轉換為標準時間間隔格式。
to_days函數
to_days函數用於對時間間隔單位進行換算,轉換為以天為單位的時間間隔。
文法
to_days(x)
參數說明
|
參數 |
說明 |
|
x |
時間間隔,參數值為varchar類型。 |
傳回值類型
double類型。
樣本
將192848s轉換為以天為單位的時間間隔。
-
查詢和分析語句
*| SELECT to_days('192848s') -
查詢和分析結果中,
_col0的值為2,表示192848秒轉換為天數後結果為2天。
to_hours函數
to_hours函數用於對時間間隔單位進行換算,轉換為以小時為單位的時間間隔。
文法
to_hours(x)
參數說明
|
參數 |
說明 |
|
x |
時間間隔,參數值為varchar類型。 |
傳回值類型
double類型。
樣本
將1.2天轉換為以小時為單位的時間間隔。
-
查詢和分析語句
* | SELECT to_hours('1.2d') -
查詢和分析結果返回結果為
29。
to_microseconds函數
to_microseconds函數用於對時間間隔單位進行換算,轉換為以微秒為單位的時間間隔。
文法
to_microseconds(x)
參數說明
|
參數 |
說明 |
|
x |
時間間隔,參數值為varchar類型。 |
傳回值類型
double類型。
樣本
將3600納秒轉換為以微秒為單位的時間間隔。
-
查詢和分析語句
* | SELECT to_microseconds('3600ns') -
查詢和分析結果為
4(列名為_col0)。
to_milliseconds函數
to_milliseconds函數用於對時間間隔單位進行換算,轉換為以毫秒為單位的時間間隔。
文法
to_milliseconds(x)
參數說明
|
參數 |
說明 |
|
x |
時間間隔,參數值為varchar類型。 |
傳回值類型
double類型。
樣本
將1.2秒轉換為以毫秒為單位的時間間隔。
-
查詢和分析語句
* | SELECT to_milliseconds('1.2s') -
查詢和分析結果:返回結果
_col0的值為1200,即 1.2 秒對應 1200 毫秒。
to_minutes函數
to_minutes函數用於對時間間隔單位進行換算,轉換為以分鐘為單位的時間間隔。
文法
to_minutes(x)
參數說明
|
參數 |
說明 |
|
x |
時間間隔,參數值為varchar類型。 |
傳回值類型
double類型。
樣本
將1.2小時轉換為以分鐘為單位的時間間隔。
-
查詢和分析語句
* | SELECT to_minutes('1.2h') -
查詢和分析結果返回結果為
72。
to_most_succinct_time_unit函數
to_most_succinct_time_unit函數用於對時間間隔單位進行換算,系統自動判斷最優的換算單位,返回使用最優單位表示的時間。
文法
to_most_succinct_time_unit(x)
參數說明
|
參數 |
說明 |
|
x |
時間間隔,參數值為varchar類型。 |
傳回值類型
varchar類型。
樣本
將1340ms轉換為以秒為單位的時間間隔。
-
查詢和分析語句
* | SELECT to_most_succinct_time_unit('1340ms') -
查詢和分析結果為
1.34s。
to_nanoseconds函數
to_nanoseconds函數用於對時間間隔單位進行換算,轉換為以納秒為單位的時間間隔。
文法
to_nanoseconds(x)
參數說明
|
參數 |
說明 |
|
x |
時間間隔,參數值為varchar類型。 |
傳回值類型
double類型。
樣本
將125毫秒轉換為以納秒為單位的時間間隔。
-
查詢和分析語句
* | SELECT to_nanoseconds('125ms') -
查詢和分析結果返回結果為
125000000。
to_seconds函數
to_seconds函數用於對時間間隔單位進行換算,轉換為以秒為單位的時間間隔。
文法
to_seconds(x)
參數說明
|
參數 |
說明 |
|
x |
時間間隔,參數值為varchar類型。 |
傳回值類型
double類型。
樣本
將1340毫秒轉換為以秒為單位的時間間隔。
-
查詢和分析語句
* | SELECT to_seconds('1340ms') -
查詢和分析結果返回結果為
1。