南游记

其实是跑到深圳参加了某个会议,简单总结下。

看到这个会议名字的时候,我是有点虚的。又是“大数据”,又是“互联网+”,噱头十足。一般这种会议水分也很充足。。。这种会议吧,未必真的能学到什么东西,关键在于聊天吹水换名片兼挖人。。。还未进会场就收到了一堆招聘广告。
每个演讲开始前,讲师都会宣传自己的公司、推销自己的书、公众号,演讲结束前还要帮公司挖人。。。
这个真的是技术会议嘛?

不过干货虽然少,还是能捞出一些。

流水帐

28日上午

很水。
各路CTO/CEO/VP上台演讲,本来就不能抱什么期望。不能指望听到什么技术。
倒是360的一个人讲的数据变现比较有意思。数据到底能不能赚钱?似乎只有广告一条路可以走。他说现在很多所谓的大数据应用其实都不是真正的大数据。bigdata已经变成了一个营销词汇。从技术上来说,只要能采样处理的都不是bigdata,只有那些必须全量处理,而数据量又大到传统手段不能处理的,才是bigdata。
另一个很重要的问题就是隐私,说是达摩克利斯之剑也不为过。我很久以前跟一个朋友聊天,说我是做统计的,你在app内的各种行为都能被记录到,他就非常反感。。。虽然他完全不懂技术,也不知道这些数据是用来干什么的。
就像倒卖个人信息的快递员,人家也算是数据从业人员了。。。

不过他们都真的很能讲,发明各种各样的概念。
“全方位的、360度的大数据”,这是什么鬼??

最大的收获是一个数据驱动决策的段子:“领导看了报表,哈哈一笑,听取大多数人的意见,然后按自己的想法拍板”。。。

28日下午

O2O电商架构专场。

  • 美团:《O2O领域的基础信息建设》。建设商家中心的一些经验。美团的商家信息都是商家上报或自主采集的,如何对这些信息进行清洗、合并、扩展。可惜没太听懂,业务还是挺复杂的。
  • 菜鸟:《物流领域大数据应用-路由分单(青鸾智简)系统》。感觉就是根据地址信息自动配送路径。典型的分类算法。
  • 唯品会:《实时数据在移动电商中的应用与实践》。完全是非技术的好嘛。
  • 魅族:《魅族电商平台架构的变迁》。电商架构,简单明了。当然不能跟淘宝之类的比,但对我这样没什么经验的人,这种简单的反而更易理解。
  • 京东:《京东搜索和618实战》。我对搜索了解不多,只知道基本的原理。架构图很复杂,但感觉讲的不太细啊。主要是hadoop离线建索引+MQ的实时索引。同行的搜索部门的同事倒觉得收获很多。

29日上午

移动大数据专场。

  • 汽车之家:《如何构建高效的数据采集系统》。大概就是一个日志收集系统吧,包括如何埋点,如何设计日志,前后端规范。还是讲了一些实践经验的,但技术细节较少。
  • 吆喝:《AB测试高效实现全数据驱动产品优化》。讲了半天都是AB测试的好处,google/facebook通过AB测试提升了多少营收,提升了多少转化率。好处我当然知道啊,我想知道的是细节,如何构建这样一个支持AB测试的系统,怎样的分流规则,有哪些要注意的地方,踩过哪些坑。估计这哥们只是个数据分析师吧。
  • 友盟:《移动大数据平台架构与实践》。友盟还是比较有发言权的。分享了data pipeline设计以及一些数据处理的经验。架构是简单的lamda architecture,但实时处理和批处理却分为了两个kafka。另外提到的一句话很有道理:“移动互联网红利已经结束,现在要比拼精细化运营”(大意)。
  • 乐逗:《大数据处理及建模技术—基于R语言实现》。应该叫R语言简明教程。我完全不懂R,所以没怎么听。感觉R和matlab有点像。另外数据可视化让人印象深刻。
  • 手淘:《亿级UV手淘背后的移动大数据采集体系》。难得的干货,认真的从头听到尾。因为我以前也是给移动应用做统计,所以了解很多痛点。和汽车之家的分享有些重合,但更全面,更深入。

似乎现在移动端的统计都必须是专业的SDK了,我们以前那种手动打日志的方式太low了。
但想做一个好的SDK真的很不容易。做的不好轻则统计不准/扩展困难,重则影响app本身的功能。

重点说说手淘的分享。几个有意思的:
1.链路追踪:类似GA中的页面流,基本方法还是加参数。
2.客户端聚合:为了减少日志量,会在客户端做简单聚合再上传。
3.日志分级:业务日志的优先级明显大于性能日志,系统压力大时会优先丢弃性能日志。我以前见过开发乱打日志,打印一种类似于ping的日志,数据量急剧增大。。。数据重要性:跟钱相关的 > 用户活跃相关 > 运营相关。
4.客户端清洗:一些简单的日志清洗工作会在客户端做,不需关联处理的日志都可以这样,似乎配置是实时从服务端取的。
5.上传策略:定时上传/wifi上传/启动上传/crash上传。
6.采样上传:似乎是压力大时会采样部分用户的数据上传,同一个用户的数据也只会采样部分。
7.SDK自身监控。SDK自身也会打印日志用于监控。
8.数据运维。运维是大公司与小公司最大的区别。手淘的运维平台可以做到埋点、校验、监控、调试等等。但不知道技术细节。
9.双11灾备。业务分优先级,压力大时优先保证P0业务;系统降级,自动重设超时时间。

其实还是有很多疑问的。比如手淘是如何跨native和H5统计的。

汽车之家的分享中提到日志扩展性的问题,我也说说我们以前的做法。
早期的日志都是开发定的,非常随意,虽然都是json,但没有统一的schema。日志格式一旦变化就很痛苦。
后来受twitter某篇论文的启发,定义了统一的日志格式,固定的N个字段+一个可扩展的json。
但很多时候日志格式设计都只考虑了可读性,也许可以设计的更加紧凑,那性能也会更好。

29日下午

数据安全专场。

  • 京东:《大数据下的电商风控体系》。算是干货。部分原因是我一直不太了解风控,所以有很多启发。画像还是挺有意思的,包括IP画像/设备画像/人机画像等等。其实风控最核心的是规则引擎吧,而且这个根据业务的不同差异很大,也不能直接复制。

然后我们就悄悄的跑路了。。。

大数据万能论

2天听下来,最大的感受是,很多人觉得大数据是万能的?
张口闭口大数据。自从用了大数据,腰不酸腿不痛,成本下降了,库存不积压,决策不拍脑袋,利润一口气翻五倍不费劲,一切都无比美好?这种论调尤其在第一天的CTO/CEO之流的演讲中出现非常多。

也许每个人看待所谓的大数据都不同吧。在我看来的bigdata是一堆技术的集合,以hadoop为代表。技术又不能帮你创造价值,关键还是看你怎么用。什么机器学习、数据挖掘,不都是在大数据之前就有的东西么?如果你对数据只是简单的count(1),数据量再大又能如何?
数据->信息->价值,这个转换不是那么容易的。而且其中的经验未必是可复制的。对技术而言,不会因为公司的不同而不同。你的hadoop集群和我的hadoop集群不会差太多。但你能从数据中获取价值,我按同样的方法去做,就未必可行。往小了说这和人员素质、经验有关,往大了说这和公司的业务、文化有关。
一个很危险的倾向就是为了用而用。明明excel就能搞定的偏要用hive;明明抽样统计下就可以偏偏要跑全量数据。感觉就和SOA一样,很多人根本不知道自己想要什么,只是机械的模仿别人,或者是为了符合“业界标准”。

但对传统行业而言,也许这个概念真的是颠覆性的。就像若干年前的信息化改造一样。
所以CTO/CEO们抓住这个机会,各种忽悠。但也就忽悠下外行罢了。

所谓架构

既然是技术分享,当然有不少的架构图。但其实吧,大数据相关的技术无非就那些,hadoop/spark/kafka之流,每个人根据自己需求的不同组合起来,需要定制开发的很少,所以技术架构都是大同小异。何况还有lamda architecture这种公认(算是吧)的成功范例。一些感受:

  • kafka已是标配。
  • 实时处理的还是storm多,可能出的早吧。JStorm也开源了,要焕发第二春?
  • Elasticsearch异军突起啊。以前没怎么关注过。

真正复杂的反而是各种业务架构。
这个我很难评判,因为我没有相关经验,总不能乱讲。我只知道看着很头痛。。。人家设计成这么复杂,总不会是为了好看吧。
只有在特定的场景下,才能评判一个架构的好坏。

我现在越来越觉得,所谓的“技术栈”深度是有限的,但在有限的技术上总能折腾出无限复杂的业务。。。

如何听技术分享

只是个人的一些习惯。
整个会议40多场演讲,怎么选择听哪些?听的时候有哪些重点?

  • 看背景。看人的背景,看公司的背景。来自大公司的干货机率总是大些。CXO的演讲一般没什么营养。尽量去听一线开发人员的演讲。但如果有个人光环,比如Doug Cutting之类,那是必须听了,哪怕讲的不是技术相关也得去凑凑热闹。没错我就是这么庸俗。。。
  • 看题目。太宽泛的题目水的概率比较大。如果能关注某部分技术细节,我会更感兴趣。
  • 个人兴趣。有些题目我完全没有背景知识,去听也没有意义。像什么R语言之类的。。。但移动统计相关还有些经验,所以能有很多收获。当然也和公司的需求有关。
  • 关注实践。我最关心的是他们踩过哪些坑,是如何解决的。什么背景啊、意义啊、需求啊,讲得再多也没用。
  • 别被架构图吓住。很多图看着很复杂,但只是你不了解相关业务才觉得复杂的,不要被他们的业务逻辑绕进去。单独看某一部分就会简单很多。典型的就是美团的那个分享。
  • 如何提问?演讲后总会有提问环节,但提问前先理清自己的思路好嘛。问题都说不明白,让人怎么回答。而且不要问得太宽泛,不要问和演讲无关的。某些人问“XX老师您觉得电商的未来如何?”。这种问题有何意义啊。

如何做技术分享

只是一些我觉得应该注意的细节。

  • 画得不好的架构图不如不画。太简单没意义,太复杂听众也不懂。有人总喜欢用复杂的架构图标榜自己如何NB,我觉得很没必要。能讲清楚事情就可以了。
  • 别念ppt。不只是技术分享,所有的presentation都是。好的ppt应该没多少文字的。
  • 别罗列代码。在ppt里嵌代码要谨慎啊。这种过于细节的东西,很难保证所有人都理解。反而让人觉得讲师功力不够。就像看书一样,大篇的代码很容易让读者疲劳。
  • 不要怕短。有些人喜欢讲各种废话拖时间。。。10分钟能讲清楚的事情偏要讲半小时。
  • 不用刻意幽默。讲问题就好了。台上自己笑台下鸦雀无声,真的有点尴尬。。。
  • 数据说话。你说你的系统多么NB,那拿出数据来,支持了多大的业务量,跟已有的系统比较如何。
  • 不会的就老老实实承认。有些细节如果含糊带过,事后被人提问答不上来,就悲剧了。。。

其他

  • 深圳真温暖,回到杭州冻成狗。
  • 为啥前台妹子都是一口京腔。
  • 原来hu建人都用“fu联网”啊。

总的来说,参加这种活动还是有点意思的,抱着观光旅游的心态就好。
回去继续干活去了。。。