Pinot 是一个适用于 Web 的实时数据分析系统,由 LinkedIn 设计开发,现在已经成为 LinkedIn 的分布式实时数据分析基础设施,支撑着 LinkedIn 内外 30 多个分析产品。LinkedIn 的各种数据跟踪功能都是在 Pinot 的基础上实现的,如最近哪些用户查看了特定用户的资料,哪些用户在关注某个公司等。
据 GigaOM 报道,在 LinkedIn 还是一家初创企业的时候,其工程团队分成了若干不同的组,每个组使用的数据存储系统差别很大,如将 Oracle 的关系型数据库用于查询,而将 Voldemort 用于键值存储。但随着 LinkedIn 的日益发展以及用户数据的增多,这些不同的系统变得难以扩展。
Praveen Neppalli Naga 是 LinkedIn 的一名项目经理。他告诉 GigaOM,为了解决上述问题,他与其团队开始构建一个集中式系统。该系统既要能够整合 LinkedIn 的所有数据,又要能够简化以它为基础的数据密集型产品的构建过程。为了集中管理 LinkedIn 的数据,他们选用 Hadoop 基础架构模型作为 Pinot 的基础,并根据需要做了修改。然后,他们就可以编写 Hadoop 脚本,检索建有索引的用户数据。
由于 LinkedIn 的数据维度众多,Pinot 需要能够支持多种类型的索引。例如,一个人就读的大学是一个不会变化数据点,而他拥有的技能类型会发生变化,因此它们的索引方式应该不同。下面是 Pinot 的系统架构图:
另外,为了能够快速准确的响应用户请求,LinkedIn 工程团队还必须找到一种方法,既能保证与请求相关的最新数据随时可用,又能保证老数据的可用性,同时,老数据又不会混入新数据妨碍用户的查询。为了实现这个目标,他们借助 Apache Kafka 实现了实时数据索引过程。
据 Naga 说,经过了大约两年的开发,Pinot 现在成了 LinkedIn 事实上的数据分析平台。他们正在评估将其开源,并围绕它建立一个开发社区,以推动它进一步发展。
感谢张天雷对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论