云服务器内容精选

  • 参数说明 表1 参数说明 参数 是否必选 参数类型 说明 a 是 DOUBLE、BIGINT、DECIMAL、STRING类型。 参数a的格式包括浮点数格式、整数格式、字符串格式。 代表需要被四舍五入的值。 该命令与传统四舍五入方式的区别在于,对数字5进行操作时,由前一位数字来决定,前一位数字为奇数,增加一位,前一位数字为偶数,舍弃一位。 参数a非DOUBLE类型时,会隐式转换为DOUBLE类型后参与运算。 d 否 DOUBLE、BIGINT、DECIMAL、STRING类型。 代表需要四舍五入到的位数。 参数d非INT类型时,会隐式转换为INT类型后参与运算。
  • 参数说明 表1 参数说明 参数 是否必选 参数类型 说明 source 是 STRING 待替换的字符 pattern 是 STRING STRING类型常量或正则表达式。待匹配的模型。更多正则表达式编写规范,请参见正则表达式规范。pattern为空串时返回报错。 replace_string 是 STRING 将匹配pattern的字符串替换后的字符串。 occurrence 否 BIGINT 必须大于等于1,表示将第occurrence次匹配的字符串替换为replace_string,为1时表示替换所有匹配的子串。为其他类型或小于1时,返回报错。默认值为1。
  • 示例代码 返回 2222。 select regexp_replace1('abcd', '[a-z]', '2'); 返回 2bcd。 select regexp_replace1('abcd', '[a-z]', '2', 1); 返回 a2cd。 select regexp_replace1('abcd', '[a-z]', '2', 2); 返回 ab2d。 select regexp_replace1('abcd', '[a-z]', '2', 3); 返回 abc2。 select regexp_replace1('abcd', '[a-z]', '2', 4);
  • 示例代码 返回静态数据示例2023-08*16。 select to_char('2023-08-16 10:54:36', '静态数据示例yyyy-mm*dd'); 返回20230816。 select to_char('2023-08-16 10:54:36', 'yyyymmdd'); 返回NULL。 select to_char('静态数据示例2023-08-16', '静态数据示例yyyy-mm*dd'); 返回NULL。 select to_char('20230816', 'yyyy'); 返回NULL。 select to_char('2023-08-16 10:54:36', null);
  • 参数说明 表1 参数说明 参数 是否必选 参数类型 说明 date 是 DATE 或 STRING 代表需要处理的日期。 格式为: yyyy-mm-dd yyyy-mm-dd hh:mi:ss yyyy-mm-dd hh:mi:ss.ff3 format 是 STRING 代表需要转换的目标日期格式。 STRING类型常量,不支持日期扩展格式。 format:格式为代表年月日时分秒的时间单位与任意字符的组合,其中: yyyy代表年份。 mm代表月份。 dd代表天。 hh代表小时。 mi代表分钟。 ss代表秒。
  • 示例代码 为便于理解函数的使用方法,本文为您提供源数据,基于源数据提供函数相关示例。创建表salary,并添加数据,命令示例如下: CREATE EXTERNAL TABLE salary ( dept_id STRING, -- 部⻔ userid string, -- 员⼯ID sal INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' stored as textfile; 添加数据如下: d1,user1,1000 d1,user2,2000 d1,user3,3000 d2,user4,4000 d2,user5,5000 示例 返回每个部门的名称 当 dept_id 的值为d1时,返回 DLI ;值为d2时,返回 MRS ;其他场景返回Others。 select dept, decode1(dept, 'd1', 'DLI', 'd2', 'MRS', 'Others') as result from sale_detail; 返回结果: d1 DLI d2 MRS d3 Others d4 Others d5 Others
  • 参数说明 表1 参数说明 参数 是否必选 参数类型 说明 expression 是 所有数据类型。 要比较的表达式。 search 是 与expression一致。 与expression进行比较的搜索项。 result 是 所有数据类型。 search和expression的值匹配时的返回值。 default 否 与result一致。 如果所有的搜索项都不匹配,则返回default值,如果未指定,则返回NULL。
  • 示例代码 连接ARRAY数组array(1, 2)和array(2, -2)。命令示例如下。 返回[1, 2, 2, -2]。 select concat(array(1, 2), array(2, -2)); 任一ARRAY数组为NULL。命令示例如下。 返回NULL。 select concat(array(10, 20), null); 连接字符串ABC和DEF。命令示例如下。 返回ABCDEF。 select concat('ABC','DEF'); 输入为空。命令示例如下。 返回NULL。 select concat(); 任一字符串输入为NULL。命令示例如下。 返回NULL。 select concat('abc', 'def', null);
  • 示例代码 计算所有仓库的平均商品数(items)。命令示例如下: select avg(items) from warehouse; 返回结果如下: _c0 100.0 与group by配合使用,计算每个仓库中所有商品的平均库存。命令示例如下: select warehourseId, avg(items) from warehourse group by warehourseId; 返回结果如下: warehouseId _c1 city1 155 city2 101 city3 194
  • 语法格式 1 2 3 4 5 CREATE FUNCTION [db_name.]function_name AS class_name [USING resource,...] resource: : JAR file_uri 或 1 2 3 4 5 CREATE OR REPLACE FUNCTION [db_name.]function_name AS class_name [USING resource,...] resource: : JAR file_uri
  • 分析窗口函数概览 DLI所支持的分析窗口函数如分析窗口函数介绍所示。 表1 分析窗口函数介绍 函数 命令格式 返回值 功能简介 cume_dist cume_dist() DOUBLE 用于求累计分布,相当于求分区中大于等于或小于等于当前行的数据在分区中的占比。 first_value first_value(col) 参数的数据类型 返回结果集中某列第一条数据的值。 last_value last_value(col) 参数的数据类型 返回结果集中某列最后一条数据的值。 lag lag (col,n,DEFAULT) 参数的数据类型 用于统计窗口内往上第n行值。第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)。 lead lead (col,n,DEFAULT) 参数的数据类型 用于统计窗口内往下第n行值。第一个参数为列名,第二个参数为往下第n行(可选,默认为1),第三个参数为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL)。 percent_rank percent_rank() DOUBLE 为窗口的ORDER BY子句所指定列中值的返回秩,但以介于0和1之间的小数形式表示,计算方法为 (RANK - 1)/(- 1)。 rank rank() INT 计算一个值在一组值中的排位。如果出现并列的情况,RANK函数会在排名序列中留出空位。 row_number row_number() over (order by col_1[,col_2 ...]) INT 为每一行指派一个唯一的编号。 父主题: 分析窗口函数
  • 日期函数概览 DLI所支持的日期函数如表1所示。 表1 日期/时间函数 函数 命令格式 返回值 功能简介 add_months add_months(string start_date, int num_months) STRING 返回start_date在num_months个月之后的date。 current_date current_date() DATE 返回当前日期,如2016-07-04。 current_timestamp current_timestamp() TIMESTAMP 返回TIMESTAMP类型的时间戳。 date_add date_add(string startdate, int days) STRING或DATE 给定时间,在此基础上加上指定的时间段。 dateadd dateadd(string date, bigint delta, string datepart) STRING或DATE dateadd函数用于按照指定的单位datepart和幅度delta修改date的值。 date:必填。日期值,string类型。 使用的时间格式为yyyy-mm-dd hh:mi:ss,例如2021-08-28 00:00:00。 delta:必填。修改幅度,BIGINT类型。 datepart:必填。指定修改的单位,STRING类型常量。 date_sub date_sub(string startdate, int days) STRING 给定时间,在此基础上减去指定的时间段。 date_format date_format(string date, string format) STRING 用于将date按照format指定的格式转换为字符串。 datediff datediff(string date1, string date2) BIGINT datediff函数用于计算两个时间date1、date2的日期差值。 datediff1 datediff1(string date1, string date2, string datepart) BIGINT datediff1函数用于计算两个时间date1、date2的差值,将差值以指定的时间单位datepart表示。 datepart datepart(string date,string datepart) BIGINT 取日期中符合指定时间单位的字段值。 datetrunc datetrunc (string date, string datepart) STRING datetrunc函数用于计算将日期date按照datepart指定的时间单位进行截取后的日期值。 date:必填。格式为yyyy-mm-dd或yyyy-mm-dd hh:mi:ss。 datepart:必填。STRING类型常量。支持扩展的日期格式。 day/dayofmonth day(string date)、 dayofmonth(string date) INT 返回指定时间的日期。 from_unixtime from_unixtime(bigint unixtime) STRING 将时间戳转换为时间格式,格式为“yyyy-MM-dd HH:mm:ss”或“yyyyMMddHHmmss.uuuuuu”。 例如:select FROM_UNIXTIME(1608135036,'yyyy-MM-dd HH:mm:ss') from_utc_timestamp from_utc_timestamp(string timestamp, string timezone) TIMESTAMP 将UTC的时间戳转化为timezone所对应的时间戳。 getdate getdate() STRING 获取当前系统时间。 hour hour(string date) INT 返回指定时间的小时,范围为0到23。 isdate isdate(string date , string format) BOOLEAN date:必填。STRING类型。会隐式转换为STRING类型后参与运算。 format:必填。STRING类型常量,不支持日期扩展格式。如果format中出现多余的格式串,则只取第一个格式串对应的日期数值,其余的会被视为分隔符。例如isdate("1234-yyyy", "yyyy-yyyy"),会返回True。 last_day last_day(string date) DATE 返回date所在月份的最后一天,格式为yyyy-MM-dd,如2015-08-31。 lastday lastday(string date) STRING lastday函数用于返回date所在月的最后一天,返回值STRING类型,格式为yyyy-mm-dd hh:mi:ss。 minute minute(string date) INT 返回指定时间的分钟,范围为0到59。 month month(string date) INT 返回指定时间的月份,范围为1至12月。 months_between months_between(string date1, string date2) DOUBLE 返回date1与date2之间的月份差。 next_day next_day(string start_date, string day_of_week) DATE 返回start_date之后最接近day_of_week的日期,格式为yyyy-MM-dd,day_of_week表示一周内的星期(如Monday、FRIDAY)。 quarter quarter(string date) INT 返回该date/timestamp/string所在的季度,如quarter('2015-04-01')=2。 second second(string date) INT 返回指定时间的秒,范围为0到59。 to_char to_char(string date, string format) STRING 将日期按照指定格式转换为字符串。 to_date to_date(string timestamp) DATE 返回时间中的年月日,例如:to_date("1970-01-01 00:00:00") = "1970-01-01" to_date1 to_date1(string date, string format) STRING 返回STRING类型,格式为yyyy-mm-dd hh:mi:ss。date或format值为NULL时,返回NULL。 将指定格式的字符串转换为日期值。 to_utc_timestamp to_utc_timestamp(string timestamp, string timezone) TIMESTAMP 将timezone所对应的时间戳转换为UTC的时间戳。 trunc trunc(string date, string format) DTAE 将date按照特定的格式进行清零操作,支持格式为MONTH/MON/MM, YEAR/YYYY/YY,如trunc('2015-03-17', 'MM') = 2015-03-01。 unix_timestamp unix_timestamp(string timestamp, string pattern) BIGINT 如果不带参数的调用,返回一个Unix时间戳(从“1970-01-01 00:00:00”到现在的秒数)为无符号整数。 weekday weekday (string date) INT 返回日期值是当前周的第几天。 weekofyear weekofyear(string date) INT 返回指定日期是一年中的第几周,范围为0到53。 year year(string date) INT 返回指定日期中的年份。 父主题: 日期函数
  • 数学函数概览 DLI所支持的数学函数如数学函数所示。 表1 数学函数 函数 命令格式 返回值 功能简介 abs abs(DOUBLE a) DOUBLE或INT 取绝对值。 acos acos(DOUBLE a) DOUBLE 返回给定角度a的反余弦值。 asin asin(DOUBLE a) DOUBLE 返回给定角度a的反正弦值。 atan atan(DOUBLE a) DOUBLE 返回给定角度a的反正切值。 bin bin(BIGINT a) STRING 返回二进制格式。 bround bround(DOUBLE a) DOUBLE HALF_EVEN模式四舍五入,与传统四舍五入方式的区别在于,对数字5进行操作时,由前一位数字来决定,前一位数字为奇数,增加一位,前一位数字为偶数,舍弃一位。例如:bround(7.5)=8.0,bround(6.5)=6.0 bround bround(DOUBLE a, INT d) DOUBLE 保留小数点后d位,d位之后数字以HALF_EVEN模式四舍五入。与传统四舍五入方式的区别在于,对数字5进行操作时,由前一位数字来决定,前一位数字为奇数,增加一位,前一位数字为偶数,舍弃一位。例如:bround(8.25, 1) = 8.2, bround(8.35, 1) = 8.4。 cbrt cbrt(DOUBLE a) DOUBLE 返回a的立方根。 ceil ceil(DOUBLE a) DECIMAL 将参数向上舍入为最接近的整数。例如:ceil(21.2),返回22。 conv conv(BIGINT num, INT from_base, INT to_base), conv(STRING num, INT from_base, INT to_base) STRING 进制转换,将from_base进制下的num转化为to_base进制下面的数。例如:将5从十进制转换为四进制,conv(5,10,4)=11。 cos cos(DOUBLE a) DOUBLE 返回给定角度a的余弦值。 cot1 cot1(DOUBLE a) DOUBLE或DECIMAL类型 计算number的余切函数,输入为弧度值。 degress degrees(DOUBLE a) DOUBLE 返回弧度所对应的角度。 e e() DOUBLE 返回e的值。 exp exp(DOUBLE a) DOUBLE 返回e的a次方。 factorial factorial(INT a) BIGINT 返回a的阶乘。 floor floor(DOUBLE a) BIGINT 对给定数据进行向下舍入最接近的整数。例如:floor(21.2),返回21。 greatest greatest(T v1, T v2, ...) DOUBLE 返回列表中的最大值。 hex hex(BIGINT a) hex(STRING a) STRING 将整数或字符转换为十六进制格式。 least least(T v1, T v2, ...) DOUBLE 返回列表中的最小值。 ln ln(DOUBLE a) DOUBLE 返回给定数值的自然对数。 log log(DOUBLE base, DOUBLE a) DOUBLE 返回给定底数及指数返回自然对数。 log10 log10(DOUBLE a) DOUBLE 返回给定数值的以10为底自然对数。 log2 log2(DOUBLE a) DOUBLE 返回给定数值的以2为底自然对数。 median median(colname) DOUBLE或DECIMAL 计算中位数。 negative negative(INT a) DECIMAL或INT 返回a的相反数,例如negative(2),返回-2。 percentlie percentile(colname,DOUBLE p) DOUBLE或ARRAY 计算精确百分位数,适用于小数据量。先对指定列升序排列,然后取精确的第p位百分数。p必须在0和1之间。 percentlie_approx percentile_approx (colname,DOUBLE p) DOUBLE或ARRAY 计算近似百分位数,适用于大数据量。先对指定列升序排列,然后取第p位百分数对应的值。 pi pi() DOUBLE 返回pi的值。 pmod pmod(INT a, INT b) DECIMAL或INT 返回a除b的余数的绝对值。 positive positive(INT a) DECIMAL、DOUBLE或INT 返回a的值,例如positive(2),返回2。 pow pow(DOUBLE a, DOUBLE p), power(DOUBLE a, DOUBLE p) DOUBLE 返回a的p次幂。 radians radians(DOUBLE a) DOUBLE 返回角度所对应的弧度。 rand rand(INT seed) DOUBLE 返回大于或等于0且小于1的平均分布随机数。如果指定种子seed,则会得到一个稳定的随机数序列。 round round(DOUBLE a) DOUBLE 四舍五入。 round round(DOUBLE a, INT d) DOUBLE 小数部分d位之后数字四舍五入,例如round(21.263,2),返回21.26。 shiftleft shiftleft(BIGINT a, INT b) INT 有符号左边移,将a的二进制数按位左移b位。 shiftright shiftright(BIGINT a, INT b) INT 有符号右移,将a的二进制数按位右移b位。 shiftrightunsigned shiftrightunsigned(BIGINT a, INT b) INT 无符号右移,将a的二进制数按位右移b位。 sign sign(DOUBLE a) DOUBLE 返回a所对应的正负号,a为正返回1.0,a为负,返回-1.0,否则返回0.0。 sin sin(DOUBLE a) DOUBLE 返回给定角度a的正弦值。 sqrt sqrt(DOUBLE a) DOUBLE 返回数值的平方根。 tan tan(DOUBLE a) DOUBLE 返回给定角度a的正切值。 父主题: 数学函数
  • 配置说明 异步调用目标的配置说明参见表2,异步调用目标的事件内容参见如下示例: { "timestamp": "2020-08-20T12:00:00.000Z+08:00", "request_context": { "request_id": "1167bf8c-87b0-43ab-8f5f-26b16c64f252", "function_urn": "urn:fss:xx-xxxx-x:xxxxxxx:function:xxxx:xxxx:latest", "condition": "", "approximate_invoke_count": 0 }, "request_payload": "", "response_context": { "status_code": 200, "function_error": "" }, "response_payload": "hello world!" } 表2 配置参数说明 参数 说明 timestamp 调用时间戳。 request_context 请求上下文。 request_context.request_id 异步调用的请求ID。 request_context. function_urn 异步执行的函数URN。 request_context.condition 调用错误类别。 request_context. approximate_invoke_count 异步调用的执行次数。当该值大于1时,说明函数计算对您的函数进行了重试。 request_payload 请求函数的原始负载。 response_context 返回上下文。 response_context.statusCode 调用函数的返回码(系统)。当该返回码不为200时,说明出现了系统错误。 response_context.function_error 调用错误信息。 response_payload 执行函数返回的原始负载。
  • 步骤五:测试函数 在函数详情页,单击“测试”,在弹窗中创建新的测试事件。 选择“apig-event-template”,事件名称输入“helloworld”,测试事件修改为如下所示,完成后单击“创建”。 { "body": "{\"message\": \"helloworld\"}", "requestContext": { "requestId": "11cdcdcf33949dc6d722640a13091c77", "stage": "RELEASE" }, "queryStringParameters": { "responseType": "html" }, "httpMethod": "POST", "pathParameters": {}, "headers": { "Content-Type": "application/json" }, "path": "/helloworld", "isBase64Encoded": false }