Algo
# 1 简介
Algo提供SQL计算功能的计算框架,支持常用的SQL算法,遵循SQL-92标准。
## 1.1 Algo对象
| 接口/对象类 | 用途 | 说明 |
| - | - | - |
| kd.bos.algo.Algo | 创建DataSet getCacheDataSet(String cacheId) | 这个类是入口,给平台使用的,业务不要使用 |
| kd.bos.algo.DataSet | DataSet操作接口,包括转换,action,close等 ||
| Kd.bos.algo.RowMeta | DataSet的元数据,类似jdbc ResultSetMetaData由字段Field[]组成 ||
| Kd.bos.algo.Field | 字段 | |
| Kd.bos.algo.DataType | 数据类型,包括主要数据类型| |
| Kd.bos.algo.Input | 数据源接口| |
| Kd.bos.algo.Row | 行接口,行值访问器 | Row是一个虚接口,访问器,不是Object[],所以业务代码不能把Row缓存起来|
| CachedDataSet | DataSet.cache的结果对象 | 不是DataSet的子类|
| CacheHint | Cache hint,指示 | |
| JoinDataSet | DataSet.join的结果对象,也是Join构造器 | 不是DataSet的子类 |
| HashJoinDataSet | DataSet.hahJoin的结果对象,也是HashJoin构造器 | 不是DataSet的子类 |
| GroupbyDataSet | DataSet.groupBy的结果对象,也是groupBy构造器 | 不是DataSet的子类 |
| HashTable | DataSet.toHashTable的结果对象,是hashJoin的参数 | |
| JoinType | Join类型枚举| |
| JoinHint | Join hint,指示| |
| RowMetaFactory | 创建RowMeta | 给平台用的 |
## 1.2 RowMeta、Field和DataType
RowMeta、Field和DataType对应数据库中的行数据、字段和数据类型。
+ 获取RowMeta
```java
RowMeta rowMeta = dataSet.getRowMeta();
```
+ 获取Field
```java
Field field = rowMeta.getField(index);
```
+ 获取DataType
```java
DataType type = field.getDataType();
```
## 1.3 数据类型
| 类型 | 说明 |
| - | - |
| BooleanType | |
| StringType | |
| IntegerType | |
| LongType | |
| DoubleType | 从元数据ORM框架查出来的数据不会有Double |
| BigDecimalType | |
| DateType | |
| TimestampType | |
| NullType | Select中动态创建null Field生成 |
| UnknownType | 表达式解析后无法确定的列,业务不会用到 |
## 1.4 DataSet
+ DataSet是指kd.bos.algo.DataSet,无特殊说明情况下,后文中的DataSet都是指kd.bos.algo.DataSet,DataSet是结果集,与JDBC 中的ResultSet类似。
+ DataSet即是结果集转换器,也是迭代计算。
+ DataSet不局限于数据库中的数据,文件流,集合类型的数据也可以转换为DataSet。
+ 获取的DataSet也可以缓存。
![dataset.webp](/download/0100a4a6b07ffb9242f68948ff9862a4edd4.webp)
+ kd.bos.algo.DataSet是两类接口,Transform和Action,相关概念与Apache Flink是对等的。
1. Transform:转换DataSet,生成新的DataSet;包括主要sql操作,如orderby,select,where,filter,group by,range,top,union等等。
![transform.webp](/download/0100e3e06df25fb74359817511072c81aa17.webp)
2. Action:Action是消费DataSet,Action执行结果不是DataSet;Action执行后,DataSet自动关闭;Action接口不多,比如count,cache等。
![action.webp](/download/0100f44c57408c5d4fa5b4ddd5a9f1acb047.webp)
# 2 应用场景
Algo通过宿主机内存计算代替数据库计算,减轻数据库压力,解决数据库性能瓶颈,适用于大数据量且需要进行多次计算的场景。
+ 数据库分库后,替代SQL功能
+ 替代复杂SQL
+ 替代临时表
+ 作为报表开发框架
Algo
# 1 简介Algo提供SQL计算功能的计算框架,支持常用的SQL算法,遵循SQL-92标准。## 1.1 Algo对象| 接口/对象类 | 用途 | 说明 ||...
点击下载文档
上一篇:V5.0.002版本升级关于第三方包的说明下一篇:KSQL 参考手册
本文2024-09-23 00:31:31发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140021.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章