这次做网聚宝搜索服务化这个项目,体验了一下阿里云的重量级云产品MaxCompute。MaxCompute在网聚宝搜索上云这个项目中起到了非常至关重要的作用,一句话总结:MaxCompute是非常靠谱的。在此将之前碰到问题点做一下总结,希望对有和我们一样需求的团队或者个人有所帮助。
那么终搜为什么选择MaxCompute呢?
搜索引擎都是为了解决业务方数据多维度随意组合的条件搜索的需求,终搜的产品也不例外,在构建索引的过程中有非常重要的一个步骤就是将业务数据库中的数据导入搜索引擎中。网聚宝搜索上云项目中所用到的数据源是来自多个数据库的多张数据库表,对象实体是由一对多,多对多的表组成的。所以在数据导入到搜索引擎之前对数据进行扁平化处理成为一个必不可少的环节。
抱着试试看的想法,开启了MaxCompute之旅。
其实现在总结起来,使用MaxCompute还有一个非常重要的原因,就是阿里云在云基础设施配套这块做得比较到位,比如,针对MaxCompute数据导入有CDP(Cloud Data pipeling)这个产品来负责数据导入工作。
在MaxCompute上执行多表数据扁平化工作,这对于MaxCompute来说小菜一碟,有现成的聚合函数可以使用,如wm_concat。终搜将宽表构建成索引,用户可以很方便地通过trade.id来反查user.id。而且,数据库处理的数量级和MaxCompute处理的数据级完全不在一个等级上。但凡数据上G上T之后,数据库只能干瞪眼了,而像MaxCompute这样的MR工具却可以轻松搞定,再多数据也只需要通过集群节点的水平扩容轻松搞定。
关于MaxCompute的收费情况呢,终搜因为是集团内部团队,可以通过申请MaxCompute抵价券来使用。基本上,打一个2亿条记录的宽表(需要关联多张表,且有比较复杂的聚合),一次收费大概是100元左右,在开发测试阶段是非常昂贵的,所以在测试阶段不要用全部数据来进行测试开发,抽取一个样本子集来进行测试。这样,因为数据量少了,可以缩短计算时间,缩短测试周期,并且降低费用。
如果您想详细了解MaxCompute相关信息,请访问:
http://mozhenghua.iteye.com/blog/2124943