CU访谈录:DTCC讲师徐冬奇分享技术路上的挑战、踩坑、痛苦、成长

2021-11-11 00:00:00 数据 分析 技术 分布式 系统

大家好,今天我们采访的嘉宾是本次DTCC中国数据库技术大会的讲师徐东奇,他是来自百度基础架构部大数据团队架构师,擅大数据平台(OLAP分析、用户属性挖掘)、分布式存储等技术,目前关注广告平台。
 

arron刘:首先请徐冬奇老师简单介绍一下自己的经历以及从事的工作?
徐冬奇:从北大计算机网络与分布式系统实验室毕业后,我就直接来百度了,一直在百度做,现在已经是第五年了,百度是家非常好的公司,技术氛围非常浓厚,工程师非常踏实,简单可依赖的企业文化深入人心。在百度我主要focus在大数据平台和广告领域,先后负责过分布式key-value系统、分布式消息中间件、OLAP报表分析系统、用户属性平台等等。我所在团队为大数据团队,这是一个非常有活力的团队,公司所有日志数据全部集于一起管理和治理,这些数据经过OLAP分析助力百度各种各样的产品决策、经过挖掘助力百度商业变现能力的提升以及产品的不断优化。随着移动互联网的迅猛发展,未来是大数据时代。为什么这样说呢,各种各样的手持设备,用户上网时间越来越多,碎片化也越来越厉害,这时候会产生大量的数据,如何利用这些数据掌握产品发展趋势做出快速迭代的决策,如何从这些数据挖掘出重大价值就成为非常关键的了。百度大数据团队,技术实力雄厚,业务广泛,基本上目前业界很火的元素都在其中,如数据仓库、Hadoop分布式系统、数据挖掘、Deep Learning深度学习、用户行为分析、OLAP分析、报表系统、广告变现、移动互联网等等。


arron刘:您在百度中是从事大数据工作的,您目前使用的数据库是什么?目前对于逐渐热门的hadoop等产品,你有什么看法以及一些相关采用建议?
徐冬奇:我目前使用的数据库是MySQL,虽然大数据时代大家都在提NoSQL,认为SQL在大数据时代已经不重要,实际并非如此,MySQL在BI报表系统中扮演了很重要的角色。与此同时,大数据平台也引入了SQL,从而使得大量的分析人员、工程师使用SQL从海量数据中快速查询内容。
Hadoop体系是个非常了不起的,围绕它业界建立并不断丰富了它的EcoSystem,从传统的HDFS、MapReduce,到诸如Hive、Scribe、Zookeeper、HBase等等。我们的大数据工作实际上已经很难离开Hadoop了,在百度你经常会听到工程师说今天要跑个任务,百度的Hadoop集群已经是万级别的规模了,存储、计算、调度百度都研发了新一代的系统,尽管如此,其本源仍然是Hadoop体系。中小规模的公司,如果用到大数据,我建议义无反顾地去加入到Hadoop生态体系的怀抱,搭建一个Hadoop系统并不困难,从学习到配置各类参数搭建好两三天就够了,想要从大数据中查询用Hive;想要出天级报表,简单的方法就是每天跑个Mapreduce任务或者写个HQL任务灌入到Mysql即可。


arron刘:您这次在DTCC大会中分享的主题是“百度OLAP报表分析系统”,从你所经历的来看,你印象中OLAP和OLTP系统这两类系统大的技术差别在哪?谈谈你的经验、心得、感受?
徐冬奇:数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。由于两大系统应用领域有区别,侧重点自然也有区别,OLTP更多地侧重于ACID事务处理,ACID是指在可靠数据库管理系统中,事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),要做到这些,技术难度是很大的。而OLAP技术难点在于如何在海量历史数据中给定各个维度毫秒级别快速查询出想要的结果,技术往往涉及预聚集、物化视图、列存储、压缩、查询优化、谓词下推等等,对于OLAP来说,根据应用场景还可再细分,一个是报表系统,它的特点是查询QPS非常高、 7*24小时不停服务、查询往往通过web界面固化,一般面向数十万广告主、网站主的报表就是此类别;另一个就是OLAP分析系统,它的特点是查询QPS并不高,一天几千个查询,也不要求7*24小时服务,主要面向决策分析人员,查询时各个维度可随意组合,上卷、下钻随意进行。一个公司里会用OLAP做分析的分析师并不多,大部分人所使用的报表都是提前设计好的,针对所关注的点提前做了物化视图的优化。
      当然,OLAP与OLTP也有技术共通之处,很多时候我们在优化OLAP时,时间就会想OLTP类数据库系统他们怎么做的,是不是可以借鉴,例如谓词下推、索引选择、Partial Aggregation等等。在我们的系统中,我们专门针对OLAP开发了存储引擎,作为Mysql引擎,这样可在Mysql中写SQL来做毫秒级OLAP分析,这也可以看作OLAP与OLTP的碰撞和互补所长。


arron刘:许多大的互联网公司都会采用key-value分布式存储系统,您能不能给我们描述一下您工作中的key-value分布式存储系统特点,以及是如何实现的?
徐冬奇:百度的Key-value分布式存储系统应用很广泛,各个集群加起来万台机器规模毫不夸张,系统具备高可靠性、高可用性、易运维等特点。存储系统还像Mysql一样,可挂载不同的存储引擎,有的引擎擅长于Scan顺序读,有的引擎擅长于单个Key的查询。系统由存储节点、元信息模块、单点切换模块、API以及相关配套软件组成。


arron刘:现在数据挖掘是很多公司都在做的事情,您能不能给我们介绍数据挖掘需要注意的点?
徐冬奇:做数据挖掘,前提是数据仓库要建设好,数据源质量要保证,由此各类ETL工作非常繁杂。随着移动互联网多屏时代已经到来,操作电脑、玩各种各样的手机app,看智能电视,那么如何将这些数据贯通起来成为非常关键。数据挖掘往往需要涉及数据清洗、特征提取、训练样本、模型训练,这里面其实各类算法差别不会太大,重点在于选取哪些数据,提取哪些特征,样本如何弄准确。 行为数据精准性是个大的工程,首先日志打印得对不对都是问号,各种各样的垃圾充斥其中,日志处理时各种各样的异常都需要去处理,再比如那么多服务器上的日志如何快速准确得收集。


arron刘:商业智能是大数据时代技术发展的一个主要方向,您能不能给我们简单介绍一下您用过那些BI工具,以及各大主流BI工具多维分析的技术差异性?
徐冬奇:我们采用了商用的BIEE,有专门的数据分析师开发出各种各样漂亮的BIEE报表,BIEE后方对接Mysql,Mysql对接我们自研的OLAP系统。BI工具本身并无多大技术差异性,都是将用户在界面上的各类操作转化为SQL或者MDX,发送到后端去查询。难点在于后端如何优化,如何能在毫秒级将SQL结果返回。


arron刘:BI项目实施,是技术架构和业务架构谁先确定?谁主谁辅呢? BI的实施面临着哪些挑战呢?
徐冬奇:BI项目的实施,业务梳理和指标抽象很重要,先确定要建立什么样的主题,之后才是看如何建立OLAP后端,例如物化视图该如何设置,SQL该如何改写和优化。业务和技术有时候需要不断PK和合作,例如业务上提取要对一个非常细粒度的数据进行任意时间段的查询,那技术上则会有很大代价,保存大量数据耗费大量的磁盘,但事实上这类查询需求往往只会针对近段时间的例如近一周,而不需要去查过去半年非常细粒度数据。这就是业务和技术不断PK、不断平衡得到的合理架构。
        

arron刘:您对这次DTCC大会有什么比较期待的地方?
徐冬奇:大家在一起碰撞出一些火花,对大数据在中国的应用进一步推动,不断提升中国工程师技术水平和视野。


arron刘:您对刚从事数据库行业的新人以及想从事这行的人有什么建议?
徐冬奇:我的建议是加入大公司大团队,只有在大数据中浸淫才能不断提升自身大数据知识和技能。之前也面试过人,说对Hadoop熟悉,在学校里跑过两个任务,但离真正的Hadoop工程师还很远,原因就在于没有有挑战的任务需要去解决,很多坑都没有踩过。具备良好素养的工程师都是通过不断踩坑成长起来的。


PS:大家也可以根据自己平时工作中遇见的一些相关问题进行提问,我们将会在第五届中国数据库技术大会上给大家进行一个更加详细的专家解读!  

相关文章