当前位置: 首页 > news >正文

Pinterest:从 Druid 到 StarRocks,实现 6 倍成本效益比提升

导读:

开源无国界,StarRocks 自开源以来,近3年的时间里已在全球数据技术领域崭露头角。我们欣喜地发现,越来越多的海外用户正在使用并积极推广着 StarRocks。为了促进知识共享,StarRocks中文社区将精选优秀文章与大家共享。本篇文章摘自 Pinterest Engineering 撰写的《Delivering Faster Analytics at Pinterest》,欢迎阅读原文深入了解:https://medium.com/pinterest-engineering/delivering-faster-analytics-at-pinterest-a639cdfad374

图片

Pinterest 与 Partner Insights 简介

Pinterest 是一个视觉发现平台,用户可以在上面找到食谱、家居和风格灵感等创意。该平台拥有超过5亿月活跃用户,为广告商提供了重要的广告机会。广告商可以利用数据来分析用户行为,以取得更优的广告表现。

Partner Insights 是 Pinterest 提供给广告商的工具,允许他们通过定制的仪表板获取实时洞察。这些洞察帮助广告商了解广告策略的效果,并进行数据驱动的调整,提高广告投资回报率。

旧架构的挑战

提供 Partner Insights 的挑战是多维的。Pinterest 服务大量广告商,每个广告商都有独特需求和指标,这些指标跨越多个需要实时聚合的维度。平台的高度可定制性允许广告商选择并定制多个指标,增加了复杂性。

随着时间推进,原使用 Druid 的架构有以下不足之处:

  1. 成本高:随着规模的增长,使用 Druid 的成本不断增加,难以保持低成本的高效解决方案。

  2. SQL 支持有限:Druid 对标准 SQL 类型和模式的支持有限,无法完全满足用户的需求。

  3. 复杂的摄取管道:Druid 依赖外部的 MapReduce 作业等工具,数据摄取过程复杂。

  4. 性能瓶颈:处理复杂多维查询时,Druid 性能不足。

解决方案

Pinterest 通过将数据分析平台从 Druid 迁移到 StarRocks,解决了高成本、SQL 支持有限、数据摄取过程复杂和性能瓶颈等痛点。StarRocks 提供标准 SQL 接口、简化的数据摄取流程和高效的查询性能,大幅提升了系统的成本效益和整体性能。

成效

迁移到 StarRocks 后,p90 延迟减少了 50%,仅需原先设置的 32% 实例。这导致了成本性能效率提高了6 倍。数据摄取过程也得到了简化,实现了仅 10 秒的数据新鲜度。

此外,使用 StarRocks 的能够消除用于数据摄取的 JSON 配置,因为 StarRocks 支持标准 SQL 语法,极大简化了客户入门流程,节省了大量人力。

未来规划

StarRocks 已经带来了显著的性能提升,Pinterest 仍在探索查询缓存和物化视图等功能,以进一步优化系统,应对高并发工作负载。

更多交流:联系我们:StarRocks

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Milvus 向量数据库进阶系列丨构建 RAG 多租户/多用户系统 (上)
  • win系统运行命令行常用命令汇总
  • LVS(Linux Virtual Server)详解
  • 中国健康与养老追踪调查数据库(CHARLS)_2_中文文献整理
  • Codeforces Round 871 (Div. 4)(A~H)
  • 家里浮毛粉尘到处飞?宠物空气净化器出动帮你解决
  • 搜索 ---- 练习题(洛谷)
  • 05:【stm32】重映射AFIO
  • VIVADO IP核之DDS直接数字频率合成器使用详解
  • c#怎么折叠代码快捷
  • el-form-item,label在上方显示,输入框在下方展示
  • Bug太多,苹果手机升级到18.1后怎么降级
  • 状态模式-系统架构师(四十二)
  • 飞天发布时刻:大数据AI平台产品升级发布
  • Webpack入门基础知识及案例
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 自己简单写的 事件订阅机制
  • $translatePartialLoader加载失败及解决方式
  • Angular 响应式表单 基础例子
  • CentOS7 安装JDK
  • HomeBrew常规使用教程
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • JAVA之继承和多态
  • Node 版本管理
  • Promise面试题2实现异步串行执行
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • SpiderData 2019年2月23日 DApp数据排行榜
  • unity如何实现一个固定宽度的orthagraphic相机
  • 测试开发系类之接口自动化测试
  • 欢迎参加第二届中国游戏开发者大会
  • 深度学习在携程攻略社区的应用
  • 试着探索高并发下的系统架构面貌
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 用mpvue开发微信小程序
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #13 yum、编译安装与sed命令的使用
  • #APPINVENTOR学习记录
  • #includecmath
  • #QT(串口助手-界面)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #控制台大学课堂点名问题_课堂随机点名
  • $.each()与$(selector).each()
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (k8s)Kubernetes本地存储接入
  • (第27天)Oracle 数据泵转换分区表
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)c++ std::pair 与 std::make
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .NET Core 和 .NET Framework 中的 MEF2
  • .Net Core和.Net Standard直观理解