查看原文
其他

为了找到你,我不惜“出卖”他们 | 神策招人记

策小编 神策数据 2022-06-25

本文是神策数据 CTO 曹犟亲笔撰写的深度招聘解读系列「神策招人记」的第一篇,还有续集哦~如果通过我们的这些介绍,让大家对一个企业服务公司,一个大数据公司有了新的认识,对于大数据这件事情增加了一些兴趣,那么就达到了我们的目的。


前天,我们发了一篇文章「“数”天下神人,都“据”于此」的招聘文章,秉承我们一贯的作风,我们希望能够让这些招聘文章尽可能“硬”一点、“干货”多一点,因此,我们计划出一系列「神策招人记」的干货文章,希望大家读了文章之后,对于一个典型的大数据企业服务公司是如何运作的?面临着哪些挑战?以及是如何不断解决问题的能够有更好地了解。

神策数据作为一个成立快 4 年的大数据企业服务初创公司,服务了越来越多的客户,在整个行业里面有了一些影响。同时,我们在博客上分享的神策分析产品的技术架构以及开源的数据采集 SDK,也让越来越多的同学开始知道并且关注我们。我们也非常希望能够有更多志同道合的、对于大数据、对于分布式处理感兴趣的同学能够加入我们,一起做一些有趣并且激动人心的产品,推动整个行业的发展。因此,我们觉得有必要通过一系列文章,向那些可能愿意加入我们的同学们,介绍一下神策数据,介绍一下整支团队具体是做什么的、每天会碰到哪些问题、有哪些有意思的技术挑战。

我们首先会从技术团队开始聊起。神策数据目前拥有一支超过一百人的技术团队,相比较创业之初只有研发,现在整个技术团队的分工越来越明确,整体上可以分为研发、产品、售前、技术服务四个大的部门。在这篇文章里面,我们会首先介绍研发内部各个团队的职责和要解决的技术问题,希望能够对大家有所帮助。

神策数据为客户提供了如下图的产品矩阵,产品矩阵中的每个产品各自解决不同的问题,例如,神策分析是一个具有较好可视化和分析能力的非常灵活的高性能的海量用户行为实时分析工具,神策推荐是一个基于强大的数据处理分析能力采用领先的深度学习算法技术来提升多维度业务指标的个性化推荐框架,神策标签和自动化运营产品则主要解决用户画像与精准运营的需求。虽然每个产品解决不同的问题,但与此同时,它们又复用一套底层的数据平台,共享平台提供的海量数据的处理能力。整个产品矩阵可以针对不同行业的客户的不同需求,自由组合,提供了从数据采集到传输、存储、分析、建模、可视化、应用的整体解决方案。

因此,在研发团队内部,也基本是按照数据处理的过程,划分为数据采集、数据导入与预处理、分布式存储、分布式查询、数据中台、基础平台化、用户标签、数据可视化、机器学习等不同的技术方向和团队。下面我们依次进行介绍。

数据采集团队

对于所有的数据平台和数据产品来说,数据采集都是整个数据处理过程的起点和重中之重。不管最后这个数据是用于统计报表还是用于个性化推荐,采集到的数据质量,都直接关系到最终应用的质量。正因为如此,我们对于数据采集投入了很大的精力,成立了专门的数据采集团队。

数据采集团队主要解决在不同环境下以最高的效率、最低的代价采集数据的问题。目前由于处理的主要是用户行为数据,因此数据采集团队目前主要在 Android App、iOS App、小程序、网页等客户端以及服务端提供具体的方案采集用户行为相关的数据。

数据采集团队提供的方案会以各个端的 SDK 为载体,SDK 提供了对数据的本地缓存、加密、网络传输、一致性保证等能力的封装,并对外提供统一的数据抓取接口。而在几个典型的客户端,如 Android App 和 iOS App,数据采集团队还提供了统称为“代码埋点”和“全埋点”的两种集成方式。

“代码埋点”可以理解为直接调用 SDK 提供的数据抓取接口来采集用户行为,而“全埋点”则可以理解为在客户端用户进行特定动作时,自动触发 SDK 的数据抓取接口来自动采集对应的用户行为。值得一提的是,数据采集团队的工作基本都以开源项目(开源网址为:https://github.com/sensorsdata/)的形式对外开放,回馈给整个行业。

除了开发与维护 SDK 之外,数据采集团队还需要结合客户的具体应用情况与行业特性,为客户制订整体的数据采集方案,并且协助客户一起保证数据采集的正确性与时效性。当然,除了针对用户行为数据的采集之外,随着神策数据整体业务范围的扩大,未来数据采集团队也需要探索更多其它类型数据的采集方案。

目前,数据采集团队已经在数据采集的性能损耗、数据传输的一致性、接口的易用性、SDK 的稳定性、全埋点的兼容性、数据调试与校验、与 Deeplink 的结合等具体技术点上做了非常多的工作,但也依然有很多技术难点等待攻克,因此,我们也非常希望有在 Android、iOS、JS 底层开发方面有经验,并且对数据采集、大数据感兴趣的同学加入我们,一起打造一个行业内首屈一指的数据采集方案。

数据导入与预处理团队

神策数据服务了不少日 PV 超过百亿的客户,这代表着每天需要导入的数据超过百亿。而神策分析又是一个纯实时的数据分析系统,期望所有的数据都能够以秒级的延迟完成导入。在这样的数据量下,如何在保证完成对数据的基本预处理的情况下,还能让所有的数据实时导入,就变成了一个颇具挑战的技术难题。

我们的数据导入预处理团队,主要就是解决数据导入过程中的一系列问题。例如,在数据导入过程中,如何高效率地完成一些数据预处理工作,从最简单的 IP、User-Agent 等基础字段的解析,到会有上下文依赖的 ID-Mapping(在实时系统中,有上下文依赖的处理环节一直都会是一个技术挑战,这里也不例外);当突发流量高峰时,如何保证数据不丢失;在多个数据处理节点组成的集群内,如何做好各个节点之间的协同;如何设计良好的对外编程接口,让客户能够方便高效地在数据导入环节嵌入自己的数据处理逻辑。以上所列出的这些技术问题,由于海量数据与实时处理两个大的前提,会变得更有挑战,当然,也会更有趣。

我们欢迎所有对于数据预处理、分布式处理有兴趣,或者有一定 Java 开发经验的同学加入我们,跟我们一起探讨这些很有可能在如此大规模数据和如此高时效性要求下才会发现的问题,一起让客户有限的硬件能够处理更大量级的数据。

分布式存储团队

采集的数据,最终要通过预处理环节后导入到存储介质中。而分布式存储团队,则主要围绕着如何更有效率地存储数据来进行工作。

存储的效率可以从这几个方面来衡量,数据写入的效率、数据读取的效率以及数据所占用的磁盘空间。数据写入的效率,是指如何用尽可能短的时间,实时写入尽可能多的数据;数据读取的效率,则是指针对特定的数据读取和扫描请求,如何在尽可能短的时间内完成;数据所占用的磁盘空间,则是指相同的数据到底需要在磁盘上占用多少空间。

从具体的工作内容上讲,分布式存储团队会基于 Kudu、HDFS 等开源组件,在列存储、数据压缩算法、查询算子下推、扫描预测算法、数据一致性等方面,进行深入的探索与研究。我们非常欢迎在分布式存储方面有经验或兴趣,或愿意参与对主流开源组件的修改与优化的技术同学加入我们,一起继续这方面的工作,探索如何用最好的方式,存储每天千亿级别的数据,并且在数据的写入和查询上达到一个平衡。

分布式查询团队

数据的查询是数据的非常基本也是非常重要的应用,以神策分析为例,作为一款用户行为分析产品,最重要的就是要为客户提供灵活快速的分析能力。从最初只有 3 个单薄的基础分析功能,到现在支持 10 个复杂的分析模型联合构建的场景化分析能力,离不开对数据查询引擎的深度开发。同时,面对数以 TB 级别的海量数据,如何还能保证随机查询的秒级响应,也是分布式查询团队面临的主要的挑战。

分布式查询引擎团队的首要职责就是要配合产品设计,高效地实现各种灵活复杂的分析模型。这里所谓的“高效”,一方面指开发速度快、稳定性高,另一方面也要求最终实现的功能在性能方面达到最优。为此我们已经做了大量的努力,例如我们基于 ImpalaS 原有的执行框架,设计实现了 Transform 数据处理模型,以此为基础实现的各种分析模型,不但逻辑结构简单、代码少,执行性能也比使用 ImpalaS 的原有方式有 10 倍以上的提升。同时,为了尽可能地为客户节省宝贵的计算资源,也是进一步提高查询的整体响应速度,我们还研发了适用于用户行为分析场景的查询缓存机制。正是这层层优化的不懈努力,保证了神策分析卓越的用户体验。

除了功能研发之外,分布式查询引擎作为计算的“终结者”,如何保障其稳定运行,亦是同样重要的工作。神策众多家客户的环境可谓千差万别,除了框架的保障,我们也开发了各种针对查询的监控及问题排查工具,以方便定位问题,节约运维成本。

不仅仅是神策分析,产品矩阵内的很多其它数据产品,也需要用到查询能力,分布式查询团队,还需要考虑如何为这些产品来提供统一的查询能力,并进行相应的性能优化。在这个过程中,对于需求的抽象、架构的设计都有很高的要求。

分布式查询引擎的研发方向充满挑战,但这也同样证明了我们团队对技术的不懈追求。我们热切期盼对分布式查询引擎有所研究,并且熟练掌握 C/C++ 和 Java 语言的资深研发工程师的加入,与我们一起追求性能的极致,让数据本身成为数据分析能力的唯一局限。

数据中台团队

神策数据目前正处于从单一产品向产品矩阵演进的过程中,而这多个产品都是围绕数据处理展开的,所以每个产品都有数据导入、数据存储、数据查询这方面的功能需求。在这个前提下,数据中台团队的工作,就是对这些通用的数据处理能力进行很好的抽象与平台化,让我们在研发不同的产品时可以专注于产品本身的业务与功能,而不用从头开始造轮子。

数据中台团队目前面临的主要技术挑战有:如何提供一个在产品功能需要急速迭代的情况下仍然能够保证整个后台稳定可靠的业务开发框架;如何设计良好可靠且易扩展的 API 接口,既能满足可视化团队同学的使用需求,又能满足深度集成客户的 API 调用需求;如何在多个产品线既有大量的逻辑耦合又有自己的特殊要求的情况下划分服务的边界和进行微服务的设计;如何解决分布式事务和元数据缓存的问题。数据中台团队已经在解决以上问题的过程中积累了丰富的经验,也进行了很多有效的尝试,但同时我们也面临着很多新的技术挑战。

数据中台团队作为整个神策数据平台前端请求的排头兵和后台查询的守门员,承担着非常多的产品功能迭代和产品矩阵化的需求,一方面需要团队同学有着扎实的技术和代码基础,另一方面也需要对整个业务需求有着清醒的认识和理解。我们也欢迎更多的对大数据产品后台、业务框架开发、微服务设计感兴趣,或者有 Web 开发相关经验的同学加入我们,我们可以一起一边解决有挑战性的技术难题,一边去打造全新的有创造性的大数据分析产品。

基础平台化团队

虽然与大部分 SaaS 公司在商业模式上一样,都是以按年收取产品和服务费用为主。但与大部分 SaaS 公司不同的是,出于对数据隐私、数据安全性、数据的充分应用等方面的考虑,神策数据在第一个产品的第一个版本,就具有私有化部署的能力。而随着这几年我们的客户规模进一步扩大,大部分客户也的确如我们预料的那样选择了私有化部署模式,私有化部署能力也客观上成为我们的一大杀手锏。

不过,私有化部署也会带来很多技术上的挑战,如何能够让一套产品兼容不同的软硬件环境,在数百上千个环境内稳定运行,如何能够尽可能减少安装、部署与运维的代价等等,都是客观存在的技术难题。这几年里,我们也注意到市场上的不少友商也先后尝试私有化部署,有些也最终放弃了。这些都说明私有化部署相对于 SaaS 服务具有自己的独特技术难题。

我们的基础平台化团队就是致力于解决这类问题。他们工作包括兼容市面上各种不同的 Hadoop 发行版;开发无人值守、一键安装的自动化部署工具;开发统一的资源调度与管理平台等。我们欢迎在自动化运维方面有经验,或对私有化部署有兴趣的同学加入我们,一起在这方面进行更加深入的探索。

用户标签团队

我们目前主要处理的还是用户行为相关的数据,而在用户行为相关的应用上,基于用户行为来理解用户,据此生成用户标签,完成对用户的刻画与画像是一个广泛存在并且非常有意义的应用场景。也因为此,我们将于用户标签、用户画像相关的工作单独抽象成一个具体的技术方向。

用户标签团队主要负责与用户标签的计算、管理、展示、查询、审批、权限等功能的设计和研发工作,并与我们的数据分析师、行业专家团队一起,抽象银行、券商、零售等各个不同行业对于人群刻画、用户画像方面的需求,与机器学习团队一起选择合适的算法完成对人群的分类与预测等。我们欢迎那些对于用户画像有兴趣,或者有分布式数据应用经验的同学加入这个团队,一起探索用户画像与用户标签在各个不同行业的落地与应用。

数据可视化团队

报表与多维查询,都是非常直观也非常有价值的数据应用方式。而对这一类数据应用类型来说,如何让查出来的数据,以图形化手段,更加清晰和有效地将信息传达给数据的使用者,就是一个非常有意义的话题。从很多实际的例子中我们可以知道,同样的一组数据,可视化展示得好还是不好,会直接影响使用者对于数据的解读,从而最终影响基于数据做出的决策。因此,在我们看来,数据可视化并不是一个让数据“好看”的花里胡哨的工作,而是一种真正专注于让揭示繁杂的数据背后的规律,给使用者提供灵感,辅助使用者完成决策的很有意义的事情。

具体到实际的工作中,数据可视化团队需要从头研发或者基于开源组件,完成各个分析模型分析结果的图表化展示,以直观便捷的方式让使用者能够与数据进行交互,方便地完成数据的钻取与筛选。同时,数据可视化团队还有一部分工作是完成产品矩阵内各个产品的用户交互界面的开发。我们非常欢迎对数据可视化感兴趣,有一定前端开发经验的同学们加入这个团队,一起开发一个极美观与易用性一体的数据产品。

机器学习团队

大数据与机器学习,在很多应用场景上是一体两面。除了神策推荐这样一个一听名字就知道用到了机器学习技术的个性化推荐产品以外,在神策分析、标签和运营产品中,机器学习技术也广泛得到了应用。例如,在神策分析中,我们需要用到机器学习技术来预测流量趋势,当数据发生异常时来自动发现异常主要体现在哪些维度上,或是找到某个特定流程中完成了转化和未完成转化的两类典型客户群体在用户属性和行为上有什么差异。在神策标签和运营产品中,机器学习技术也被广泛用于对用户的精准识别、预测和运营中。也正因为如此,我们的机器学习团队除了继续开发、交付神策推荐产品之外,还需要和其他团队的同事一起合作,探索机器学习技术在其他几个数据产品中的落地可能性等。

机器学习团队内部分为算法与策略工程化两个技术方向,算法方向的同事会更专注于算法本身的选择、开发与调优,而策略工程化方向的同事则会更专注于算法的工程化、数据流的开发,服务的稳定性等。我们非常欢迎对机器学习有兴趣,愿意在真实的海量数据环境下验证算法的实际效果的同学们加入我们,一起来探索数据除了分析报表以外,还能有哪些更智能的、更有趣的应用。

谨以此文章,献给在人生十字交叉口徘徊、或在求职路上迷茫、或对大数据和数据分析感兴趣、或渴望加入我们却不知突破点的有志之士们,希望对你们有所帮助!

点击阅读原文,可查看招聘岗位

点击图片,解锁更多精彩

▼▼▼

↙↙↙点击“阅读原文”,查看更多岗位详情

有收获,记得点好看哦↓↓↓

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存