发起人:我未成妖 初入职场

写 code

回复 ( 2 )

  1. 曹犟
    理由
    举报 取消

    非常感谢对 Sensors Analytics(神策分析) 和我们团队 Sensors Data(神策数据)的关注。

    先对我们团队做个简单的介绍:团队核心成员均来自百度大数据部,从零构建了百度的日志分析大数据处理平台,有多年的大数据处理经验,以往的技术也基本构建于开源社区之上。目前,我们主要针对互联网企业提供大数据分析产品和完整解决方案,以及针对传统企业提供大数据相关咨询和完整解决方案。目前,针对互联网创业公司推出了深度数据分析产品Sensors Analytics(神策分析),支持私有部署、任意维度的交叉分析,并帮助客户搭建数据仓库基础,客户包括爱鲜蜂、多盟、AcFun、快快鱼、PP租车、51offer等。

    对于 Sensors Analytics (神策分析)这个产品,主要用到了一些主流的开源社区技术,例如Hadoop/Spark/Kafka/MySQL/Redis/jQuery/Impala等,并在其中部分组件上进行了源码级的修改,当然,我们自己也开发了一些核心的业务组件。

    整个 Sensors Analytics (神策分析)的技术体系,或者说技术点,可以从如下几个层面进行介绍:

    1. 数据采集:我们一直认为,采集的数据的质量是整个数据平台构建以及后续一系列数据应用的大的前提,因此,与传统的百度统计、友盟等统计工具不同,我们坚持私有化部署与全端采集,提供了PHP、python、JAVA、JavaScript、iOS和安卓等多种语言的数据采集SDK,以及 LogAgent 和批量工具等多样化的导入工具供使用者使用。不仅能够采集客户端数据,也能采集后续的服务端日志和业务数据。出于数据完整性、数据安全性、数据时效性等多个角度的考虑,更推荐使用者采集后端数据,如服务端的日志、业务数据库的数据等。同时,也按照我们对于用户行为数据的理解,对于使用者应该采集哪些数据、应该关注哪些字段,都提供了一套产品化的解决方案。
    2. 数据传输:Sensors Analytics 提供秒级的时效性保证,也即一条新传入的数据,一般几秒后就会体现在前端的查询结果中,并且这条数据中新增加的字段,也会几秒后就在前端的筛选和分组选择中体现出来,因此,如何在数据不重不漏的基础上保证数据流的时效性,也是 Sensors Analytics的一个技术难点。
    3. 数据建模:正如 Sensors Analytics的文档(数据模型 | Sensors Analytics 使用手册)上提到的那样,为了保证产品在不同行业的适应性,团队根据以往在用户行为数据方面的多年经验,抽象出了 Profile 和 Event 两个数据实体,分别描述“用户”本身的长期不变的属性,以及“用户”在某时某刻以某种形式做了某件事情。从我们目前十几个客户的经验来看,这个数据模型的抽象还是能够满足绝大部分产品对用户数据分析的需求的。
    4. 数据存储:在产品层面,我们 给使用者提供了最细力度数据上的完整的多维分析(OLAP)、漏斗、留存、回访等较为高阶的实时查询能力,并且支持 Event 数据和 Profile 数据的 join 分析,因此,为了保证查询的速度,在数据存储上,如何最好地利用列存储、分布式存储、压缩/编码等方式,加快查询速度,减少存储空间等,也是一个很大的技术挑战。
    5. 数据计算:一方面,为了保证查询的速度,后台会有一些例行的数据的预处理计算以及后续会逐步推出的数据预测计算,另一方面, Sensors Analytics 也将所有的存储和计算资源开放给了使用者,因此,计算的调度、管理等方面,也是我们一个必须要考虑的技术点。
    6. 数据可视化:作为一个数据分析产品,我们希望能够提供“自驱式”的数据分析体验,让使用者能够快速地验证、尝试自己对数据的各种猜测和假设。因此,除了计算和查询的速度必须尽可能得块以外,如何保证使用上的流畅,以及展现查询结果和数据概览时最大程度地让使用者“一眼”就能够从图表中“看到”数据的含义和价值,是一个非常大的挑战,因此,数据可视化也是我们技术攻关的重点。
    7. 权限管理:作为一个企业产品,必须能够适应企业中不同角色的使用者的使用需求,例如:有些角色,如管理员,具有完整的数据察看能力,并且可以分配其它角色的权限;有些角色,如数据分析师,有完整的数据察看和分析能力,但是并不能修改其他人的权限;有些角色,如地推经理,则只能察看分配给自己的数据概览的数据。为了满足这方面的需求,权限管理,也是我们一个重要的技术点。
    8. 数据API:从 产品 的定位可以看出,我们是将使用者的一切数据开放给使用者的,这些数据,包括使用者接入的数据,也包括经过 平台分析后的结果,因此,如何设计一套友好的数据API,与使用者的业务系统对接,让使用者方便地能够基于这些数据进行后续的数据挖掘和机器学习计算,也是对我们的一个技术挑战。

    以上是我对这个问题的答复,再次感谢对我们产品和团队的关注,如果想有进一步的了解,欢迎和我们进一步联系。

  2. Eagleteye
    理由
    举报 取消

    kafka接日志和Binlog,用Spark Streaming/Spark SQL计算结果存储后,Impala来做ad-hoc query,同时redis做缓存查询结果提高响应速度(也可能预计算了某些条件组合存在Mysql里)?不知道我猜的对不对

我来回答

Captcha 点击图片更换验证码