逻辑模型
逻辑模型
逻辑模型是利用数据表之间的关系,描述业务规则的实体。包括基本信息、属性、关系、映射四个部分,通过属性、映射等要素转换为数据库可以识别的数据表关系图。
逻辑模型新建
操作步骤如下:
选择新建: 点击
+ 新建按钮或者左侧列表上方+按钮新建逻辑模型填写基本信息: 填写名称和描述,名称必填

- 引入属性: 点击
引入属性按钮
标记①: 选择数据源
标记②: 选择数据源中的数据表
标记③: 按名称模糊搜索数据表
标记④: 选择数据表中的字段
点击确定按钮

- 添加关系: 选择
关系栏,点击添加关系按钮添加逻辑模型关系。
- 关系: 逻辑模型之间的主外键关系,描述逻辑模型之间以什么关系关联在一起
- 添加映射: 当逻辑模型属性来源于多个数据表,选择
映射栏,点击添加映射按钮添加映射信息
提示
第一个映射的左表为主表,所有映射中的表都必须和主表直接或间接关联
映射的左表和右表不能是同一张数据表
如果两张数据表已经在映射中存在,不能再添加这两张数据表的映射
逻辑模型导入
操作步骤如下:
批量导入: 点击
批量导入按钮,进入导入页面选择数据源: 在
标记①处选择数据源选择数据表: 左边栏选择数据表,或者点击下方
一键导入按钮选择全部数据表点击确认,完成导入

逻辑模型编辑
点击要编辑的逻辑模型
弹出编辑页面,重新编辑逻辑模型信息
点击保存按钮,完成逻辑模型的编辑
逻辑模型批量删除
选择要删除的逻辑模型,右上角会出现
删除标志按钮点击删除按钮,弹出删除提示框
点击确定,完成删除
逻辑模型使用
在应用平台首页,选择对应空间的
数据资源模块,进入数据资源页面。在
数据资源的数据连接处选择逻辑模型。选择逻辑模型中的表创建数据资源。
函数参考手册
数据处理、SQL查询中的函数用法参考,包括数学函数、类型转换函数、时间函数、文本函数、聚合函数
1. 数学函数
1.1 ABS
- 表达式:
ABS([数字]) - 功能:返回给定
数字的绝对值。 - 示例:
ABS(-8) 返回 8
1.2 CBRT
- 表达式:
CBRT([数字]) - 功能:返回给定
数字的立方根。 - 示例:
CBRT(3) 返回 1.44225
1.3 CEIL
- 表达式:
CEIL([数字]) - 功能:返回不小于给定
数字的最小整数。 - 示例:
CEIL(5.5) 返回 6
1.4 DEGREES
- 表达式:
DEGREES([数字]) - 功能:将以弧度表示的给定
数字转换为度数。 - 示例:
DEGREES(PI()/4) 返回 45.0 -- π/4弧度=45度
1.5 EXP
- 表达式:
EXP([数字]) - 功能:计算常数e的
数字次幂(e≈2.71828)。 - 示例:
EXP(2) 返回 7.389
1.6 FLOOR
- 表达式:
FLOOR([数字]) - 功能:将数值舍入为不大于
数字的最大整数。 - 示例:
FLOOR(3.1415) 返回 3
1.7 LOG
- 表达式1:
LOG([数字])- 功能:返回
数字的自然对数(以e为底)。 - 示例:
LOG(2.718281828459) 返回 0.9999999999999832
- 功能:返回
1.8 LOG10
- 表达式:
LOG10([数字]) - 功能:返回以10为底的
数字的对数。 - 示例:
LOG10(10) 返回 1
1.9 LSHIFT
- 表达式:
LSHIFT([数字1],[数字2]) - 功能:将
数字1按二进制展开后整体左移数字2位。 - 示例:
LSHIFT(2, 10) 返回 2048
1.10 RSHIFT
- 表达式:
RSHIFT([数字1],[数字2]) - 功能:将
数字1按二进制展开后整体右移数字2位。 - 示例:
RSHIFT(2048, 2) 返回 512
1.11 MOD
- 表达式:
MOD([数字1],[数字2]) - 功能:返回
数字1除以数字2的余数。 - 示例:
MOD(3, 5) 返回 3
1.12 RADIANS
- 表达式:
RADIANS([数字]) - 功能:将
数字的度数值转换为弧度数。 - 示例:
RADIANS(270) 返回 4.712389 -- 270度=3π/2弧度
1.13 RAND
- 表达式:
RAND() - 功能:返回0到1之间的随机数。
- 示例:
RAND() 返回 0.1712197025597102
1.14 POWER
- 表达式:
POWER([数字1],[数字2]) - 功能:返回
数字1的数字2次幂。 - 示例:
POWER(3,3) 返回 27
1.15 ROUND
表达式1:
ROUND([数字1],[数字2])- 功能:将
数字1四舍五入到数字2位小数。 - 示例:
ROUND(3.1415926,3) 返回 3.142
- 功能:将
表达式2:
ROUND([数字])- 功能:将
数字四舍五入到整数位。 - 示例:
ROUND(3.1415926) 返回 3
- 功能:将
1.16 SIGN
- 表达式:
SIGN([数字]) - 功能:返回
数字的符号(正数返回1,负数返回-1,0返回0)。 - 示例:
SIGN(-3.1415926) 返回 -1
1.17 SQRT
- 表达式:
SQRT([数字]) - 功能:返回
数字的平方根。 - 示例:
SQRT(2) 返回 1.414
1.18 SIN
- 表达式:
SIN([数字]) - 功能:返回
数字(弧度)的正弦值。 - 示例:
SIN(30) 返回 -0.988 -- 30为弧度,非角度
1.19 ASIN
- 表达式:
ASIN([数字]) - 功能:返回给定
数字的反正弦值(结果以弧度表示,范围:-π/2~π/2)。 - 示例:
ASIN(1) 返回 1.5707963267949 -- 即π/2弧度
1.20 COS
- 表达式:
COS([数字]) - 功能:返回
数字(弧度)的余弦值。 - 示例:
COS(30) 返回 0.154 -- 30为弧度
1.21 ACOS
- 表达式:
ACOS([数字]) - 功能:返回给定
数字的反余弦值(结果以弧度表示,范围:0~π)。 - 示例:
ACOS(-1) 返回 3.14159265358979 -- 即π弧度
1.22 TAN
- 表达式:
TAN([数字]) - 功能:返回
数字(弧度)的正切值。 - 示例:
TAN(30) 返回 -6.405 -- 30为弧度
1.23 ATAN
- 表达式:
ATAN([数字]) - 功能:返回
数字的反正切值(结果以弧度表示,范围:-π/2~π/2)。 - 示例:
ATAN(30) 返回 1.537
1.24 SINH
- 表达式:
SINH([数字]) - 功能:返回
数字的双曲正弦值。 - 示例:
SINH(30) 返回 5.343×10^12
1.25 COSH
- 表达式:
COSH([数字]) - 功能:返回
数字的双曲余弦值。 - 示例:
COSH(30) 返回 5.343×10^12
1.26 TANH
- 表达式:
TANH([数字]) - 功能:返回
数字的双曲正切值。 - 示例:
TANH(30) 返回 1.0
2. 类型转换函数
2.1 CAST
- 表达式:
CAST([value] AS [<type>]) - 功能:将任意类型的
[value]强制转换为<type>指定的目标类型(如INTEGER、FLOAT、VARCHAR等)。 - 示例:
CAST(3.14159 AS INTEGER) → 3 -- 浮点数转整数(截断小数) CAST('0.3456' AS FLOAT) + 1 → 1.3456 -- 字符串转浮点数后参与计算
2.2 FORMAT_NUMBER
- 表达式:
FORMAT_NUMBER([数字], [格式化参数]) - 功能:将数值类型的
[数字]转换为字符串,按[格式化参数]指定格式展示(如千分位、小数位数)。 - 示例:
FORMAT_NUMBER(381928933.2398474, '#,###.##') → '381,928,933.24'
2.3 TO_DATE
功能:将文本或数值转换为日期类型(仅包含年/月/日)。
表达式1:
TO_DATE([文本], [格式化参数])- 说明:根据
[格式化参数]解析[文本]转换为日期 - 示例:
TO_DATE('2022-12-31', 'yyyy-MM-dd') → 2022-12-31
- 说明:根据
表达式2:
TO_DATE([数字])- 说明:将
[数字](毫秒级时间戳)转换为对应的日期。 - 示例:
TO_DATE(1427849046000) → 2015-04-01
- 说明:将
2.4 TO_NUMBER
- 表达式:
TO_NUMBER([文本], [格式化参数]) - 功能:将字符串类型的
[文本]按[格式化参数]转换为数值类型 - 示例:
TO_NUMBER('987,966.21', '###,###.0') → 987966.2
2.5 TO_TIME
功能:将文本或数值转换为时间类型
表达式1:
TO_TIME([文本], [格式化参数])- 说明:根据
[格式化参数]解析[文本]转换为时间。 - 示例:
TO_TIME('12:20:30', 'HH:mm:ss') → 12:20:30
- 说明:根据
表达式2:
TO_TIME([数值])- 说明:将
[数值](毫秒级时间戳,相对于当天0点)转换为时间。 - 示例:
TO_TIME(82855000) → 23:00:55
- 说明:将
2.6 TO_TIMESTAMP
功能:将文本或数值转换为日期时间类型。
表达式1:
TO_TIMESTAMP([文本], [格式化参数])- 说明:根据
[格式化参数]解析[文本]转换为日期时间。 - 示例:
TO_TIMESTAMP('2020-2-23 12:00:00', 'yyyy-MM-dd HH:mm:ss') → 2020-02-23 12:00:00.0
- 说明:根据
表达式2:
TO_TIMESTAMP([数字])- 说明:将
[数字](毫秒级时间戳,相对于1970-01-01 00:00:00 UTC)转换为日期时间。 - 示例:
TO_TIMESTAMP(1427936330000) → 2015-04-02 08:58:50.0
- 说明:将
3. 时间函数
3.1 TIMEOFDAY
- 表达式:
TIMEOFDAY() - 功能:返回包含时区信息的本地日期和时间(UTC 时区对应时间),格式为“年-月-日 时:分:秒.毫秒 时区”。
- 示例:
TIMEOFDAY() → 2021-07-01 16:24:46.287 Asia/Shanghai
3.2 CURRENT_DATE
- 表达式:
CURRENT_DATE - 功能:返回当前系统日期(仅包含年、月、日,无时间信息),格式为
yyyy-MM-dd。 - 示例:
CURRENT_DATE → 2021-04-02
3.3 CURRENT_TIME
- 表达式:
CURRENT_TIME - 功能:返回当前系统时间(仅包含时、分、秒、毫秒,无日期信息),格式为
HH:mm:ss.fff。 - 示例:
CURRENT_TIME → 14:32:04.751
3.4 CURRENT_TIMESTAMP
- 表达式:
CURRENT_TIMESTAMP - 功能:返回当前系统日期时间(包含年、月、日、时、分、秒、毫秒),格式为
yyyy-MM-dd HH:mm:ss.fff。 - 示例:
CURRENT_TIMESTAMP → 2015-05-17 22:45:55.848
3.5 LOCALTIME
- 表达式:
LOCALTIME - 功能:返回本地时区的当前时间(仅包含时、分、秒、毫秒),格式为
HH:mm:ss.fff。 - 示例:
LOCALTIME → 22:46:19.656
3.6 LOCALTIMESTAMP
- 表达式:
LOCALTIMESTAMP - 功能:返回本地时区的当前日期时间(包含年、月、日、时、分、秒、毫秒),格式为
yyyy-MM-dd HH:mm:ss.fff。 - 示例:
LOCALTIMESTAMP → 2015-05-17 22:46:47.944
3.7 NOW
- 表达式:
NOW() - 功能:返回当前系统日期时间(与
CURRENT_TIMESTAMP功能一致,包含年、月、日、时、分、秒、毫秒)。 - 示例:
NOW() → 2015-05-17 22:47:11.008
3.8 DATE_ADD
- 表达式:
DATE_ADD([字段], [数字]) - 功能:对日期/时间类型的
[字段]增加指定天数([数字]为正数),返回新的日期/时间。 - 示例:
DATE_ADD(date '2015-04-15', 2) → 2015-04-17
3.9 DATE_SUB
- 表达式:
DATE_SUB([字段], [数字] | interval '[数字]' [单位]) - 功能:对日期/时间类型的
[字段]减去指定时间单位(默认天,支持月、小时等),返回新的日期/时间。 - 示例:
DATE_SUB(dateColumn, 2) → 减去2天(默认单位为天) DATE_SUB(date '2015-04-15', interval '2' month) → 2015-02-15 -- 减去2个月 DATE_SUB(timestamp '2015-04-15 22:55:55', interval '10' hour) → 2015-04-15 12:55:55 -- 减去10小时
3.10 DATE_DIFF
- 表达式:
DATE_DIFF([字段1], [字段2], [时间单位]) - 功能:计算
[字段1]与[字段2]之间的时间差,返回以[时间单位]为单位的整数结果([字段1]>[字段2]时为正数,反之为负数)。 - 支持的时间单位:
MILLENNIUM(千年)、CENTURY(世纪)、DECADE(十年)、YEAR(年)、QUARTER(季度)、MONTH(月)、WEEK(周)、DAY(天)、HOUR(小时)、MINUTE(分钟)、SECOND(秒)等。 - 示例:
DATE_DIFF(DATE '2002-03-01', DATE '2001-03-01', DAY) → 365 -- 两个日期相差365天
3.11 DATE_PART
- 表达式:
DATE_PART([时间单位], [文本]) - 功能:从日期/时间类型的
[文本]中提取指定[时间单位]对应的数值(如提取月份、小时等)。 - 支持的时间单位:与
DATE_DIFF一致,常用YEAR(年)、MONTH(月)、DAY(日)、HOUR(时)等。 - 示例:
DATE_PART('DAY', DATE '2015-04-02') → 2 -- 提取日期中的“日”部分 DATE_PART('HOUR', timestamp '2023-10-01 14:30:00') → 14 -- 提取时间中的“小时”部分
4. 文本函数
4.1 CONCAT
- 表达式:
CONCAT([文本1],[文本2],[...]) - 功能:将多个字符串(、等)拼接为一个字符串。
- 示例:
CONCAT('Hello', ' ', 1.0, ' ', 'release') 返回 Hello 1.0 release
4.2 ILIKE
- 表达式:
ILIKE([文本],[模式]) - 功能:对与进行不区分大小写的模糊匹配(返回布尔值)。
- 示例:
CAST(ILIKE('abcde', 'ABC%') AS VARCHAR) 返回 true -- 'abcde'匹配'ABC%'
4.3 LIKE
- 表达式:
LIKE([文本],[模式]) - 功能:对与进行区分大小写的模糊匹配(返回布尔值)。
- 示例:
CAST(LIKE('abcde', 'ABC%') AS VARCHAR) 返回 false -- 'abcde'不匹配'ABC%'
4.4 INITCAP
- 表达式:
INITCAP([文本]) - 功能:将中每个单词的首字母转换为大写,其余为小写。
- 示例:
INITCAP('hello word release 1.0') 返回 Hello Word Release 1.0
4.5 LENGTH
- 表达式:
LENGTH([文本]) - 功能:返回的字符数。
- 示例:
LENGTH('apache hello release 1.0') 返回 24
4.6 LOWER
- 表达式:
LOWER([文本]) - 功能:将转换为全小写。
- 示例:
LOWER('HELLO WORD') 返回 hello word
4.7 LEFT
- 表达式:
LEFT([文本1],[数字]) - 功能:返回左侧的个字符。
- 示例:
LEFT('abcdef', 4) 返回 abcd
4.8 LPAD
- 表达式:
LPAD([文本1],[数字],[文本2]) - 功能:在左侧填充,直到总长度为(若文本1长度超过数字,则截断左侧)。
- 示例:
LPAD('d', 4, 'abc') 返回 abcd
4.9 RPAD
- 表达式:
RPAD([文本1],[数字],[文本2]) - 功能:在右侧填充,直到总长度为(若文本1长度超过数字,则截断右侧)。
- 示例:
RPAD('d', 4, 'abc') 返回 dabc
4.10 RIGHT
- 表达式:
RIGHT([文本1],[数字]) - 功能:返回右侧的个字符。
- 示例:
RIGHT('abcdef', 4) 返回 cdef
4.11 REGEXP_REPLACE
- 表达式:
REGEXP_REPLACE([文本1],[正则],[文本2]) - 功能:用替换中匹配的部分。
- 示例:
REGEXP_REPLACE('Hello 123 World', '\\d+', '###') 返回 Hello ### World
4.12 REPEAT
- 表达式:
REPEAT([文本],[数字]) - 功能:返回重复指定次数的输入字符串。
- 示例:
REPEAT('Hello Word ', 3) 返回 Hello Word Hello Word Hello Word
4.13 REPLACE
- 表达式:
REPLACE([文本],[from],[to]) - 功能:用另一个指定的子字符串替换所有出现的指定子字符串。
- 示例:
REPLACE('The quick brown fox jumps...', 'jumps', 'sleeps') 返回 The quick brown fox sleeps...
4.14 SPLIT_PART
- 表达式:
SPLIT_PART([文本],[分隔符], start[, end]) - 功能:使用指定的分隔符对输入文本进行拆分,返回开始到结束部分。
- 示例:
SPLIT_PART('The quick brown fox jumps...', ' ', 4) 返回 fox
4.15 SUBSTR
- 表达式:
SUBSTR([文本],[数字],[数字]) - 功能:对输入的字符串进行截取,可指定开始位置、长度或通过正则匹配。
- 示例:
SUBSTR('Hello Word', 7) 返回 Word SUBSTR('Hello Word', 3, 2) 返回 ll SUBSTR('On 1970-01-01 the quick', '[\\d-]+') 返回 1970-01-01
4.16 TRIM
- 表达式:
TRIM ([leading | trailing | both] [文本1] from [文本2]) - 功能:将
[文本2]从开始(leading)、结尾(trailing)或两侧(both)移除匹配[文本1]的字符串。 - 示例:
TRIM(trailing 'l' from 'Drill') 返回 Dri TRIM(both 'l' from 'long live Drill') 返回 ong live Dri TRIM(leading 'l' from 'long live Drill') 返回 ong live Drill
4.17 UPPER
- 表达式:
UPPER([文本]) - 功能:将输入的字符串全部转换为大写。
- 示例:
UPPER('hello word') 返回 HELLO WORD
5. 聚合函数
5.1 SUM
- 表达式:
SUM([数字]) - 功能:计算一列的总和。
- 示例:
SUM(销售额) 返回 数据列{{销售额}}的总和
5.2 AVG
- 表达式:
AVG([数字]) - 功能:计算一列的平均值。
- 示例:
AVG(销售额) 返回 数据列{{销售额}}的平均值
5.3 MAX
- 表达式:
MAX([数字]) - 功能:返回一列的最大值。
- 示例:
MAX(销售额) 返回 数据列{{销售额}}的最大值
5.4 MIN
- 表达式:
MIN([数字]) - 功能:返回一列的最小值。
- 示例:
MIN(销售额) 返回 数据列{{销售额}}的最小值
5.5 COUNT
- 表达式:
COUNT([数字]) - 功能:返回一列的非空值总数。
- 示例:
COUNT(销售额) 返回 数据列{{销售额}}的非空值数量
5.6 STDDEV
- 表达式:
STDDEV([数字]) - 功能:计算一列的样本标准差(反映数据离散程度)。
- 示例:
STDDEV(销售额) 返回 数据列{{销售额}}的样本标准差
5.7 STDDEV_POP
- 表达式:
STDDEV_POP([数字]) - 功能:计算一列的总体标准差。
- 示例:
STDDEV_POP(销售额) 返回 数据列{{销售额}}的总体标准差
5.8 VARIANCE
- 表达式:
VARIANCE([数字]) - 功能:计算一列的样本方差(标准差的平方)。
- 示例:
VARIANCE(销售额) 返回 数据列{{销售额}}的样本方差
5.9 VAR_POP
- 表达式:
VAR_POP([数字]) - 功能:计算一列的总体方差。
- 示例:
VAR_POP(销售额) 返回 数据列{{销售额}}的总体方差
