《小米数据生产平台的产品设计方法与实践.docx》由会员分享,可在线阅读,更多相关《小米数据生产平台的产品设计方法与实践.docx(27页珍藏版)》请在第一文库网上搜索。
1、导读本文将分享小米数据生产平台的设计与实践。文章将围绕下面四点展开:O1数据生命周期全流程介绍首先,从产品经理的角度,给大家用浅显易懂的方式介绍一下数据的生命周期全流程是什么。一收工存愉处理应用数据生产链路数据从生产到应用全流程大致可以分为5个步骤,首先是数据的产生,接下来对产生的数据进行收集,再找个容器存储起来,存储后进行处理加工,最后把数据投入应用。大部分数据产品都对应这五个环节。而今天要介绍的小米数据生产平台重点在前四个环节,我们将前面四个环节统称为数据生产链路。数据生产的过程,可以用水的产生到应用做一个类比。首先,水产生于雨水、以及江河湖海中自然产生的源源不断的水资源(产生),因为我们
2、需要利用水资源,所以人为修建堤坝、水渠、水库来将这些水分流收集并且存储起来(收集&存储)。希望这些水可以为我所用,就需要一些处理流程,进行水净化、过滤、消毒、去污等一系列操作(处理),最终不同处理方式的水可以分别用于饮用水、灌溉、工业生产生活等场景中(应用)。数据的流程和水的生命流程是类似的。生活中的行为会产生各种各样的数据,互联网时代,线上数据较为常见,例如使用手机、电脑、手表等电子用品,人们在以上的终端进行各种操作,就会产生行为数据;另一类是和生活更密切相关的线下数据,例如逛商店、做运动、听歌、拍照、录视频等线下实体行为,同样会产生数据。3.数据的收集线上行为采集(端上) 客户端:Web.
3、AndOrkI、iOS、Windows 服务端:日志、消息线下行为采集(物联网) 硬件联网:Wi-Fi、传感器、摄像头等等 传统:问卷、赞记外部数据采集-爬虫;A业务系统数据同步-跨源MySq1tOHive.异构MQtoHive数据产生后,根据不同的终端或者维度,进行数据收集。数据的收集是将不同的业务系统、终端、源头的数据实现互联互通。线上数据采集分为客户端和服务端,客户端与用户联系更紧密,常见的有Web端、网页端、安卓和苹果手机的操作系统等。线下会通过物联网工具去进行信息的采集,例如,摄像头、传感器或者Wi-Fio另外一种传统途径,例如在之前特殊时期,会通过线下问卷或者表格的方式去登记信息,
4、也是一种数据收集过程。第三类是较为特殊的数据收集过程,通过爬虫采集外部数据,这类数据不是直接产生,而是在合法合规的前提下爬取已有的数据。另外,业务系统的跨源同步,也可以认为是数据收集的过程,把不同的数据类型汇集到一个更易于应用的大数据系统中。4.数据的存储数据的收集ataFurt存储数据存储容器的选择也类似故露格式/结构散糖大小/条数查询/犷晨/并发浮储/计Ji成本我们在日常生活中,选择存储容器的时候,会考虑很多因素,例如:被存储物件的形状、样式、形态、规模和使用场景,常用的物品希望存得近一点,成本也需要考虑,要权衡花费多少性价比最高。数据存储容器的选择也是类似的逻辑,数据的结构以及存储的格式
5、,数据大小和条数,在使用场景中,希望是查询性能更高,还是可扩展性更好,还是并发度更高,在数据的存储和计算过程中有多少损耗,还有技术上的考量等等,决定了我们用什么存储系统来存数据最合适。数据的存储存储类型举例关系数据库Orac1e,MySq1SQ1Sever,Greenp1umNoSQI存储卜Base、Reds.ES.MongoDB网络及消息队列Kafka、Ta1os.RMQ、Http文件系统HDFS、FTP、CSV.TXKExce1大数据存储Hive.Iceberg.Ho1ogres.Doris根据不同的数据结构、规模、使用场景,会选择不同的存储类型。大致可以分为五类:关系型数据库、NOSQ1
6、存储、网络及消息队列、文件系统和大数据存储。图中高亮出来的是常见的存储方式,小米用的是Iceberg和Ho1ogres05.数据的处理处理过程关键内容开发方式对数据抽取、转换、加载(ET1),分层建设在各个环节对数据进行清洗一般分为离线开发、实时开发、算法开发存储完成之后进入到数据加工环节,它是将原始的、堆砌的数据进行数据资产建设,加工后服务于数据应用场景,使其产生业务价值的过程。处理过程分为三个方向:数据ET1和分层建设、对关键内容进行清洗、用不同的数据处理方式进行计算ET1SQ1:结构化的强询语句ET1:源端-抽取-转帙-加载-目标所有关系型数据库的公共语言;用于存取数据以及直询、更新和管
7、理关系敷据库系统数仓分层:归纳整理、化繁为商、减少S3.提升效率ET1(Extraction-Transformation-1oading)z中文名为数据抽取,转换和加载的组合,利用SQ1语句,所有关系型数据库的公共语句,将数据抽取出来,经过格式转换与清洗,再加载到目标库中。形成数仓分层的表,对数据进行归纳整理,简化数据,去重,提升数据使用效率。这是ET1的过程及产出价值。清洗4计M存储五二处理应用原始数据清洗后的数据*1B提到“清洗,比如洗衣服一般是在做什么?1、洗掉脏东西2、去除多余3、补好缺漏4、晒干整理数据清洗的核心:问题数据的补充、调整冗余数据的查重、映射数据的整理、统一可以联想到生
8、活中洗衣的过程,去污渍、去原本多余的内容、补好衣物、晒干叠好。数据清洗的核心有:将问题数据修补完整,剔除冗余数据、将数据统一整理,将原始低质量的数据转变成高质量的数据。离线和实时开发数据的处理一离线实时分类黑线开发实时开发本定义TS是批处理,批处理一个范IB内的数据一般是澹处理,数据如水流般产生一点处理一点时延性要求不高,一般周期很长於/月厢一宜秒/秒iR延迟数据来源类型历史已存在的数据源源不断产生的数据应用场景秒杀/抢购、实时数据着板等此处对离线开发和实时开发做一个简单介绍,还是类比水的概念。离线开发就如水用于发电或发热,需要达到一定的量级才能实现能量转换,具有更高的输出效率,离线的过程需要
9、量的积累,再来批量处理。而实时开发就如落雨后直接进行分流、去污处理,没有中间蓄积的过程,数据的产生和加工、应用是同步进行的。所以,离线开发是批处理,而实时开发是流式处理。面对不同的业务场景和开发诉求,我们可以选择不同的开发模式。6.小米的数据生产平台架构小米的数据生产平台架构QtaFun.由史存储BSM处理HBM应用数据生产链路存储引掌小米平台覆盖了数据的产生、收集、存储和处理四个环节,基于计算引擎和存储引擎,在元数据、权限、调度以及集成引擎的基础服务上。该平台提供了四大核心能力:统一的数据采集与集成,对采集到的数据进行多引擎的存储,对其进行离线或实时计算,数据输出用于分析运维等应用。应用一方
10、面是在平台内部,一方面是提供给更上层的服务,例如B1工具、AP1接口服务、系统平台的打通等多场景支持。0202技术驱动型产品的设计与协同经验方法论1.数据生产平台是技术驱动型产品以上提到了很多技术概念,包括流批一体、SDK、引擎、ICeberg等,我们可以说整个数据生产平台是一个技术驱动型产品。以技术为核心竞争力 强依赖技术架构的实现 技术创新为核心导向 里性能和稳定性技术驱动型产品的核心特征OZaFm用户以技术人员为主 面向技术人员使用 核心工作是写代码 详细的底层逻辑比抽象概括更有用可能,你的用户逻辑技术驱动产品有两大核心特征:首先,产品是以技术为核心竞争力,强烈依赖底层技术架构和技术创新
11、为主要方向,更注重系统性能和稳定性。同时,用户以技术人员为主,无论是写JavazSQ1还是python的程序员,他们都是比产品经理更懂底层技术逻辑的用户。技术型产品常问的几个问题做桥梁做牵引,将擅长的方向发挥极致从核心要解决的问题与产品定位出发没有真正意义上的完美终局 用户调研、需求分析 顶层规划、产品柝解 设计落地、验收送代 项目管理、运营推广净差率(囊/作业) 使用频率(WAU/DAU) 渗透率(使用人/目标人) 效率(操作耗时/运行时长) 性能/S1A/晌应率/成功率 局部最优IW也是最优就 往整体规划处想.从MVP处落实 毋个阶段的矛盾和困难都不一样 内外部认知都要持壤更新其实,与其他
12、类型产品经理的工作模式如何在技术型产品中凸显产品经理的作用?产品经理是做桥梁的,我们需要把技术语言转化成产品语言,把用户语言转化为产品方案。另外设计落地、顶层规划、产品拆解、项目管理和后续的运营推广等工作,同样是产品经理的专业职责所在。做好这些我们擅长的事,就能发挥很多价值。如何衡量技术型平台的产出价值?从需要解决的核心问题出发,不同阶段有不同的定位,衡量标准也会动态变化。例如小米数据生产平台,最初是因为小米内部有很多类似的数据开发平台,而每个平台只能解决小部分问题,开发者需要跨N个平台才能完成一系列的开发工作,所以才会建立新的一站式数据开发平台,来统一解决数据开发过程中的问题,那么平台的核心
13、考量指标就是旧平台的下线率、已有业务的迁移率、新平台被用户使用起来的资源覆盖率等等;在统一平台之后,希望被更多的用户使用,所以使用频率以及用户的渗透率变为核心考量指标。再继续发展,我们成为一个成熟的产品,一样会开始关心用户留存率、访问量、粘性、甚至满意度等等,衡量产出价值的方式有很多。工作方法上会不一样吗?是否更加需要产品做更终局的思考?任何事情都没有真正意义上的终局,局部最优解也是最优解,规划的时候整体思考,但是落地的时候需要小步快跑,快速验证,重要的是在不同阶段不断地更新业务认知。所有工作本质上和其他类型的产品经理是没有区别的。技术驱动型产品中,产品经理该怎么做?技术驱动型产品中,产品经理
14、该怎么做QFun.转变思维为共同的业务价值目标努力技术与产品不是对手,而是战友,荣辱与共技术的产品思维,产品的技术理解是相互的在产品擅长的领域做到更专业,更好的分工协作持续学习,将技术语言转化为产品语言按需分工技术驱动型产品中,产品经理该怎么做QSFS技术主导,产品配合:技术选型与扩展产品主导,技术支持:工具体验交互流程定制规则合适的协作流程:引入技术评审、技术参与产品内审互相深度参与:用户调研、产品走查、方案共创技术驱动型产品中,产品经理该怎么做Q-Fs4专业的人做专业的事,各司其职,更高效价值牵引,技术驱动也可能变成产品牵头技术: 写代码、做实现 性能/架构/稳定性产品* 发面设计,沟通协
15、调 运营推广,用户交流 避免炫技,做用户真正需要的产品 拥抱变化,持续更新升级(认知/思路/策略/需求)总而言之,让专业的人去做专业的事情,所有的事情都是由价值来牵引的。产品为用户产生价值,是最终的落地点。拥抱变化,更新自己的认知和策略,才能让我们走得更远、更稳。2.小米实践案例分析案例一:技术驱动架构升级案例一:技术驱动架构升级OYaFS技术选Si由技术驱动整个架构升级,产品做配合落地工作。一站式数据生产平台,以前没有数据湖的概念,是基于Hadp体系,利用Hive或者Spark建设的传统数仓。随着数据量的扩展,性能和成本问题显现,原有的模式无法适应新的数据使用场景,所以由技术牵头,引入数据湖的概念,来解决传统