赞
踩
导读
本文介绍了高德地图中POI深度信息接入在平台化过程中的一些思考和实践,从最开始的单体应用,随着业务发展面临挑战,从业务角度提出解决问题的思路和方案,进而转化成技术设计并落地实现的过程。
背景
POI是Point of Interest的缩写,即我们通常理解的地点信息。对普通用户而言,POI数据除包含名称、坐标等基本信息外,还会展示图片、评论、营业信息等内容,这些我们统称为深度信息。作为真实世界在线上的直接体现,其丰富度、准确度、新鲜度对用户的出行决策起到了至关重要的作用,也是高德地图从生活服务等多方面服务大众的基础。
为了丰富深度信息,我们通过多种途径对接采集数据。每个数据接入源称之为一个CP(Content Provider)。最初只有少量CP的时候,每个CP建立一个应用,完全独立的存储、独立的代码,甚至采用的是完全不同的技术栈。
然而,随着接入规模不断上涨,这种单体应对模式逐渐无力支撑,无法批量生产、更新、运维、监控等问题成为了业务迭代路上的绊脚石,大家花在基础维护等事务上的精力占比甚至超过了业务迭代。
用一组数据说明下深度业务的发展速度:一个季度工作日130天左右,新接入的任务数量却多达到120个以上。截止目前接入的任务总数是研发人数的100倍以上,单日处理数据量达十亿规模。基于对这个趋势的预判,深度团队提前开始了平台化的探索。
平台化实践
平台化的思路是明确的,但是平台化的具体设计实施却有诸多不同的选择。
大多数数据接入系统的设计目标都相对比较纯粹:作为接入系统,只要把数据拿到并输入到本业务体系内就可以,剩余的如数据解析,业务处理都由下游的其他系统再次加工才可形成真正的业务数据,即接入系统从设计之初就是无状态的,对数据本身的理解也基本与业务无关。
但是考虑高德深度信息接入业务的特殊性,我们平台化时并没有采用这个方案,而是采用一种更集约化的思路,接入平台本身对数据就需要有充分的理解,不仅负责数据接入,还要负责数据解析、维度对齐、规格映射及生命周期维护等相关内容,平台直接内置了深度信息处理流程的全部管控逻辑。
另外,不同于一般的接入系统,除研发(RD)外,产品(PM)也是系统的第一用户,平台需要有能力让PM在了解有限技术约束的条件下自主完成全流程数据接入、分析和调试,这就对平台所见即所得的实时设计调试能力提出了极高的要求。从平台设计角度要解决以下一些难点:
数据规模不均匀:不同CP的数据量和数据体积相差巨大,有的源数据量有几亿条,最少的CP甚至只有一条数据。具体到每条数据大小也差距悬殊,如部分数据单条达到7.5M,有的则只有一个字段,仅几个字节。
业务场景不收敛:深度数据来源多且杂:有三方合作接口、离线文件、经济体内OSS、ODPS、MetaQ等,且CP数据结构和关联匹配规则多种多样、无法预知,需要平台在设计上能支持各种场景下的维度对齐。
映射清洗逻辑复杂:这里还有一个和常规业务不同的点,高德深度数据
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。