云服务器内容精选

  • 账户资源限制 账户资源总配额如下所示,配额查询及修改方法,请参考配额管理。 表2 账户资源说明表 资源 限制 是否可通过用户自己调整配额 单个账户下最大允许创建的函数个数 400 否 单个函数下最大允许创建的版本个数 20 否 单个函数下最大允许创建的别名个数 10 否 单个函数版本下最大允许创建的DIS、GeminiDB Mongo、LTS、DDS、Kafka和TIMER触发器总数 10 否 前端页面上传时,单个代码部署包大小(压缩为.zip/.jar文件) 40MB 否 调用函数接口时,在线编辑单个函数代码部署包大小(压缩为.zip/.jar文件) 50MB 否 调用函数接口时,单个代码部署包原始代码大小 zip格式:解压后原始代码大小为1500M OBS桶:最大可上传300M压缩后的代码包 否 单个账户下最大允许部署包大小 10 GB 否 单个账户下函数并发执行数 100 是 单个账户下创建预留实例个数 90(单个租户下函数并发执行数*90%) 是 单个函数下所有环境变量的大小 总长度不能超过4096个字符 否 单个户下最多创建的函数流个数 200 是 单个函数流支持最多节点数 100 是 前端页面展示代码大小 20MB 否
  • 支持区域 当前支持的区域列表,请参见表1 表1 支持区域 区 域名 称 区域ID 非洲-约翰内斯堡 af-south-1 中国-香港 ap-southeast-1 亚太-曼谷 ap-southeast-2 亚太-新加坡 ap-southeast-3 亚太-雅加达 ap-southeast-4 华东-上海二 cn-east-2 华东-上海一 cn-east-3 华北-北京一 cn-north-1 华北-乌兰察布-汽车一 cn-north-11 华北-北京四 cn-north-4 华北-乌兰察布一 cn-north-9 华南-广州 cn-south-1 拉美-墨西哥城二 la-north-2 拉美-圣地亚哥 la-south-2 中东-利雅得 me-east-1 拉美-圣保罗一 sa-brazil-1 土耳其-伊斯坦布尔 tr-west-1
  • 函数运行资源限制 表3 函数运行资源限制说明 资源 默认值 是否可通过用户自己调整配额 临时磁盘空间(“/tmp”空间) 512MB 否 文件描述符 2048 否 进程和线程数(总和) 1024 否 单个请求最大执行时长 259200秒 是 函数同步调用请求正文有效负载大小 6MB 否 函数同步调用响应正文有效负载大小 6MB 否 函数异步调用请求正文有效负载大小 256KB 否 函数导入的资源大小 zip格式压缩文件,大小50MB以内 否 单个 自定义镜像 函数最大允许镜像大小 10GB 否 函数导出资源包大小 50MB以内 否 租户级别实例数限制 1000 是 函数最大申请内存 10G 否 带宽 无限制 - 单条日志大小 无限制 - Initializer最大运行时间 259200秒 是 函数同步调用响应正文有效负载大小:返回的字符串或返回体序列化后的json字符串默认不大于6MB。具体数据大小会随FunctionGraph系统后台设置产生变化,因为系统后台判断的是序列化之后的数据大小,所以会存在字节级别的误差,误差范围为6MB±100bytes。 FunctionGraph控制台不建议调用执行时间超过90秒的函数;若需要调用执行时间超过90秒的函数,请使用异步调用的方式。 Kafka/DDS/GeminiDB Mongo/DIS触发器调用的请求正文有效负载大小为6M,APIG触发器调用的请求正文有效负载大小为4M。
  • 示例 准备测试输入数据 表2 测试源表disSource数据和分隔符 target(STRING) separator (VARCHAR) test-flink - flink - one-two-ww-three - 输入测试SQL语句 create table disSource( target STRING, separator VARCHAR ) with ( "connector.type" = "dis", "connector.region" = "xxx", "connector.channel" = "ygj-dis-in", "format.type" = 'csv' ); create table disSink( target STRING, item STRING ) with ( 'connector.type' = 'dis', 'connector.region' = 'xxx', 'connector.channel' = 'ygj-dis-out', 'format.type' = 'csv' ); insert into disSink select target, item from disSource, lateral table(string_split(target, separator)) as T(item); 查看测试结果 表3 disSink结果表数据 target(STRING) item(STRING) test-flink test test-flink flink flink flink one-two-ww-three one one-two-ww-three two one-two-ww-three ww one-two-ww-three three
  • 语法说明 string_split(target, separator) 表1 string_split参数说明 参数 数据类型 说明 target STRING 待处理的目标字符串。 说明: 如果target为NULL,则返回一个空行。 如果target包含两个或多个连续出现的分隔符时,则返回长度为零的空子字符串。 如果target未包含指定分隔符,则返回目标字符串。 separator VARCHAR 指定的分隔符,当前仅支持单字符分隔。
  • 算术运算符 算术运算符包括双目运算符与单目运算符,这些运算符都将返回数字类型。Flink SQL所支持的算术运算符如表3所示。 表3 算术运算符 运算符 返回类型 描述 + numeric 所有数字类型 返回数字。 - numeric 所有数字类型 返回负数。 A + B 所有数字类型 A和B相加。结果数据类型与操作数据类型相关,例如一个整数类型数据加上一个浮点类型数据,结果数值为浮点类型数据。 A - B 所有数字类型 A和B相减。结果数据类型与操作数据类型相关。 A * B 所有数字类型 A和B相乘。结果数据类型与操作数据类型相关。 A / B 所有数字类型 A和B相除。结果是一个double(双精度)类型的数值。 POWER(A, B) 所有数字类型 返回A数的B次方乘幂。 ABS(numeric) 所有数字类型 返回数值的绝对值。 MOD(A, B) 所有数字类型 返回A除以B的余数(模数)。 返回值只有在A为负数时才为负数。 SQRT(A) 所有数字类型 返回A的平方根。 LN(A) 所有数字类型 返回A的自然对数(基数e)。 LOG 10(A) 所有数字类型 返回A的基数10对数。 LOG2(A) 所有数字类型 返回A的基数2对数。 LOG(B) LOG(A, B) 所有数字类型 当只有一个参数,返回B的自然对数(基数e)。 当有两个参数,返回B以A为基数的对数。 B必须大于0,且A必须大于1。 EXP(A) 所有数字类型 返回e的a次方。 CEIL(A) CEILING(A) 所有数字类型 将参数向上舍入为最接近的整数。例如ceil(21.2),返回22。 FLOOR(A) 所有数字类型 对给定数据进行向下舍入最接近的整数。例如floor(21.2),返回21。 SIN(A) 所有数字类型 计算给定A的正弦值。 COS(A) 所有数字类型 计算给定A的余弦值。 TAN(A) 所有数字类型 计算给定A的正切值。 COT(A) 所有数字类型 计算给定A的余切值。 ASIN(A) 所有数字类型 计算给定A的反正弦值。 ACOS(A) 所有数字类型 计算给定A的反余弦值。 ATAN(A) 所有数字类型 计算给定A的反正切值。 ATAN2(A, B) 所有数字类型 计算给定坐标(A, B)的反正切值。 COSH(A) 所有数字类型 计算给定A的双曲余弦值。返回类型为DOUBLE。 DEGREES(A) 所有数字类型 返回弧度所对应的角度。 RADIANS(A) 所有数字类型 返回角度所对应的弧度。 SIGN(A) 所有数字类型 返回a所对应的正负号,a为正返回1,a为负,返回-1,否则返回0。 ROUND(A, d) 所有数字类型 返回小数部分,d位之后数字的四舍五入,d为int型。例如round(21.263,2),返回21.26。 PI 所有数字类型 返回pi的值。 E() 所有数字类型 返回e的值。 RAND() 所有数字类型 返回一个0.0和1.0之间的随机double类型的数(包含0.0,不包含1.0)。 RAND(A) 所有数字类型 根据初始化种子A,返回一个0.0和1.0之间的随机double类型的数(包含0.0,不包含1.0)。若初始化种子相同,则返回的随机数相同。 RAND_INTEGER(A) 所有数字类型 返回一个0和A之间的随机整数(包含0,不包含A)。 RAND_INTEGER(A, B) 所有数字类型 根据初始化种子A,返回一个0和B之间的随机整数值(包含0,不包含B) UUID() 所有数字类型 返回一个UUID字符串。 BIN(A) 所有数字类型 返回一个整数A的二进制字符串。如为null则返回null。 HEX(A) HEX(B) 所有数字类型 返回一个整数A或者字符串B的十六进制字符串。若A或B为null,则返回null。 TRUNCATE(A, d) 所有数字类型 返回保留小数点后d为小数的数字。若A或d为null,则返回null。 例如:truncate(42.345, 2) = 42.340 truncate(42.345) = 42.000 PI() 所有数字类型 返回pi的值 注意事项 字符串类型不能参与算术运算。
  • 注意事项 暂不支持通过python写UDF、UDTF、UDAF自定义函数。 如果使用IntelliJ IDEA工具对创建的自定义函数进行调试,则需要在IDEA上勾选:include dependencies with "Provided" scope,否则本地调试运行时会加载不到pom文件中的依赖包。 具体操作以IntelliJ IDEA版本2020.2为例,参考如下: 在IntelliJ IDEA界面,选择调试的配置文件,单击“Edit Configurations”。 在“Run/Debug Configurations”界面,勾选:include dependencies with "Provided" scope。 单击“OK”完成应用配置。
  • jsonb_insert(target jsonb, path text[], new_value jsonb [, insert_after boolean]) 描述:返回被插入了new_value的target。如果path指定的target部分位于JSONB数组中,则new_value将被插入到目标之前(insert_after为false,默认值)或者之后(insert_after为true)。如果path指定的target部分位于一个JSONB对象内,则仅当target不存在时才插入new_value。与面向路径的运算符一样,path中出现的负整数表示从JSON数组的末尾开始计数。 返回类型:jsonb 示例: 1 2 3 4 5 SELECT jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '"new_value"'); jsonb_insert ------------------------------- {"a": [0, "new_value", 1, 2]} (1 row)
  • json_to_tsvector(config regconfig, ] json, jsonb) 描述:将json格式转换为用于支持全文检索的文件格式tsvector。 返回类型:jsonb 示例: 1 2 3 4 5 SELECT json_to_tsvector('{"a":1, "b":2, "c":3}'::json, to_jsonb('key'::text)); json_to_tsvector ------------------ 'b':2 'c':4 (1 row)
  • jsonb_populate_record_set(anyelement, array-jsonb [, bool]) 描述:参考上述函数json_populate_record、jsonb_populate_record,对$2数组的每一个元素进行上述参数函数的操作,因此这也要求$2数组的每个元素都是object-json类型。 返回类型:setof anyelement 示例: 1 2 3 4 5 6 SELECT * FROM json_populate_recordset(null::jpop, '[{"a":1,"b":2},{"a":3,"b":4}]'); a | b | c ---+---+--- 1 | 2 | 3 | 4 | (2 rows)
  • jsonb_exists_all(jsonb, text[]) 描述:同操作符?&,字符串数组$2里面是否所有的元素,都在$1的顶层以key\elem\scalar的形式存在。 返回类型: bool 示例: 1 2 3 4 5 SELECT jsonb_exists_all('["1","2",3]', '{1, 2}'); jsonb_exists_all ------------------ t (1 row)
  • jsonb_pretty(jsonb) 描述:以缩进的JSON文本形式返回。 返回类型:jsonb 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 SELECT jsonb_pretty('{"a":{"b":{"c":1, "d":2}}, "e":3}'::jsonb); jsonb_pretty --------------------- { + "a": { + "b": { + "c": 1,+ "d": 2 + } + }, + "e": 3 + } (1 row)
  • jsonb_exists_any(jsonb, text[]) 描述:同操作符?|,字符串数组$2里面是否存在的元素,在$1的顶层以key\elem\scalar的形式存在。 返回类型: 示例: 1 2 3 4 5 SELECT jsonb_exists_any('["1","2",3]', '{1, 2, 4}'); jsonb_exists_any ------------------ t (1 row)
  • jsonb_concat(jsonb, jsonb) 描述:连接两个jsonb对象为一个jsonb。 返回类型:jsonb 示例: 1 2 3 4 5 SELECT jsonb_concat('{"a":1, "b":2}'::jsonb, '{"c":3, "d":4}'::jsonb); jsonb_concat ---------------------------------- {"a": 1, "b": 2, "c": 3, "d": 4} (1 row)
  • jsonb_delete_path(jsonb, text[]) 描述:删除jsonb数组中指定路径的元素。 返回类型:jsonb 示例: 1 2 3 4 5 SELECT jsonb_delete_path('{"a":{"b":{"c":1, "d":2}}, "e":3}'::jsonb , array['a', 'b']); jsonb_delete_path ------------------- {"a": {}, "e": 3} (1 row)