本文介绍二进制函数的基本语法及示例。
日志服务支持如下二进制函数。
在日志服务分析语句中,表示字符串的字符必须使用单引号('')包裹,无符号包裹或被双引号("")包裹的字符表示字段名或列名。例如:'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'))
查询和分析结果