2013-3-15

最近觉得脑子越来越不好使了。

如前文所说,我最近的工作是把tudou的视频信息生成一个sitemap.xml交给百度,这里面包含了土豆当前所有视频的信息,是全量。但是百度提了一个很无理的要求,要求我把之前提交过,但是现在不在最新的全量数据里的那些视频,即,从土豆后台删除的视频以及我误提交的视频,也包含在这个xml里。

这个功能看起来很简单。我原来的流程是:从mysql读数据,过滤,生成xml。 现在的流程是从mysql读数据,存入hadoop。读最近1天hadoop上存的数据,取并集做为一个大全量。然后对那个大全量,和最近最新的这份数据,各自过滤,然后相互diff,然后把diff的结果包含在输出的xml中。 这个逻辑是错的。

问题出在我对历史各个版本的数据取并集得到大全量那里。我假定我是不知道过滤规则的,只是简单的集合取并,而且以最新的一个为准。假如一个item在新版本中是该被过滤,而老版本中是不被过滤。理论来说这个应该被加入到delete列表。但是merge的结果是这个不被过滤,所以diff的结果不会包含它。

所以,我应该在hadoop上存的不是原始数据,而是过滤后的数据。我存原始数据是为了防止扯皮时查错难。结果……唉

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥