本文列举的函数与运算符可以被用在 SLS 的 SQL 或 SPL 两种语言中。
函数与运算符
您可以根据具体使用的功能、语言,在本文中查看具体的函数、运算符用法。下表中,√表示支持,×表示不支持。
SQL 是一种广泛使用的查询、分析语言,主要用于结构化良好数据的过滤、转换、统计、聚合等分析场景,可以在 SLS 日志查询、分析功能中使用。
SPL 是一种管道式查询、处理语言,主要用于数据的预处理、查询场景,可以在 SLS 的日志查询(Scan)、流式消费等功能中使用。
聚合函数
函数名称 | 说明 | 支持SQL | 支持SPL |
返回x中任意一个非空的值。 | √ | × | |
计算x中的算术平均值。 | √ | × | |
返回x中所有值按位与运算(AND)的结果。 | √ | × | |
返回x中所有值按位或运算(OR)的结果。 | √ | × | |
判断是否所有日志都满足条件。如果是,则返回true。 bool_and函数等同于every函数。 | √ | × | |
判断是否存在日志满足条件。如果存在,则返回true。 | √ | × | |
计算x的校验和。 | √ | × | |
统计所有的日志条数。 | √ | × | |
统计所有的日志条数,等同于count(*)。 | √ | × | |
统计x中值不为NULL的日志条数。 | √ | × | |
统计满足指定条件的日志条数。 | √ | × | |
判断是否所有日志都满足条件。如果是,则返回true。 every函数等同于bool_and函数。 | √ | × | |
计算x的几何平均数。 | √ | × | |
计算x的峰度。 | √ | × | |
返回一列Map数据的并集。 如果Map中存在相同的键,则返回的键值为其中任意一个键的值。 | √ | × | |
查询x中的最大值。 | √ | × | |
查询x中最大的n个值。返回结果为数组。 | √ | × | |
查询y为最大值时对应的x值。 | √ | × | |
查询最大的n个y值对应的x值,返回结果为数组。 | √ | × | |
查询x中最小值。 | √ | × | |
查询x中最小的n个值。返回结果为数组。 | √ | × | |
查询y为最小值时对应的x值。 | √ | × | |
查询最小的n个y值对应的x值。返回结果为数组。 | √ | × | |
计算x的偏度。 | √ | × | |
计算x的总值。 | √ | × |
字符串函数
函数名称 | 说明 | 支持SQL | 支持SPL |
将ASCII码转换为字符。 | √ | √ | |
将字符转换为ASCII码。 | √ | √ | |
将多个字符串拼接成一个字符串。 | √ | √ | |
将二进制字符串解码为UTF-8编码格式,并使用默认字符U+FFFD替换无效的UTF-8字符。 | √ | √ | |
将二进制字符串解码为UTF-8编码格式,并使用自定义字符串替换无效的UTF-8字符。 | √ | √ | |
计算字符串的长度。 | √ | √ | |
计算x和y之间的最小编辑距离。 | √ | × | |
将字符串转换为小写形式。 | √ | √ | |
在字符串的开头填充指定字符,直到指定长度后返回结果字符串。 | √ | √ | |
删除字符串开头的空格。 | √ | √ | |
使用NFC格式将字符串格式化。 | √ | × | |
返回目标子串在字符串中的位置。 | √ | × | |
将字符串中所匹配的字符替换为其他指定字符。 | √ | √ | |
删除字符串中匹配的字符。 | √ | √ | |
返回反向顺序的字符串。 | √ | √ | |
在字符串的尾部填充指定字符,直到指定长度后返回结果字符串。 | √ | √ | |
删除字符串中结尾的空格。 | √ | √ | |
使用指定的分隔符拆分字符串,并返回子串集合。 | √ | √ | |
通过指定的分隔符拆分字符串并使用limit限制字符串拆分的个数,然后返回拆分后的子串集合。 | √ | √ | |
使用指定的分隔符拆分字符串,并返回指定位置的内容。 | √ | √ | |
使用指定的第一个分隔符拆分字符串,然后再使用指定的第二个分隔符进行第二次拆分。 | √ | √ | |
返回目标子串在字符串中的位置。与position(sub_string in x)函数等价。 | √ | √ | |
返回字符串中指定位置的子串,并指定子串长度。 | √ | √ | |
返回字符串中指定位置的子串。 | √ | √ | |
将字符串转换为UTF-8编码格式。 | √ | √ | |
删除字符串中开头和结尾的空格。 | √ | √ | |
将字符串转化为大写形式。 | √ | √ |
日期和时间函数
函数名称 | 说明 | 支持SQL | 支持SPL |
返回当前日期。 | √ | × | |
返回当前时间和时区。 | √ | × | |
返回当前日期、时间和时区。 | √ | × | |
返回当前时区。 | √ | × | |
返回日期和时间表达式中的日期部分。 | √ | × | |
将timestamp类型的日期和时间表达式转化为指定格式的日期和时间表达式。 | √ | √ | |
将日期和时间字符串转换为指定格式的timestamp类型的日期和时间表达式。 | √ | √ | |
将ISO8601格式的日期表达式转化为date类型的日期表达式。 | √ | × | |
将ISO8601格式的日期和时间表达式转化为timestamp类型的日期和时间表达式。 | √ | × | |
将UNIX时间戳转化为无时区的timestamp类型的日期和时间表达式。 | √ | √ | |
将UNIX时间戳转化为带时区的timestamp类型的日期和时间表达式。 | √ | × | |
将UNIX时间戳转化为带时区的timestamp类型的日期和时间表达式,其中hours和minutes为时区偏移量。 | √ | × | |
返回本地时间。 | √ | × | |
返回本地日期和时间。 | √ | × | |
返回当前日期和时间。 now函数等同于current_timestamp函数。 | √ | × | |
将date类型或timestamp类型的日期和时间表达式转换为ISO8601格式的日期和时间表达式。 | √ | × | |
将timestamp类型的日期和时间表达式转化成UNIX时间戳。 | √ | √ | |
提取日期和时间表达式中的天数,按月计算。 day函数等同于day_of_month函数。 | √ | × | |
提取日期和时间表达式中的天数,按月计算。 day_of_month函数等同于day函数。 | √ | × | |
提取日期和时间表达式中的天数,按周计算。 day_of_week函数等同于dow函数。 | √ | √ | |
提取日期和时间表达式中的天数,按年计算。 day_of_year函数等同于doy函数。 | √ | √ | |
提取日期和时间表达式中的天数,按周计算。 dow函数等同于day_of_week函数。 | √ | √ | |
提取日期和时间表达式中的天数,按年计算。 doy函数等同于day_of_year函数。 | √ | √ | |
通过指定的field,提取日期和时间表达式中的日期或时间部分。 | √ | × | |
提取日期和时间表达式中的小时数,按24小时制计算。 | √ | √ | |
提取日期和时间表达式中的分钟数。 | √ | √ | |
提取日期和时间表达式中的月份。 | √ | √ | |
计算目标日期所属的季度。 | √ | √ | |
提取日期和时间表达式中的秒数。 | √ | √ | |
计算时区的小时偏移量。 | √ | × | |
计算时区的分钟偏移量。 | √ | × | |
计算目标日期是在一年中的第几周。 week函数等同于week_of_year函数。 | √ | × | |
计算目标日期是在一年中的第几周。 week_of_year函数等同于week函数。 | √ | × | |
提取目标日期中的年份。 | √ | √ | |
提取目标日期在ISO周日历中的年份。 year_of_week函数等同于yow函数。 | √ | √ | |
提取目标日期在ISO周日历中的年份。 yow函数等同于year_of_week函数。 | √ | √ | |
根据您指定的时间单位截断日期和时间表达式,并按照毫秒、秒、分钟,小时、日、月或年对齐。 | √ | × | |
在x上加上N个时间单位(unit)。 | √ | √ | |
返回两个时间表达式之间的时间差值,例如计算x和y之间相差几个时间单位(unit)。 | √ | √ | |
补全您查询时间窗口内缺失的数据。 | √ | × |
JSON函数
函数名称 | 说明 | 支持SQL | 支持SPL |
判断JSON数组中是否包含某个值。 | √ | √ | |
获取JSON数组中某个下标对应的元素。 | √ | × | |
计算JSON数组中元素的数量。 | √ | √ | |
从JSON对象或JSON数组中提取一组JSON值(数组或对象)。 | √ | √ | |
从JSON对象或JSON数组中提取一组标量值(字符串、整数或布尔值)。类似于json_extract函数。 | √ | √ | |
把JSON类型转化成字符串类型。 | √ | √ | |
把字符串类型转化成JSON类型。 | √ | √ | |
计算JSON对象或数组中元素的数量。 | √ | √ |
正则式函数
函数名称 | 说明 | 支持SQL | 支持SPL |
提取目标字符串中符合正则表达式的子串,并返回所有子串的合集。 | √ | × | |
提取目标字符串中符合正则表达式的子串,然后返回与目标捕获组匹配的子串合集。 | √ | × | |
提取并返回目标字符串中符合正则表达式的第一个子串。 | √ | √ | |
提取目标字符串中符合正则表达式的子串,然后返回与目标捕获组匹配的第一个子串。 | √ | √ | |
判断目标字符串是否符合正则表达式。 | √ | √ | |
删除目标字符串中符合正则表达式的子串,返回未被删除的子串。 | √ | √ | |
替换目标字符串中符合正则表达式的子串,返回被替换后的字符串。 | √ | √ | |
使用正则表达式分割目标字符串,返回被分割后的子串合集。 | √ | × |
同比与环比函数
函数名称 | 说明 | 支持SQL | 支持SPL |
对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。 | √ | × | |
对比当前时间周期内的计算结果与n1、n2、n3秒之前时间周期内的计算结果。 | √ | × | |
对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。 重要 ts_compare函数必须按照时间列进行分组(GROUP BY)。 | √ | × | |
对比当前时间周期内的计算结果与n1、n2、n3秒之前时间周期内的计算结果。 | √ | × |
数组函数和运算符
函数名称 | 说明 | 支持SQL | 支持SPL |
返回数组中的第x个元素。 | √ | × | |
以数组形式返回x中的所有值。 | √ | × | |
删除数组中重复的元素。 | √ | √ | |
计算两个数组的差集。 | √ | √ | |
计算两个数组的交集。 | √ | √ | |
使用指定的连接符将数组中的元素拼接为一个字符串。如果数组中包含null元素,则null元素将被忽略。 | √ | √ | |
使用指定的连接符将数组中的元素拼接为一个字符串。如果数组中包含null元素,则null元素将被替换为null_replacement。 | √ | √ | |
获取数组中的最大值。 | √ | √ | |
获取数组中的最小值。 | √ | √ | |
获取指定元素的下标,下标从1开始。如果指定元素不存在,则返回0。 | √ | √ | |
删除数组中指定的元素。 | √ | √ | |
对数组元素进行升序排序。如果有null元素,则null元素排在最后。 | √ | √ | |
对矩阵进行转置,即提取二维数组中索引相同的元素组成一个新的二维数组。 | √ | × | |
计算两个数组的并集。 | √ | × | |
计算数组中元素的个数。 | √ | √ | |
将多个数组拼接为一个数组。 | √ | × | |
判断数组中是否包含指定元素。如果包含,则返回true。 | √ | × | |
返回数组中的第y个元素。 | √ | × | |
结合Lambda表达式,用于过滤数组中的元素。只返回满足Lambda表达式的元素。 | √ | √ | |
把将二维数组转换为一维数组。 | √ | × | |
根据Lambda表达式中的定义,对数组中的各个元素进行相加计算,然后返回计算结果。 | √ | √ | |
对数组中的元素进行反向排列。 | √ | √ | |
通过指定的起始值返回一个数组,其元素为起始值范围内一组连续且递增的值。递增间隔为默认值1。 | √ | √ | |
通过指定的起始值返回一个数组,其元素为起始值范围内一组连续且递增的值。自定义递增间隔。 | √ | √ | |
对数组元素进行随机排列。 | √ | √ | |
获取数组的子集。 | √ | √ | |
将Lambda表达式应用到数组的每个元素中。 | √ | √ | |
将多个数组合并为一个二维数组,且各个数组中下标相同的元素组成一个新的数组。 | √ | √ | |
根据Lambda表达式中的定义将两个数组合并为一个数组。 | √ | × |
Map映射函数和运算符
函数名称 | 说明 | 支持SQL | 支持SPL |
获取Map中目标键的值。 | √ | × | |
计算Map的大小。 | √ | × | |
获取Map中目标键的值。 | √ | √ | |
对查询和分析结果进行分组,返回结果为JSON格式。 | √ | × | |
对查询和分析结果进行分组,返回结果为多行多列格式。 | √ | × | |
返回一个空Map。 | √ | √ | |
将两个数组映射为一个Map。 | √ | √ | |
将x和y映射为一个Map。x为Map中的键,y为Map中的键值。当y存在多个值时,随机提取一个值作为键值。 | √ | × | |
将多个Map合并为一个Map。 | √ | √ | |
结合Lambda表达式,用于过滤Map中的元素。 | √ | √ | |
提取Map中所有的键,并以数组形式返回。 | √ | √ | |
提取Map中所有键的值,并以数组形式返回。 | √ | √ | |
将x和y映射为一个Map。x为Map中的键,y为Map中的键值,键值为数组格式。当y存在多个值时,提取所有的值作为键值。 | √ | × |
数学计算函数
函数名称 | 说明 | 支持SQL | 支持SPL |
计算x的绝对值。 | √ | √ | |
计算x的反余弦。 | √ | √ | |
计算x的反正弦。 | √ | √ | |
计算x的反正切。 | √ | √ | |
计算x和y相除的结果的反正切。 | √ | √ | |
计算x的立方根。 | √ | √ | |
对x进行向上取整数。 ceil函数是ceiling函数的别名。 | √ | √ | |
对x进行向上取整数。 | √ | √ | |
计算x的余弦。 | √ | √ | |
计算x的双曲余弦。 | √ | √ | |
计算x和y之间的余弦相似度。 | √ | × | |
将弧度转换为度。 | √ | √ | |
返回自然底数e的值。 | √ | √ | |
计算自然底数e的x次幂。 | √ | × | |
对x进行向下取整数。 | √ | √ | |
根据BASE编码将x转为y进制的数字。 | √ | √ | |
计算x的自然对数。 | √ | √ | |
返回正无穷的数值。 | √ | √ | |
判断x是否为NaN。 | √ | √ | |
计算x以2为底的对数。 | √ | √ | |
计算x以10为底的对数。 | √ | √ | |
计算x以y为底的对数。 | √ | × | |
计算x与y相除的余数。 | √ | √ | |
返回一个NaN值。 | √ | √ | |
返回π值,精确到小数点后15位。 | √ | √ | |
计算x的y次幂。 pow函数是power函数的别名。 | √ | √ | |
计算x的y次幂。 | √ | √ | |
将度转换为弧度。 | √ | √ | |
返回随机数。 | √ | √ | |
返回[0,1)之间的随机数。 | √ | √ | |
返回[0,x)之间的随机数。 | √ | √ | |
对x进行四舍五入取整数。 | √ | √ | |
对x进行四舍五入且保留n位小数。 | √ | √ | |
返回x的符号,通过1、0、-1表示。 | √ | × | |
计算x的正弦。 | √ | √ | |
计算x的平方根。 | √ | √ | |
计算x的正切。 | √ | √ | |
计算x的双曲正切。 | √ | √ | |
根据BASE编码将x转为y进制的字符串。 | √ | × | |
截断x的小数部分。 | √ | √ | |
将一段数值范围划分成大小相同的多个Bucket,然后返回x所属的Bucket。 | √ | × | |
使用数组指定Bucket的范围,然后返回x所属的Bucket。 | √ | × |
数学统计函数
函数名称 | 说明 | 支持SQL | 支持SPL |
计算x和y的相关度。计算结果范围为[0,1]。 | √ | × | |
计算x和y的总体协方差。 | √ | × | |
计算x和y的样本协方差。 | √ | × | |
计算x的样本标准差。与stddev_samp函数同义。 | √ | × | |
计算x的样本标准差。 | √ | × | |
计算x的总体标准差。 | √ | × | |
计算x的样本方差。与var_samp函数同义。 | √ | × | |
计算x的样本方差。 | √ | × | |
计算x的总体方差。 | √ | × | |
根据输入点 | √ | × | |
根据输入点 | √ | × | |
用于计算贝塔分布的累积分布函数。P(N <= v; α, β),其中α和β是贝塔分布的参数。 | √ | × | |
用于计算二项分布的累积分布函数。P(N <= v),其中x表示实验的次数,y表示单次实验成功的概率。 | √ | × | |
用于计算柯西分布的累积分布函数。P(N <= v; x, y),其中x表示分布峰值位置的位置参数,y是尺度参数。 | √ | × | |
用于计算卡方分布的累积分布函数。P(N <= v; k),其中k是卡方分布服从的自由度。 | √ | × | |
计算贝塔分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v; α, β)的结果为p。 | √ | × | |
计算二项分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v)的结果为p。 | √ | × | |
计算柯西分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v; x, y)的结果为p。 | √ | × | |
计算卡方分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v; k)的结果为p。 | √ | × | |
计算拉普拉斯分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v; μ, b)的结果为p。 | √ | × | |
计算正态分布的逆累积分布函数。即求v的值,使得累积分布函数P(N < v; x, y)的结果为p。 | √ | × | |
计算泊松分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v; λ)的结果为p。 | √ | × | |
计算韦布分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v; x, y)的结果为p。 | √ | × | |
计算拉普拉斯分布的累积分布函数。P(N <= v; μ, b),其中μ 是位置参数,b 是尺度参数。 | √ | × | |
计算正态分布的累积分布函数。P(N < v; x, y),其中x和y分别表示正态分布的均值和标准差。 | √ | × | |
计算泊松分布的累积分布函数。P(N <= v; λ),其中λ表示随机事件发生的平均概率。 | √ | × | |
计算韦布分布的累积分布函数。P(N <= v; x, y),其中x表示比例参数,y是形状参数。 | √ | × |
类型转换函数
函数名称 | 说明 | 支持SQL | 支持SPL |
转换x的数据类型。 使用cast函数转换数据类型时,如果某个值转换失败,将终止整个查询与分析操作。 | √ | √ | |
转换x的数据类型。 使用try_cast函数转换数据类型时,如果某个值转换失败,该值返回NULL,并跳过该值继续处理。 说明 日志中可能有脏数据,建议使用try_cast函数,避免因脏数据造成整个查询与分析操作失败。 | √ | × | |
返回x的数据类型。 | √ | × |
窗口函数
函数名称 | 说明 | 支持SQL | 支持SPL |
所有聚合函数都支持在窗口函数中使用。聚合函数列表请参见聚合函数。 | √ | × | |
统计窗口分区内各个值的累计分布。即计算窗口分区内值小于等于当前值的行数占窗口内总行数的比例。返回值范围为(0,1]。 | √ | × | |
窗口分区内值的排名。相同值拥有相同的排名,排名是连续的,例如有两个相同值的排名为1,则下一个值的排名为2。 | √ | × | |
将窗口分区内数据按照顺序分成n组。 | √ | × | |
计算窗口分区内各行的百分比排名。 | √ | × | |
窗口分区内值的排名。相同值拥有相同的排名,排名不是连续的,例如有两个相同值的排名为1,则下一个值的排名为3。 | √ | × | |
窗口分区内值的排名。每个值拥有唯一的序号,从1开始。三个相同值的排名为1、2、3。 | √ | × | |
返回各个窗口分区内第一行的值。 | √ | × | |
返回各个窗口分区内最后一行的值。 | √ | × | |
返回窗口分区内位于当前行上方第offset行的值。如果不存在该行,则返回default_value。 | √ | × | |
返回窗口分区内位于当前行下方第offset行的值。如果不存在该行,则返回default_value。 | √ | × | |
返回窗口分区中第offset行的值。 | √ | × |
IP函数
函数名称 | 说明 | 支持SQL | 支持SPL |
分析目标IP地址所属城市。 返回结果为城市的中文名称。 | √ | × | |
分析目标IP地址所属城市。 返回结果为城市的行政区划代码。 | √ | × | |
分析目标IP地址所属城市的经纬度。此函数返回的是城市经纬度,每个城市只有一个经纬度。 | √ | × | |
分析目标IP地址所属国家或地区。 返回结果为国家或地区的中文名称。 | √ | × | |
分析目标IP地址所属国家或地区。 返回结果为国家或地区的代码。 | √ | × | |
分析目标IP地址所属国家或地区。 返回结果为国家或地区的代码。 | √ | × | |
判断目标IP地址是内网地址还是外网地址。 | √ | × | |
分析目标IP地址所在位置的经纬度。 | √ | × | |
分析目标IP地址所对应的网络运营商。 | √ | × | |
分析目标IP地址所属州。 返回结果为州的中文名称。 | √ | × | |
分析目标IP地址所属州。 返回结果为州的行政区划代码。 | √ | × | |
获取目标IP地址的前缀。 | √ | × | |
判断目标网段是否为某网段的子网。 | √ | × | |
判断目标IP地址是否在某网段内。 | √ | × | |
获取IP网段中的最大IP地址。 | √ | × | |
获取IP网段中的最小IP地址。 | √ | × | |
获取IP网段范围。 | √ | × | |
分析目标IPv6地址所属城市的名称。 | √ | × | |
分析目标IPv6地址所属城市的行政区划代码。 | √ | × | |
分析目标IPv6地址所属城市的经纬度。 | √ | × | |
分析目标IPv6地址所属国家或地区。 | √ | × | |
分析目标IPv6地址所属国家或地区的代码。 | √ | × | |
判断目标IPv6地址是内网地址还是外网地址。 | √ | × | |
分析目标IPv6地址所对应的网络运营商。 | √ | × | |
分析目标IPv6地址所属省份。 | √ | × | |
分析目标IPv6地址所属省份的行政区划代码。 | √ | × |
URL函数
函数名称 | 说明 | 支持SQL | 支持SPL |
对URL进行编码。 | √ | √ | |
对URL进行解码。 | √ | √ | |
从URL中提取Fragment信息。 | √ | √ | |
从URL中提取Host信息。 | √ | √ | |
从URL的查询部分中提取指定参数的值。 | √ | √ | |
从URL中提取访问路径信息。 | √ | √ | |
从URL中提取端口信息。 | √ | √ | |
从URL中提取协议信息。 | √ | √ | |
从URL中提取查询部分的信息。 | √ | √ |
估算函数
函数名称 | 说明 | 支持SQL | 支持SPL |
估算x中不重复值的个数,默认存在2.3%的标准误差。 | √ | × | |
估算xx中不重复值的个数,支持自定义标准误差。 | √ | × | |
对x进行正序排列,返回大约处于percentage位置的x。 | √ | × | |
对x进行正序排列,返回大约处于percentage01、percentage02位置的x。 | √ | × | |
对x和权重的乘积进行正序排列,返回大约处于percentage位置的x。 | √ | × | |
对x和权重的乘积进行正序排列,返回大约处于percentage01、percentage02位置的x。 | √ | × | |
对x和权重的乘积进行正序排列,返回大约处于percentage位置的x。支持设置返回结果的准确度。 | √ | × | |
按照bucket数量(直方图列数),统计x的近似直方图,返回结果为JSON类型。 | √ | × | |
按照bucket数量(直方图列数),统计x的近似直方图,返回结果为JSON类型。支持对x设置权重。 | √ | × | |
按照bucket数量(直方图列数),统计x的近似直方图,返回结果为多行多列格式。 | √ | × |
二进制函数
函数名称 | 说明 | 支持SQL | 支持SPL |
将BASE64编码的字符串解码为二进制类型的数据。 | √ | √ | |
使用URL安全字符将BASE64编码的字符串解码为二进制类型的数据。 | √ | × | |
将大端模式的二进制类型的数据转化成数字。 | √ | × | |
将十六进制类型的数据转化成二进制类型的数据。 | √ | √ | |
计算二进制类型的数据的长度。 | √ | × | |
对二进制类型的数据进行MD5编码。 | √ | √ | |
对二进制类型的数据进行BASE64编码。 | √ | ||
使用URL安全字符将二进制类型的数据进行BASE64编码。 | √ | × | |
将二进制类型的数据转化成十六进制类型的数据。 | √ | √ | |
将数字转化为大端模式的二进制类型的数据。 | √ | × | |
对二进制类型的数据进行SHA1加密。 | √ | √ | |
对二进制类型的数据进行SHA256加密。 | √ | √ | |
对二进制类型的数据进行SHA512加密。 | √ | √ | |
对二进制类型的数据进行xxHash64加密。 | √ | √ |
位运算函数
函数名称 | 说明 | 支持SQL | 支持SPL |
统计x中1的个数。 | √ | √ | |
以二进制形式对x和y进行与运算。 | √ | √ | |
以二进制形式对x的所有位进行取反运算。 | √ | √ | |
以二进制形式对x和y进行或运算。 | √ | √ | |
以二进制形式对x和y进行异或运算。 | √ | √ |
空间几何函数
函数名称 | 说明 | 支持SQL | 支持SPL |
将一个空间几何体转变为WKT格式的文本。 | √ | × | |
返回空间几何体的边界。 | √ | × | |
返回距离指定空间几何体一定距离的空间几何体。 | √ | × | |
返回两个空间几何体不同点的集合。 | √ | × | |
返回空间几何体的最小边界框。 | √ | × | |
返回空间几何体的外环(线段形式)。 | √ | × | |
返回两个空间几何体的交集点。 | √ | × | |
返回两个空间几何体的不同点,然后组成一个新的空间几何体。 | √ | × | |
判断第一个空间几何体是否包含第二个空间几何体(边界可存在交集)。如果包含,则返回true。 | √ | × | |
判断两个空间几何体是否存在相同的内部点。如果存在,则返回true。 | √ | × | |
判断两个空间几何体是否没有任何交集。 如果没有,则返回true。 | √ | × | |
判断两个空间几何体是否完全相同。如果是,则返回true。 | √ | × | |
判断两个空间几何体的平面投影是否存在共同点。如果是,则返回true。 | √ | × | |
判断两个空间几何体的维度是否相同。如果两个空间几何体的维度相同且不是包含关系,则返回true。 | √ | × | |
判断两个空间几何体是否相关。如果是,则返回true。 | √ | × | |
判断两个空间几何体是否只有边界存在关联,没有共同的内部点。如果是,则返回true。 | √ | × | |
判断第一个空间几何体是否完全在第二个空间几何体内部(边界无交集)。如果是,则返回true。 | √ | × | |
使用欧几里得测量法计算空间几何体在二维平面上的投影面积。 | √ | × | |
返回空间几何实体的中心点。 | √ | × | |
返回空间几何体的坐标维度。 | √ | × | |
返回空间几何实体的固有维度,必须小于或等于坐标维度。 | √ | × | |
计算两个空间几何体之间的最小距离。 | √ | × | |
返回线段中的最后一个点。 | √ | × | |
判断输入的空间几何体是否封闭。如果是,则返回true。 | √ | × | |
判断输入的空间几何体是否为空。如果是,则返回true。 | √ | × | |
判断输入的空间几何体是否为闭合的简单线段(环)。如果是,则返回true。 | √ | × | |
使用欧几里得测量法计算线段的二维投影长度。如果存在多条线段,则返回所有线段的长度之和。 | √ | × | |
返回空间几何体中点的个数。 | √ | × | |
计算空间几何体中内部环的数量。 | √ | × | |
返回线段中的第一个点。 | √ | × | |
返回输入点的X轴坐标。 | √ | × | |
返回空间几何体的第一个最大的X轴坐标。 | √ | × | |
返回空间几何体的第一个最小的X轴坐标。 | √ | × | |
返回输入点的Y轴坐标。 | √ | × | |
返回空间几何体的第一个最大的Y轴坐标。 | √ | × | |
返回几何体的第一个最小的Y轴坐标。 | √ | × | |
通过X坐标、Y坐标和缩放级别构造一个Bing图块。 | √ | × | |
通过四叉树键构造一个Bing图块。 | √ | × | |
通过经纬度和缩放级别构造一个Bing图块。 | √ | × | |
返回目标Bing图块对应的X坐标和Y坐标。 | √ | × | |
返回目标Bing图块的多边形格式。 | √ | × | |
返回目标Bing图块的四叉树键。 | √ | × | |
返回目标Bing图块的缩放级别。 | √ | × |
地理函数
函数名称 | 说明 | 支持SQL | 支持SPL |
对纬度和经度进行geohash编码。 | √ | × |
颜色函数
函数名称 | 说明 | 支持SQL | 支持SPL |
通过width指定整条ANSI条形图的宽度,其中该ANSI条形图的起始颜色为红色(low_color),结束颜色为绿色(high_color)。然后通过x截取其中一段ANSI条形图并返回。 | √ | × | |
通过width指定整条ANSI条形图的宽度,其中该ANSI条形图的起始颜色和结束颜色为自定义颜色。然后通过x截取其中一段ANSI条形图并返回。 | √ | × | |
将颜色字符串转换为color类型。 | √ | × | |
通过判断x在low和high之间的占比指定low_color和high_color的份量,然后返回处于low_color和high_color之间的一个颜色。 | √ | × | |
通过y指定low_color和high_color的份量,然后返回处于low_color和high_color之间的一个颜色。 | √ | × | |
通过颜色渲染返回结果。布尔表达式为真时,返回绿色勾;否则返回红色叉。 | √ | × | |
通过自定义的颜色渲染返回结果。 | √ | × | |
通过RGB值返回一个颜色值。 | √ | × |
HyperLogLog函数
函数名称 | 说明 | 支持SQL | 支持SPL |
估算x中不重复值的个数,最大标准误差默认为0.01625。 | √ | × | |
将HyperLogLog类型的内容转换为bigint类型。 | √ | × | |
返回一个HyperLogLog类型的空值。最大标准误差默认为0.01625。 | √ | × | |
聚合计算所有的HyperLogLog值。 | √ | × |
比较运算符
运算符 | 说明 | 支持SQL | 支持SPL |
比较x和y的大小关系。如果逻辑成立,则返回true。 | √ | √ | |
x满足所有条件时,返回true。 | √ | × | |
x满足任意一个条件时,返回true。 | √ | × | |
x处在y和z之间时,返回true。 | √ | √ | |
(x IS DISTINCT FROM y)x不等于y时,返回true。 | √ | × | |
(x IS NOT DISTINCT FROM y)x等于y时,返回true。 | √ | × | |
匹配字符串中指定的字符模式。字符串区分大小写。 | √ | √ | |
x满足任意一个条件时,返回true。 | √ | × | |
查询x、y中的最大值。 | √ | × | |
查询x、y中的最小值。 | √ | × | |
(x IS NULL)x为null时,返回true。 | √ | × | |
(x IS NOT NULL)x不为null时,返回true。 | √ | × |
逻辑运算符
运算符 | 说明 | 支持SQL | 支持SPL |
x和y的值都为true时,返回结果为true。 | √ | √ | |
x和y中任意一个的值为true时,返回结果为true。 | √ | √ | |
x的值为false时,返回结果为true。 | √ | √ |
单位换算函数
函数名称 | 说明 | 支持SQL | 支持SPL |
对数据量单位进行换算,系统自动判断最优的换算单位,返回使用最优单位表示的数据量。返回类型为string。例如将1024 KB换算为1 MB,1024 MB换算为1 GB。 | √ | × | |
对数据量单位进行换算,返回使用指定单位表示的数据量。返回类型为string。 | √ | × | |
对Byte单位进行换算,返回使用指定单位表示的数据量。返回类型为string。 | √ | × | |
对数据量单位进行换算,返回以Byte为单位的数据量。返回类型为decimal。 | √ | × | |
对数据量单位进行换算,返回以Byte为单位的数据量。返回类型为double。 | √ | × | |
对数据量单位进行换算,返回以KB为单位的数据量。返回类型为double。 | √ | × | |
对数据量单位进行换算,返回以MB为单位的数据量。返回类型为double。 | √ | × | |
对数据量单位进行换算,返回以GB为单位的数据量。返回类型为double。 | √ | × | |
对数据量单位进行换算,返回以TB为单位的数据量。返回类型为double。 | √ | × | |
对数据量单位进行换算,返回以PB为单位的数据量。返回类型为double。 | √ | × | |
对以秒为单位的时间间隔进行格式化,转换为可读的字符串类型。 | √ | × | |
对时间间隔进行格式化,转换为 | √ | × | |
对时间间隔单位进行换算,转换为以天为单位的时间间隔。 | √ | × | |
对时间间隔单位进行换算,转换为以小时为单位的时间间隔。 | √ | × | |
对时间间隔单位进行换算,转换为以微秒为单位的时间间隔。 | √ | × | |
对时间间隔单位进行换算,转换为以毫秒为单位的时间间隔。 | √ | × | |
对时间间隔单位进行换算,转换为以分钟为单位的时间间隔。 | √ | × | |
对时间间隔单位进行换算,系统自动判断最优的换算单位,返回使用最优单位表示的时间间隔。 | √ | × | |
对时间间隔单位进行换算,转换为以纳秒为单位的时间间隔。 | √ | × | |
对时间间隔单位进行换算,转换为以秒为单位的时间间隔。 | √ | × |
窗口漏斗函数
函数名称 | 说明 | 支持SQL | 支持SPL |
在滑动的时间窗口中搜索事件链并计算事件链中发生的最大连续的事件数。 | √ | × |
Lambda表达式
日志服务支持您在SQL分析语句和SPL语句中定义Lambda表达式,并将该表达式传递给指定函数,丰富函数的表达。更多信息,请参见Lambda表达式。
条件表达式
表达式 | 说明 | 支持SQL | 支持SPL |
通过条件判断,对数据进行归类。 | √ | √ | |
通过条件判断,对数据进行归类。 | √ | √ | |
返回多个表达式中第一个非NULL的值。 | √ | √ | |
比较两个表达式的值是否相等。如果相等,则返回null,否则返回第一个表达式的值。 | √ | × | |
捕获异常信息,使得系统继续执行查询和分析操作。 | √ | √ |
向量计算函数
表达式 | 说明 | 支持SQL | 支持SPL |
余弦相似度的取值范围是[-1, 1]:
| √ | × | |
计算两个向量的内积。 | √ | × | |
计算两个向量的欧式距离。 | √ | × | |
计算一个向量的范数。范数相当于向量的长度。 | √ | × | |
计算一个向量的所有元素之和。 | √ | × | |
计算一个向量的平均值。 | √ | × | |
计算一个向量的方差。方差代表向量元素偏离均值的平均波动幅度的平方和,描述了该向量中元素分布的离散程度。 | √ | × | |
计算一个向量的标准差,标准差是方差的正平方根。方差描述了数据点围绕均值的波动大小。方差越大,表示数据点越分散;方差越小,表示数据点越集中。 | √ | × | |
计算两个向量相加的结果。 结合向量加减法和向量缩放,可以做任意线性变换。 | √ | × | |
计算两个向量相减的结果。 结合向量的加减法和向量的缩放,可以做任意线性变换。 | √ | × | |
结合向量的加减法和向量的缩放,可以做任何的线性变换。 | √ | × |