观远 BI

卡片常见问题

创建于 2022-11-01 / 最近更新于 2023-10-18 / 5396
字体: [默认] [大] [更大]

1. 当颜色栏拖入字段后,图例不按数值字段区分了

对于图例的颜色,「颜色」的优先级高于「数值」。

2. 直连数据库整数相除结果仍为整数的解决办法

Greenplum、PostgreSQL、Presto等多个数据库会出现,2个整数相除结果仍为整数,小数精度丢失的情况。

【解决方案】

1)方案1:数值直接乘以1.0。分子或者分母任一个乘以1.0即可以把整数转换为浮点数,但要注意,小数点后位数可能影响数据精度,小数点后位数最好按需确定。观远BI最多支持小数点后保留6位,所以即使乘以1.00000000000也只会保留前6位。

2)方案2:先把分子或者分母任一字段转换成double/float类型,然后再用round( )函数,或者cast(xxxxx as decimal())来指定小数点后保留位数。请使用数据库对应的函数。

? 方案2 示例image.png

3. 长数值显示错误的解决方法

背景】:用户使用CSV文件创建文件数据集,或者新建抽取数据集的时候,有字段存储的是超过15位的长数值(例如订单ID、用户ID),创建数据集后系统识别为Long型字段,然后数值会发生变化,例如末几位可能会显示为0。这样的话后续创建报表,一直使用的都是错误的数据。

【原因】:Long 型和Int 型类似,用来存储整数,虽然一般认为Long型占用4个字节,数值范围内的最大值为10位数(大约为21亿),不过不同编译环境下可能会不统一。这一情况在使用Excel打开CSV文件,或者在Excel单元格里直接输入长数值时,也是经常发生的。

【解决方案】
1)方案1:升级BI版本至4.4版本及以上。

2)方案2:如果任何情况下都不希望该类型字段值发生变化,建议在原始数据库里把长数值格式都存储为String字符串,或者创建数据集最后一步预览阶段把该字段类型改为String,或者之后把字段类型转换为String字符串(Spark函数推荐 cast([字段名] as string) )。


4. 时间戳和日期对比判断时返回结果不正确

【原因】:日期的格式为时间戳(timestamp)格式,但是“>=2020-02-02”或者“<=2020-02-02”里的“2020-02-02”为string格式,这里是按照字符串来比较的也就是比较长度,所以会有问题。

【解决方案】

1)方案1:改变维度里的日期格式:用to_date()函数把时间戳格式改为date格式。

2)方案2:改变比较条件。直接把比较条件改为:[日期]>= "2020-02-02 00:00:00" 和 [日期] <= "2020-02-02 00:00:00"。

? 衍生问题

【问题】

两个参数筛选器分别设置了开始时间和结束时间,且默认为{{{yesterday}}},默认值或者选择同一天时,被联动的卡片会没有数据。

【原因】

排查发现数据集的日期字段为时间戳格式,所以无法正确对比,解决方案可以参考方案1,用to_date() 函数把时间戳格式改为date格式。

【小结】

作日期对比的时候,格式或者字符串长度要对应上,如果是时间戳格式,那么原则上对比的条件也应该是时间戳格式,如果是date格式,那对比的条件原则上也应该是date格式。


5. 去重计数时,空字符串也计数吗?

是的,空字符串是计数的,如果不想计数,可以把空字符串替换成null值,null值不计数。


6. 用卡片制作明细数据下载,为什么有些限制5万行下载,有些限制100行数据?

导出数据为excel的默认限制是5万行,可以从管理员设置里修改上限;但卡片编辑页面维度里如果设置了显示数量为100,那么导出的数据就是100行。


7. 如果把文本格式的字段放到数值上,聚合方式选择“无处理”、“最大值”和“最小值”的时候,展示的逻辑分别是什么?

文本也是可以比较大小的,依照的是ASCII 码的顺序。最大是 max(),最小是min(),无处理是取数据集中第一行(无排序)。


8. 同一直连数据集,相同筛选条件的两个卡片数据为何不一致?

【可能原因】:直连数据集缓存导致的。

假如数据集开启“支持实时卡片数据”,且页面开启“实时数据”,则卡片数据的可能是存在缓存的(具体的缓存有效期,要看数据集/数据更新那里的设置)。

卡片编辑会触发数据查询,在卡片编辑页,如果开启了“更改后自动刷新数据”,则每次编辑都会刷新缓存,从数据库中直取数据;如果未开启“更改后自动刷新数据”,则每次编辑都是在缓存有效期内,查询的缓存数据。

【解决方案】

1)卡片编辑保存后:都统一刷新下页面(目的:刷新缓存数据)。

2)直连数据集/数据更新那里,设置缓存有效期时可以选择无缓存(目的:尽量消除缓存数据)。

其他:查看更多关于直连数据集缓存的说明


9. 编辑卡片提示“ 支持自动刷新的数据集行数已达上限 ”?

【原因】:出现这个情况是因为数据集过大(超过100w行)为了保障系统运行效率,这个开关默认是不允许打开了。可以在管理员设置-运维管理-卡片参数配置,这个页面里修改 编辑非直连卡片时自动支持自动刷新的数据集行数上限。

10. 加入“工具提示”后图表颜色变了

原因分析:加入“工具提示”实际是加维度了,所以数值顺序上会有变化。

解决方式:①如果没有【对比】字段,加入工具提示前后颜色不会变化(可以考虑取消【对比】字段);

②如果一开始的着色是按照维度【颜色】的字段着色的,那么加入工具提示前后颜色也不会变化(可以考虑加入【颜色】字段)。

image.png


11. 卡片中表格设置了总计,但没有数据

(1)出于表格展示性能考虑,对表格计算的数据量聚合后数据是有2w行的限制的。 所以数据量过大的情况下总计可能会显示不出。一般外部会对表格有筛选,会缩小数据范围,数据量不超过限制的时候总计是会有值的。推荐添加筛选器,既可以使得数据有条理,又解决显示不全的问题;
(2)某些使用公式的聚合度量,系统没办法正确显示总计,所以就不显示。

(3) 数值字段聚合方式选了“无处理”,那就不进行总计计算,需要切换成其他聚合方式。

12. 总计不展示,总计展示的样子不正常

表格的维度里列数不能超过31列,超过的话会不展示小计/总计。

image.png

13. 用户行为分析页面的原始数据在哪里可以看到?

原始数据可以在数据中心看到,文件夹为“Built-in-Dataset”,数据集类型为“内置数据集”。


14. 行总计是灰的,如何设置行总计

对比栏里有字段时才能计算行总计。

图片.png

15. 表格排序不生效(排序规则)

(1)无小计总计时

    1. 对同一个字段,既有表头排序,也有「排序」时,表头排序优先;

    2. 有对比项,无表头排序时,数值类型字段排序会被拆分成多个数值项,因此不处理数值排序,仅支持维度的排序。

(2)有小计总计时

    1. 首先保证总计小计的位置

    2. 对同一个字段,既有表头排序,也有「排序」时,表头排序优先;

    3. 有对比项,无表头排序时,数值类型字段排序会被拆分成多个数值项,因此不处理数值排序,仅支持维度的排序。

image.pngimage.png

16. 卡片下钻时报错

下钻的卡片里必须存在点击下钻的同维度字段才能下钻。如果下钻用的字段是卡片的新建字段,或者下钻卡片用的是不同的数据集,那么会无法下钻。

【解决方法】:保证一级卡片展示出来的维度字段,二级下钻卡片里存在同名同类型字段。


17. 表格的列数限制是怎么样的?

表格类型

维度

数值

对比

筛选

排序

普通表格

维度+对比字段<=32(维度+对比字段>31时小计总计不显示)

124

维度+对比字段<=32(维度+对比字段>31时小计总计不显示)

20

20

分组表

64

无限制

\

20

20

明细表

无限制

\

\

20

20

轮播列表

聚合主键+字段<=50

\

20

20

热力图

1

1

1

20

20

注意:预览或者导出卡片出现报错“Cannot cast [Ljava.lang.Object; to org.apache.spark.sql.Column”是因为后端在处理时需拼接SQL,聚合等操作,还可能会超出长度,此时减少字段的数量即可解决。

18. 表格-热力图的对比字段值数量限制

对比字段里的值个数限制100个内。


19. 页面中表格无法左右拖动,横轴滚动条失效

设置的表头固定的默认列数较多,超过了一屏的显示,建议减少一下维度下的字段数量,即表头固定的列数。

图片.png

20. 卡片上的数据标签显示不全

在数据标签设置里勾选下“允许重叠”,数据标签就能全部显示。

image.png


21. 在文本字段内容前面添加空格来实现维度字段的层级缩进,但不生效

观远BI前端界面(包括页面卡片、数据集预览),会默认去掉前面的半角空格显示。如果要实现缩进效果,建议在字段前添加全角空格,然后设置字段左对齐。


22. 漏斗图的转化率和到达率是什么意思?

漏斗图的转化率是当前环节人数/上一个环节人数,到达率是当前环节人数/第一个环节人数。


23. 卡片编辑页面,修改后一直处于加载状态

卡片编辑以后默认自动预览页面,如果在加载中状态原因一般是预览任务还在执行中,如果耗时较长,可以参考文档《任务长时间运行或者任务卡住怎么处理 》解决。


24. 编辑卡片时提示“当前卡片数据超过上限,仅显示前20000行”

原因分析:为性能考虑,当数据量过大,超过了2w行的时候,会限制数据的展示,即仅展示前2w行。(这里的2w行与导出Excel中的前2w行对应)

解决方案:①设置筛选条件,控制数据量在2w行之内;②优化卡片结构,控制对比项及对比值的数量。

注:其他类型的图表也有行数限制,顺序参考导出excel之后的前N行。

25. 有日期字段,无法选择同环比计算

高级计算-同环比只支持日期格式(date和timestamp),如果日期字段是string类型的需要先转换字段类型,非直连数据集可以用to_date()函数。

26. 筛选器里批量粘贴搜索的上限是多少?

目前设定是1000。

27. 卡片里用函数获取的今天日期为什么没有实时更新?

原因:卡片里所有数据的更新都依赖于数据集的更新。如果数据集当天未更新,用函数current_date()/now()/today()等获取的日期、时间不会自动更新,显示的是数据集最近一次更新时的缓存。

解决方案:设置数据集每天最少要更新一次。

28. 如何在表格中实现手机拨号

需求:工作人员需要在卡片中通过点击手机号就触发拨号功能。

方案:将[手机号]这个文本字段放在维度里,设置显示为“超链接”,地址写tel:${{{value}}},如图

注意:确保表格关联的数据集进行了严格的数据管控

image.pngimage.png

补充场景:

在卡片中通过点击手机号发短信:sms:${{{value}}}

image.png

在卡片中通过点击邮箱发邮件:mailto:${{{value}}}

image.png

29. 为什么把内容为图片URL的字段设置为“显示为图片”不生效? 

可能原因:包含URL的文本类型字段只有放在维度栏或者对比栏才能生效,放到数值栏无法生效。

30. 表格设置了固定表头,为什么只有部分列固定住了?

原因:表格锁定的最大区域为表格区域的60%,超出的列不锁定,此时手动设置的固定列数不生效,处理为自动状态。 

解决方案:调整表头字段列宽,使要固定的部分小于卡片大小的60%。

31. 对聚合度量设置了条件格式,和当前列的平均值作比较,为什么不生效?

原因:条件格式比较里的平均是基于“聚合后的数据“”计算得到的平均值,其实是正确的;觉得不生效是因为总计小计用了“以原始数据计算”的平均值。



2 人点赞过