如何使用报表数据抽取功能?
1 问题描述
当报表查询速度比较缓慢时,可以使用数据抽取功能,将实时查询转换为 T+N 查询,从而提高查询速度。
2 解决方法
2.1. 新增ES服务。
操作路径:组件维护 > ES服务管理
按要求填入编码,地址,用户名,密码等信息。
2.2. 业务ES配置
操作路径:租户列表 > 进入特定租户的详情页 > 选中数据中心 > 业务ES配置
在业务ES配置页面,对于hr业务,编码必须填写 hr,ES服务选择第一步创建的ES服务,ES参数是key,value形式,key列表及含义如下:
key | 默认值 | 含义 |
index | hr | 索引前缀标识 |
clustername | kd-application | 集群名 |
number_of_shards | 5 | 默认主分片数量 |
number_of_replicas | 2 | 默认每个主分片副本数量,小于集群节点数量 |
index.mapping.total_fields.limit | 8000 | index最大字段数量 |
index.refresh_interval | 60 | es index刷新时间(秒) |
index.max_result_window | 100000 | es 索引最大查询数据 |
analysis.filter.company_stopwords.type | stop | 过滤器-停用分析器类型 |
analysis.filter.company_stopwords.stopwords | ( | 过滤器-停用分析器停用词 |
analysis.analyzer.reverse_analyzer.type | custom | 反向分析器类型 |
analysis.analyzer.reverse_analyzer.tokenizer | keyword | 反向分析器切词器 |
analysis.analyzer.reverse_analyzer.filter | lowercase | 反向分析器过滤器 |
analysis.analyzer.company_analyzer.type | custom | 公司分析器类型 |
analysis.analyzer.company_analyzer.tokenizer | standard | 公司分析器切词器 |
analysis.analyzer.company_analyzer.filter | company_stopwords | 公司分析器过滤器 |
2.3. 开启抽取(MC)
MC新增租户参数:HR_REPORT_EXTRACT_ENABLE:true
2.4. 配置抽取队列隔离(MC)
MC新增公共参数:
dts.queue.split.hrptmc_analyseobject.enable=true dts.queue.split.hrptmc_analyseobject.type=businesstype
dts.queue.split.hrptmc_reportmanage.enable=true dts.queue.split.hrptmc_reportmanage.type=businesstype
2.5. 预置筛选器二开插件字段(按需)
如果要抽取的报表中,有筛选器二开插件字段,则需要到元数据
hrptmc_filterextfield预置,里面的字段编码填分析对象字段的fieldAlias
2.6. 文本类型计算字段长度配置(按需)
如果落地的报表或分析对象用到了文本类型的计算字段,落地后生成的物理表默认会采用500长度的物理字段存储计算结果,如果在实际使用中发现有的计算字段计算长度超过了500(落地抽取会失败),则可以到开发平台->搜索hrptmc_calmaxlen元数据,进入列表页后添加对应计算字段的配置信息,如果是分析对象落地,则选择对应的分析对象,如果是报表落地则选择报表所属的分析对象,选择长度超过500的计算字段,配置该字段落地后的最大长度,然后重新进行数据抽取即可:
3 适用版本
金蝶云·星瀚V6.0.13及以上。
4 注意事项
考虑到系统资源有限,在配置抽取调度的时候,多张报表或分析对象不要设置同一时间抽取,分开时间来抽。
不要滥用抽取,只有多表关联,开启抽取来优化报表查询才有效果,单表不要开。如果本身查询就不慢,也不建议开启抽取,效果也不明显。
如何使用报表数据抽取功能?
本文2024-09-22 23:33:23发表“云星瀚知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-xinghan-133788.html