写点什么

Pinterest 使用 MemSQL 和 Spark Streaming 进行实时数据分析

  • 2015-04-19
  • 本文字数:825 字

    阅读完需:约 3 分钟

Pinterest 是一家提供可视化书签工具的公司,这种工具可以帮助人们发现并保存有创意的想法,目前这家公司正使用实时数据分析来达到以数据驱动决策的目的。实验中使用了 MemSQL Spark 这样的技术,用以分析来自全球的用户实时行为信息。

通过 MemSQL 和 Spark,Pinterest 创建了一条数据管道。这条管道通过 Apache Kafka 使数据流入 MemSQL,并且通过 Spark Streaming API 向 Spark 输入数据(译者注:数据流向是 Kafka -> Spark -> MemSQL ,见图 1)。这个方案对了解全球用户如何使用 Pins(译者注:即可视化书签)提供了实时性的洞察。这有助于 Pinterest 成为一个更好的推荐引擎,它可以显示相关的 Pins,人们会在不同的场景下来使用这种服务,比如为购物、去某个地方和烹饪食谱做个计划。

Pin 的行为数据(engagement data)先被送入到 Kafka 主题(Topic)中,接着它被 Spark streaming 作业消耗掉。作业中每个 Pin 会进行过滤,然后加上其地理位置和 Pin 的类别来充实其信息。接着再通过 MemSQL Spark 连接器(MemSQL Spark Connector)将充实后的信息持久化到 MemSQL 数据库中以提供查询服务。MemSQL Spark 连接器提供了 Spark 读写 MemSQL 数据库的工具,它使用 MemSQL RDD(Resilient Distributed Dataset)从 MemSQL 读取数据。

综上所述,这个方案框架可以支持实时地收集、存储和处理用户行为数据。同时,它也可以帮助获得下面这些能力:

  • 高性能事件日志:即使用一个叫 Singer 的代理来收集事件日志,然后把它们运送到集中的数据仓库中。
  • 可靠的日志传输和存储:即通过 Apache kafka 和一个叫 Secor 的持久化服务来可靠将这些事件写入到长期数据存储 Amazon S3 中。Secor 在设计上克服了 S3 的弱最终一致性模型(weak eventual consistency model)的缺陷,没有数据丢失而且支持水平扩展和可选的基于日期的数据分片。
  • 基于实时数据的快速查询:即在实时事件到达时就对它们执行 SQL 查询。

查看英文原文 Real-time Data Analytics at Pinterest using MemSQL and Spark Streaming

2015-04-19 05:594050

评论

发布
暂无评论
发现更多内容

flink 使用curl,通过RESTful api,上传和删除jar包

Geek_de9857

flink RESTful curl 上传jar 删除jar

原创 | 使用JPA实现DDD持久化-O/R映射元数据-关联属性映射

编程道与术

Java hibernate 编程 mybatis jpa

自从看了百度强推的“Spring源码笔记”我从渣渣成功逆袭成为钢铁侠!

比伯

Java 架构 程序人生 计算机 spring源码

等保数据备份和恢复关键点,这些你该知道!

华为云开发者联盟

数据 容灾 恢复

滴滴DoKit阶段性成果汇报之一机多控

工具 滴滴开源 DoKit

佛萨奇Forsage系统开发,智能合约dapp技术

薇電13242772558

智能合约 dapp

读《全球创新投资:经济大变局中的财富新机遇》

邓瑞恒Ryan

创业 读书笔记 企业 企业管理 产业竞争

原创 | 使用JPA实现DDD持久化-启动JPA程序+通过JPA原生API访问数据

编程道与术

Java hibernate 编程 mybatis jpa

Mysql中,1=1和 1=1=1 和 -1=-1 和 -1=-1=-1 和 5=5 和 5=5=5 有什么区别

Geek_de9857

MySQL sql 返回值 1=1=1 -1=1=1

Hive中,同时存在map、array、struct这三种格式,应如何在建表语句中指定分隔符?

Geek_de9857

hive struct map array 分隔符

JavaScript中,if判断未生效的一些特殊情况

Geek_de9857

js 1 if 0 不生效

第九周学习总结

Griffenliu

程序员因重复记录日志撑爆ELK被辞退!

Java架构师迁哥

15年华为云视频架构师采访实录:揭秘未来音视频行业的科技趋势!

华为云开发者联盟

直播 视频 华为云

几款Java开发者必备常用的工具,准点下班不在话下

华为云开发者联盟

Java 工具 开发

【涂鸦物联网足迹】用煲仔饭来说明IaaS/PaaS/SaaS的区别

IoT云工坊

云计算 IaaS PaaS SaaS 云平台

一文详解激活函数

书豪

eCharts -- 如何修改柱状图中相关数据的顺序?如何在鼠标悬浮时增加百分比信息?如何为柱状图设置分组?

Geek_de9857

柱状图 eCharts 修改数据顺序 百分比提示信息 设置分组

OpenKruise v0.7.0 版本发布:新增周期任务分发控制器

阿里巴巴云原生

阿里云 容器 开发者 运维 云原生

架构师训练营第 13 周学习总结

netspecial

极客大学架构师训练营

90分钟10个手写案例,从源码底层给你讲解7种线程池创建方式

996小迁

Java 源码 架构 资料 笔记

原创 | 使用JPA实现DDD持久化-O/R映射元数据-值属性映射

编程道与术

Java hibernate 编程 mybatis jpa

去 DeepMind 面试是怎样一种体验?

故胤道长

人工智能 面试 谷歌Google 硅谷 移动开发

阿里Java研发第2面,都会问什么?斩获阿里P6+的“他”告诉你答案

Java架构之路

Java 程序员 架构 面试 编程语言

阿里Java岗面试必备JVM指南:内存分配+垃圾回收+调优+类加载器等

Java架构之路

Java 程序员 架构 面试 编程语言

从面试角度分析LinkedList源码

Java旅途

Java List 集合 linkedlist

阿里云容器服务入选云原生边缘「领导力企业TOP3」,推动「原生云边」基础设施标准建立

阿里巴巴云原生

阿里云 容器 开发者 云原生 边缘计算

第九周作业

Griffenliu

原创 | 使用JPA实现DDD持久化-O/R映射元数据-值和关联的比较+继承映射

编程道与术

Java hibernate 编程 mybatis jpa

LeetCode题解:127. 单词接龙,双向BFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

阿里华为等大厂如何处理数值精度/舍入/溢出问题

Java架构师迁哥

Pinterest使用MemSQL和Spark Streaming进行实时数据分析_大数据_Srini Penchikala_InfoQ精选文章