本文介紹二進制函數的基本語法及示例。
日志服務支持如下二進制函數。
在日志服務分析語句中,表示字符串的字符必須使用單引號('')包裹,無符號包裹或被雙引號("")包裹的字符表示字段名或列名。例如:'status'表示字符串status,status或"status"表示日志字段status。
varbinary類型是二進制字符類型,varchar類型是可變長度字符類型。
函數名稱 | 語法 | 說明 | 支持SQL | 支持SPL |
from_base64(x) | 將BASE64編碼的字符串解碼為二進制類型的數據。 | √ | √ | |
from_base64url(x) | 使用URL安全字符將BASE64編碼的字符串解碼為二進制類型的數據。 | √ | × | |
from_big_endian_64(x) | 將大端模式的二進制類型的數據轉化成數字。 | √ | × | |
from_hex(x) | 將十六進制類型的數據轉化成二進制類型的數據。 | √ | √ | |
length(x) | 計算二進制類型的數據的長度。 | √ | × | |
md5(x) | 對二進制類型的數據進行MD5編碼。 | √ | √ | |
to_base64(x) | 對二進制類型的數據進行BASE64編碼。 | √ | √ | |
to_base64url(x) | 使用URL安全字符將二進制類型的數據進行BASE64編碼。 | √ | × | |
to_hex(x) | 將二進制類型的數據轉化成十六進制類型的數據。 | √ | √ | |
to_big_endian_64(x) | 將數字轉化為大端模式的二進制類型的數據。 | √ | × | |
sha1(x) | 對二進制類型的數據進行SHA1加密。 | √ | √ | |
sha256(x) | 對二進制類型的數據進行SHA256加密。 | √ | √ | |
sha512(x) | 對二進制類型的數據進行SHA512加密。 | √ | √ | |
xxhash64(x) | 對二進制類型的數據進行xxHash64加密。 | √ | √ |
from_base64函數
from_base64函數用于將BASE64編碼的字符串解碼為二進制類型的數據。
語法
from_base64(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
返回值類型
varbinary類型。
varbinary類型存在不可見字符,返回結果仍以BASE64編碼格式展示。
如果返回值是二進制類型的不可見字符,則您可以使用to_hex函數將其轉換為十六進制類型的數據。
如果返回值是二進制類型的可見字符,則您可以使用from_utf8函數將其轉換為UTF-8字符串。
示例
將BASE64編碼的字符串解碼為二進制類型的數據后,再轉換為十六進制類型的數據。
查詢和分析語句
* | SELECT to_hex(from_base64('c2xz'))
查詢和分析結果
from_base64url函數
from_base64url函數使用URL安全字符將BASE64編碼的字符串解碼為二進制類型的數據。
語法
from_base64url(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
返回值類型
varbinary類型。
varbinary類型存在不可見字符,返回結果仍以BASE64編碼格式展示。
如果返回值是二進制類型的不可見字符,則您可以使用to_hex函數將其轉換為十六進制類型的數據。
如果返回值是二進制類型的可見字符,則您可以使用from_utf8函數將其轉換為UTF-8字符串。
示例
使用URL安全字符將BASE64編碼的字符串解碼為二進制類型的數據。
查詢和分析語句
* | SELECT to_hex(from_base64url('c2xz'))
查詢和分析結果
from_big_endian_64函數
from_big_endian_64函數用于將大端模式的二進制類型的數據轉化成數字。
語法
from_big_endian_64(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
返回值類型
bigint類型。
示例
將大端模式的二進制類型的數據(10)轉化成數字。
查詢和分析語句
* | SELECT from_big_endian_64(to_big_endian_64(10))
查詢和分析結果
from_hex函數
from_hex函數將十六進制類型的數據轉化成二進制類型的數據。
語法
from_hex(x)
參數說明
參數 | 說明 |
x | 參數值為varbinary類型。 |
返回值類型
varbinary類型。
示例
將十六進制類型的數據(D74D)轉換為二進制類型的數據。
查詢和分析語句
* | SELECT from_hex('D74D')
查詢和分析結果
length函數
length函數用于計算二進制類型的數據的長度。
語法
length(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
返回值類型
bigint類型。
示例
計算region字段值的長度。
查詢和分析語句
* | SELECT length('00101000')
查詢和分析結果
md5函數
md5函數用于對二進制類型的數據進行MD5編碼。
語法
md5(x)
參數說明
參數 | 說明 |
x | 參數值為varbinary類型。 |
返回值類型
varbinary類型。
示例
對二進制類型的數據(1101)進行MD5編碼。
查詢和分析語句
* | SELECT MD5(from_base64('1101')) AS md5
查詢和分析結果
to_base64函數
to_base64函數用于對二進制類型的數據進行BASE64編碼。
語法
to_base64(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
返回值類型
varchar類型。
示例
對二進制類型的數據(10)進行BASE64編碼。
查詢和分析語句
* | SELECT to_base64(from_base64('10')) AS base64
查詢和分析結果
to_base64url函數
to_base64url函數使用URL安全字符對二進制類型的數據進行BASE64編碼。
語法
to_base64url(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
返回值類型
varchar類型。
示例
使用URL安全字符對二進制類型的數據(100)進行BASE64編碼。
查詢和分析語句
* | SELECT to_base64url(from_base64('100'))
查詢和分析結果
to_hex函數
to_hex函數用于將二進制類型的數據轉化成十六進制類型的數據。
語法
to_hex(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
返回值類型
varchar類型。
示例
將二進制類型的數據(100)轉化成十六進制類型的數據。
查詢和分析語句
* | SELECT to_hex(from_base64('100'))
查詢和分析結果
to_big_endian_64函數
to_big_endian_64函數用于將數字轉化為大端模式的二進制類型的數據。
語法
to_big_endian_64(x)
參數說明
參數 | 說明 |
x | 參數值為bigint類型。 |
返回值類型
varbinary類型。
示例
將數字0轉換為大端模式的二進制類型的數據。
查詢和分析語句
* | SELECT to_big_endian_64(0)
查詢和分析結果
sha1函數
sha1函數用于對二進制類型的數據進行SHA1加密。
語法
sha1(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
返回值類型
varbinary類型。
示例
對二進制類型的數據(1101)進行SHA1加密。
查詢和分析語句
* | SELECT sha1(from_base64('1101')) AS sha1
查詢和分析結果
sha256函數
sha256函數用于對二進制類型的數據進行SHA256加密。
語法
sha256(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
返回值類型
varbinary類型。
示例
對二進制類型的數據(1101)進行SHA256加密。
查詢和分析語句
* | SELECT sha256(from_base64('1101')) AS sha256
查詢和分析結果
sha512函數
sha512函數用于對二進制類型的數據進行SHA512加密。
語法
sha512(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
返回值類型
varbinary類型。
示例
對二進制類型的數據(1101)進行SHA512加密。
查詢和分析語句
* | SELECT sha512(from_base64('1101')) AS sha512
查詢和分析結果
xxhash64函數
xxhash64函數用于對二進制類型的數據進行xxHash64加密。
語法
xxhash64(x)
參數說明
參數 | 說明 |
x | 參數值為binary類型。 |
返回值類型
varbinary類型。
示例
對二進制類型的數據(10)進行xxhash64加密。
查詢和分析語句
* | SELECT xxhash64(from_base64('10'))
查詢和分析結果