【Kylin 踩坑之旅】kylin sum() avg() 无法返回预期的结果

2023-10-21 13:30
文章标签 无法 返回 sum 预期 kylin avg

本文主要是介绍【Kylin 踩坑之旅】kylin sum() avg() 无法返回预期的结果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在使用kylin 的时候遇到了avg()函数无法求出预期值的情况,通过检查发现sum()函数也无法得出预期值,所以通过查询多方资料找到了问题所在

  • sum 函数与avg 函数无法返回正确的结果
  • 可能会遇到的其他错误
      • 错误一
        • 错误
        • 原因
        • 解决办法
  • 参考资料

sum() 函数与avg() 函数无法返回正确的结果

之前使用select语句求和的时候遇到了这样的问题:
在kylin中执行

SELECT  price,count(price) ,sum(price) ,avg(price) FROM hive_test_order group by price;

返回结果为

EXPR$0	EXPR$1  EXPR$2
58  321 5.534482759
76  407 5.355263158
71  410 5.774647887
74  416 5.621621622
79  390 4.936708861
73  390 5.342465753
64  409 6.390625
80  420 5.25
64  375 5.859375

而在hive中执行得到的结果是
在hive中执行得到的结果

很明显得到的数据有问题

这是因为price在我这里被设置为维度的原因,我们需要将它转化为度量

【1】 在Cube Designer中点击添加Measure
在Cube Designer中点击添加Measure

【2】 勾选Also Show Dimensions 后选择相应字段,点击ok保存
勾选Also Show Dimensions 后选择相应字段,点击ok保存

【3】在Advanced Setting步骤中确认以下刚刚添加的是否在Advanced ColumnFamily当中
在Advanced Setting步骤中确认以下刚刚添加的是否在Advanced ColumnFamily当中
再次执行

SELECT  count(price) ,sum(price) ,avg(price) FROM  test.hive_test_order group by userid;
EXPR$0	EXPR$1  EXPR$2
58  849     14.63793103
76  1238    16.28947368
71  947     13.33802817
74  1211    16.36486486
79  1096    13.87341772
73  1004    13.75342466
64  1014    15.84375
80  1100    13.75
64  1026    16.03125

这样一看avg() 函数也恢复正常,这是因为kylin的avg函数是 sum/count得到的结果,sum不正确avg自然也就得不到正确结果。

可能会遇到的其他错误

错误一

错误:

Error Message
CubeDesc xxx is inconsistent with existing. Try purge that cube first or avoid updating key cube desc fields.
这里写图片描述

原因:

cobe发生了改变,而修改之前cube已经创建了相关的job,生成了处理结果。

解决办法:

需要将原处理结果清除掉。
这里写图片描述

参考资料

【1】 http://apache-kylin.74782.x6.nabble.com/sum-function-error-td8564.html
【2】 http://blog.csdn.net/yu616568/article/details/48103415

这篇关于【Kylin 踩坑之旅】kylin sum() avg() 无法返回预期的结果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/254702

相关文章

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

统一返回JsonResult踩坑的记录

《统一返回JsonResult踩坑的记录》:本文主要介绍统一返回JsonResult踩坑的记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录统一返回jsonResult踩坑定义了一个统一返回类在使用时,JsonResult没有get/set方法时响应总结统一返回

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使