henglabs / issues

0 stars 0 forks source link

杨慧:[P0]追加合并后的表存在丢失数据的现象 #233

Open zhaosy0415 opened 6 years ago

zhaosy0415 commented 6 years ago

聚合表url:http://52.83.102.127:8090/#/app/77/dataset/860 追加合并表url:http://52.83.102.127:8090/#/app/77/dataset/865 问题最开始发现是针对上一条issue,首先'订单明细项状态'在聚合表中是有数据的,因为这个是用来筛选的条件,很重要,然后做了一个追加合并表,查看'订单明细项状态'全部都是空的.

janplus commented 6 years ago

看上去是fusion表追加合并的问题, @weishishuo 看下你在处理的问题是不是包括这个

weishishuo commented 6 years ago

这个是对数据追加的误解。

数据一点都没少。其实追加后的数据集865(其实我们实现是隐藏的866)是旧的865被859,860追加后生成的。860追加的列数据一点也没有变,但是这个列在859,865的行中当然是空的了。不然拿什么填充呢?数据追加,数据聚合,很容易生成null的数据,需要理解好聚合和追加的概念。 数据详见下面sql结果,第一列是行数,第二列是'订单明细项状态'的状态。

postgres=# select count(1),"hs_itemstatus_845" from "dataset_860" group by "hs_itemstatus_845";
  count   | hs_itemstatus_845
----------+-------------------
 46156666 |                 2
   509388 |                 3
        1 |                 1
(3 rows)

postgres=# select count(1),"hs_union_54" from "dataset_866" group by "hs_union_54";
  count   | hs_union_54
----------+-------------
 46156666 |           2
   509388 |           3
        1 |           1
 26442802 |
(4 rows)
zhaosy0415 commented 6 years ago

@weishishuo 你现在需要知道是: 1.我搜索 订单明细项状态 这一列我在追加合并表里面有且仅能搜索出来一列,而且这里一列结果没有 2.客户搜不到这个数据,那就不能筛选,不能筛选那就达不到他想要得结果. 3.那就让这个结果显示出来即可.客户不会管底层是怎么实现得.结果就是这一列要有数据,如果没有数据,那就是说明追加合并有问题.不管你sql对出来得数据是怎么样得,客户最终结果没看到数据显示那就是有问题.

weishishuo commented 6 years ago

image 追加的示意图是这样的,只有数据集3才有的字段,追加在后面,你只看前面的数据,当然只有空值,这不叫数据丢失。你按那个字段排序自然就能看到了。

weishishuo commented 6 years ago

image 你可以拿这个字段来做列值分组,可以看到并不全都是空,而是有值的。

im0nk3y commented 6 years ago

@weishishuo 我理解你说的数据没有丢失,追加后只有部分行的这一列不为空,所以这里的数据集是正确的。 但是请注意客户的问题是:没有搜出来,因此无法进行筛选。

weishishuo commented 6 years ago

我前面解释的是为什么在数据集的数据管理页面,看到'订单明细项状态'这列全部是空的,因为那里展示的不是全部数据,而是前面的1000条。你们说的无法筛选,是说在作图的时候做的筛选吧?我试了一下,你们当前版本确实作图的时候看不到这个字段,这个bug我们同事( henglabs/everest#1851 )已经修复了,在下一个版本升级中就好了。

zhaosy0415 commented 6 years ago

今天追加了一下午一直转圈,明天再试试吧.