电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

Algo-内存数据库计算引擎接口说明

来源:金蝶云社区作者:金蝶2024-09-231

Algo-内存数据库计算引擎接口说明

# 1 cache 我们可以调用DataSet的接口: ```java public CachedDataSet cache(CacheHint cacheHint) ``` 来创建一个CachedDataSet。 + dataSet.cache(),dataSet是离线的,只能顺序遍历,遍历一次,无状态。 + CachedDataSet是将DataSet缓存起来,通过id多次访问,并提供随机按Range访问。 + CachedDataSet默认是有超时时间的(30分钟),业务可以自己设置。 ![cache.webp](/download/01000d8185ca3d404032a4d91607b36c0137.webp) ***示例*** ```java //写入缓存 CacheHint hint = new CacheHint(); Hint.setTimeout(60* 60 * 1000); //默认超时是30分钟 CachedDataSet cachedDataSet = DataSet.cache(cacheHint); String id = cachedDataSet.getCachedId(); //获取CachedDataSet CachedDataSet cachedDataSet = Algo.get CachedDataSet(id); //遍历缓存 Iterator<Row> iterator cachedDataSet.iterator(int begin, int length); 或者 List<Row> list = cachedDataSet. getList(int begin, int length); //关闭 cachedDataSet.close(); ``` # 2 Cache Builder 适用于当前dataset cache后可以继续添加row。 ```java //写入缓存 CacheHint hint = new CacheHint(); Hint.setTimeout(60* 60 * 1000); //默认超时是30分钟 CachedDataSet cachedDataSet = DataSet.cache(cacheHint); String id = cachedDataSet.getCachedId(); //获取CachedDataSet CachedDataSet cachedDataSet = Algo.get CachedDataSet(id); //遍历缓存 Iterator<Row> iterator cachedDataSet.iterator(int begin, int length); 或者 List<Row> list = cachedDataSet. getList(int begin, int length); //关闭 cachedDataSet.close(); ``` # 3 DataSetBuilder DataSetBuilder提供内存构造DataSet的功能,DataSetBuilder不同于CachedDataSet.Builder。 ```java RowMeta rowMeta = xxx; DataSetBuilder builder = Algo.createDataSetBuilder(rowMeta); builder.append(new Object[]{xxx}); builder.append(new Object[]{xxx}); DataSet dataset = builder.build(); ``` # 4 Input Input是一种数据源接口,通过Input可以创建一个DataSet,接口如下: ```java DataSet createDataSet(Input... inputs); ``` 执行并行取数,如果传入多个Input,默认启动4个并行查询。 Input有4个子类: + OrmInput + DbInput + OqlInput + CollectInput Input有一个子接口CustomizedInput,供自定义Input。 ***代码示例*** ```java int n = 8; OrmInput[] inputs = new OrmInput[n]; for(int i=0;i<n;i++){ Qfilter[] filters = …; //把filters拆成多个,可并行执行 Inputs[i] = new OrmInput(algoKey, String entityName, selectFields, filters); } DataSet dataset = Algo.createDataSet(inputs); ``` # 5 计算表达式 ***特性*** + expr支持基本四则运算,包括:+,-,*,/,()。 + 支持常量数字,字符串。 + 支持逻辑表达式: <,>,<=,>=,<>,!=, and, or, xor, not。 + 支持宏: NULL, TRUE, FALSE。 + 别名: expr alias, expr as alias。 + 支持跟SQL一样的Case When语法,2种。 + 支持函数。 ***代码示例*** ```java 1. famount 2. famount as amount 3. famount * 2 as amount, famount + 2 as amount, famount / fqty as amount, famount * fqty as mount, 4. (famount + qty) * 2 as amount 5. famount > fqty as b 6. famount > fqty and fqty > 100 as c 7. null as c, true as c, false as c 8. 100 as amount, 'abc' as name 9. fname + 'abc' as name ``` ***表达式语法*** | 类型 | 语法 | 说明 | | - | - | - | | 数值四则运算 | +,-,*,/,%,() | %为求余 | | 字符串拼接 | + | 或者用concat函数 | | 字符串like | like %abc% | 跟sql类似,通过%实现左右like匹配 | | 别名 | expr as alias | A as c, a+b as c | | 类型转换 | Cast(expr as DataType) | | | 布尔连接符 | and,or | | | 布尔比较符 | =, <, <= , >, >=, <>, != | <,<=,>,>=只适用于数值比较<> 等价于 != | | Case When语句 | 1.Case 表达式 When 值 then 值 [else 值] end
2.Case When 布尔表达式 then 值 [else 值] end | 跟sql一样,有两种形式 | | In | expr in (v1, v2,vN)

Algo-内存数据库计算引擎接口说明

# 1 cache我们可以调用DataSet的接口:```javapublic CachedDataSet cache(CacheHint cacheHint)```来创建一个CachedDataSet。+ data...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信