ksql中定义的本体在dataModel中不存在

简介:

问题

  前几天还是一切正常。昨天,因为需求方提出了新的需求,所以改动了MySQL中的几个表格。主要的修改方式是,砍去几栏,或者删除几栏,而保留原来的数据;这一操作借助可视化MySQL工具可以轻松完成。但是,在今天的报表实例运行时出现错误“报表执行错误:报表数据获取失败”。


  顺着由前往后调试的思路,首先打开前面.w报表文件,发现图表组件数据源异常,如图所示:


wKioL1ilRimy0TCEAAFEbsNCdBQ656.jpg-wh_50


  于是,再往后检查,跟踪到BIZ端logic下的Action定义。我使用的是简单的ksql创建的KSQL类型Action。接下来想仔细分析一下对应的SQL语句,但是点击ksql编辑器中ksql一行中的...符号想进去时出现如题所示的警告错误。请参考下图:

wKiom1ilR8bD1s8VAACfPHoL2Wc531.jpg-wh_50



解答

  意思再明确不过了,查看本体定义情况吧。于是,转到antology子模块下观察。乍看是没有问题的--其实真正存在问题。先到wex5论坛中搜索相关帮助,只找到一条,说是KSQL编辑器正常的错误提示,再没有其他进展与解答。


  根据以往操作,肯定是在调整数据表结构后再反向生成本体时出现的问题。于是,再次小心细致地把本体再反向生成一遍,并正常生成对应的数据库表。


  那么,接下来要创建ksql类型的ACTION了。问题正在于这里。此前,我是直接在eclipse中新建概念并填入关系,然后在运行界面中输入数据的。而现在,我是直接通过MYSQL后面修改的数据表结构,再来反向生成本体。这一步操作中,要特别注意的标准action操作过程的大小写问题。因为本质上这些ACTION对应于后台的一些JAVA函数,而JAVA自然是区分大小写的。


  接下来,就是检查ksql表达式的问题。幸好,以前的ksql还存在。我把它记录下来,如下:

1
2
3
select  Mo_TradeDetail.fTradeNatureClass  as  fTradeNatureClass,Mo_TradeDetail.fTradeNature  as  fTradeNature, count (Mo_TradeDetail.fTradeNature)  as  fTradeNatureCount, sum (Mo_TradeDetail.fTotal)  as  fTotalCount, sum (Mo_TradeDetail.fFine)  as  fFineCount
     from  Mo_TradeDetailMo_tradedetail
     group  by  Mo_TradeDetail.fTradeNature


  现在,点击【测试】按钮,运行出现错误!但是,没有更细致的错误提示(不像mysql可视化管理工具中那样提示好定位)!


  在浪费了不少时间后,我注意到概念的大小写与我反向生成本体后概念的大小写是不一致的(正确的形式是Mo_tradedetail)。于是,我尝试着把大小写修改过来,如下:

1
2
3
select  Mo_tradedetail.fTradeNatureClass  as  fTradeNatureClass,Mo_tradedetail.fTradeNature  as  fTradeNature, count (Mo_tradedetail.fTradeNature)  as  fTradeNatureCount, sum (Mo_tradedetail.fTotal)  as  fTotalCount, sum (Mo_tradedetail.fFine)  as  fFineCount
     from  Mo_tradedetail Mo_tradedetail
     group  by  Mo_tradedetail.fTradeNature



  现在点击【测试】按钮,运行成功了!接下来,再到前面调整报表窗体中的图表数据源形式便很容易了。


吃亏后的小结


  根本原因是对于WeX5中提供的KSQL语法不熟,如下所描述的:这个KSQL语句中,竟然表格(即概念)名字是大小写敏感的,而后面例如sum函数等根本不敏感!竟然因为小小的语法问题浪费了那么多时间。唉,无怪乎网络上称呼程序员为“程序猿”,虽然听起来有些刺耳,但是的确有一定的道理。


















本文转自朱先忠老师51CTO博客,原文链接:http://blog.51cto.com/zhuxianzhong/1898455,如需转载请自行联系原作者





相关文章
|
数据采集 数据可视化 数据挖掘
交互式数据分析:使用Jupyter Notebooks和IPython提高生产力
【4月更文挑战第12天】Jupyter Notebooks和IPython是交互式数据分析的强大工具,提供了一个集成环境,支持多种编程语言,提升效率并减少错误。它们具有交互式编程、丰富库支持、可扩展性和协作功能。基本流程包括数据导入(如使用Pandas从CSV加载)、预处理、分析(利用Pandas、NumPy、Matplotlib等)、模型选择与训练(如Scikit-learn的RandomForestClassifier)以及模型评估和优化。
358 2
|
9月前
|
数据采集 Web App开发 iOS开发
使用 User-Agent 模拟浏览器行为的技巧
使用 User-Agent 模拟浏览器行为的技巧
|
分布式计算 大数据 Linux
大数据体系知识学习(二):WordCount案例实现及错误总结
这篇文章介绍了如何使用PySpark进行WordCount操作,包括环境配置、代码实现、运行结果和遇到的错误。作者在运行过程中遇到了Py4JJavaError和JAVA_HOME未设置的问题,并通过导入findspark初始化和设置环境变量解决了这些问题。文章还讨论了groupByKey和reduceByKey的区别。
220 1
|
10月前
|
人工智能 自然语言处理 API
阿里云百炼xWaytoAGI共学课DAY3 - 更热门的多模态交互案例带练,实操掌握AI应用开发
本文章旨在帮助读者了解并掌握大模型多模态技术的实际应用,特别是如何构建基于多模态的实用场景。文档通过几个具体的多模态应用场景,如拍立淘、探一下和诗歌相机,展示了这些技术在日常生活中的应用潜力。
2289 20
|
11月前
|
机器学习/深度学习 文字识别 自然语言处理
医疗行业化验单智能识别技术探讨:OCR与表格识别的应用
本文探讨了OCR与表格识别技术在医疗化验单处理中的应用,通过自动化数据提取和录入,显著提高了效率和准确性,降低了人工劳动强度和错误率。技术实现包括图像预处理、文字识别和表格解析等核心算法的优化,支持与医院信息管理系统集成,未来将向跨模态数据融合、多语言适配及数据安全方向发展。
1172 9
|
人工智能 JSON 文字识别
【实操】Java+百度ocr,实现图片识别文字小工具
本文介绍了一个基于Java和百度OCR的文字识别工具,能够通过截图或上传图片实现文字识别,并使用exe4j将工具封装为exe文件以便于使用。文章详细介绍了实现过程,包括Java Swing页面布局、百度OCR配置及使用方法,以及如何将Java项目打包成jar和exe文件。此外,还提供了一些相关资源供读者参考。
743 0
【实操】Java+百度ocr,实现图片识别文字小工具
|
监控 Java UED
Java一分钟之-Spring Cloud Netflix Hystrix:容错管理
【6月更文挑战第9天】Spring Cloud Hystrix是用于微服务容错管理的库,通过断路器模式防止服务雪崩。本文介绍了Hystrix的基本概念,如断路器、线程隔离和fallback机制,并展示了如何快速上手,包括添加依赖、启用注解和编写Hystrix命令。此外,还讨论了常见问题(如断路器打开、资源泄漏和不当的Fallback策略)及其解决方案。通过自定义Hystrix指标监控,可以进一步优化系统性能。理解Hystrix工作原理并适时调整配置,对于构建健壮的微服务至关重要。
373 3
|
Kubernetes Ubuntu 应用服务中间件
Ubuntu 22.04 利用kubeadm方式部署Kubernetes(v1.28.2版本)
Ubuntu 22.04 利用kubeadm方式部署Kubernetes(v1.28.2版本)
3730 0
|
并行计算 安全 Java
探索多线程编程:守护线程与线程生命周期
探索多线程编程:守护线程与线程生命周期
138 0
|
缓存 关系型数据库 MySQL
ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘解决方法
ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘解决方法
1274 0