后端存储实战课
李玥
美团高级技术专家
44005 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 30 讲
结束语 (1讲)
后端存储实战课
15
15
1.0x
00:00/00:00
登录|注册

21 | 类似“点击流”这样的海量数据应该如何存储?

吞吐量远不如Kafka
提供比Kafka更强的数据查询能力
提供无限的存储容量
未来可能出现的解决方案
目前尚无成熟的解决方案
HDFS的劣势
HDFS的特点
存储容量并非无限
读写性能远远好于其他存储系统
无限的消息堆积能力
高吞吐量
分布式流数据存储系统
兼顾Kafka和HDFS优势的方案
使用HDFS存储
Kafka之外的解决方案
Kafka的限制
Kafka的特点
现代消息队列本质
Kafka之外的解决方案
Kafka存储海量原始数据
思考题
点击流数据存储

该思维导图由 AI 生成,仅供参考

你好,我是李玥。
对于大部分互联网公司来说,数据量最大的几类数据是:点击流数据、监控数据和日志数据。这里面“点击流”指的是在 App、小程序和 Web 页面上的埋点数据,这些埋点数据记录用户的行为,比如你打开了哪个页面,点击了哪个按钮,在哪个商品上停留了多久等等这些。
当然你不用太担心自己的隐私问题,记录的这些行为数据不是为了监控用户,主要目的是为了从统计上分析群体用户的行为,从而改进产品和运营。比如,某件商品看的人很多,停留时间很长,最后下单购买的人却很少,那采销人员就要考虑是不是这件商品的定价太高了。
除了点击流数据以外,监控和日志数据都是大家常用的,我就不再多解释了。
这类数据都是真正“海量”的数据,相比于订单、商品这类业务的数据,数据量要多出 2~3 个数量级。每天产生的数据量就可能会超过 TB(1 TB = 1024 GB)级别,经过一段时间累积下来,有些数据会达到 PB(1 PB = 1024 TB)级别。
这种量级的数据,在大数据技术出现之前,是没法保存和处理的,只能是通过抽样的方法来凑合着做分析。Hadoop 等大数据技术出现以后,才使得存储和计算海量数据成为可能。
今天这节课,我们来说说,应该选择什么样的存储系统,来保存像“点击流”这样的海量数据。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

针对海量点击流数据的存储系统选择是互联网公司面临的重要挑战之一。本文讨论了使用Kafka和HDFS作为存储方案的优劣势。Kafka具有无限的消息堆积能力和高吞吐量,能实现几倍于HDFS的吞吐能力。而HDFS则提供无限的存储容量和更强的数据查询能力。未来可能出现的解决方案需要兼顾吞吐能力、扩容能力和查询能力。对于海量原始数据的存储系统,需要超高的写入和读取性能,近乎无限的容量,对于数据的查询能力要求不高。读者可以根据业务需求选择适合的存储系统,同时关注未来可能出现的新技术。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《后端存储实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(14)

  • 最新
  • 精选
  • 李玥
    置顶
    Hi,我是李玥。 这里回顾一下上节课的思考题: 我们整个切换的方案中,只有一个步骤是不可逆的,就是由双写切换为单写新库这一步。如果说不计成本,如何修改我们的迁移方案,让这一步也能做到快速回滚? 答案: 双写切新库单写这一步不可逆的主要原因是,一旦切为新库单写,旧库的数据就和新库不一致了,这时候就没法再切回旧库了。所以,问题的关键是,切到新库单写后,需要保证旧库的数据和新库保持同步。那我们的双写就要增加一种过渡状态:就是从双写以旧库为准,过渡到双写以新库为准。然后把比对和补偿程序反过来,用新库的数据补偿旧库的数据。这样就可以做到,一旦出问题,再切回到旧库上了。
    2020-04-14
    4
    42
  • 每天晒白牙
    Kafka 性能高的原因 1.采用批处理的方式提升吞吐量 2.利用了磁盘文件顺序读写性能高的特点在设计存储 3.利用了操作系统的 PageCache 做缓存,减少 IO 4.采用零拷贝技术加速消费流程 来自老师第一个专栏

    作者回复: 哈哈,现学现卖。

    2020-04-14
    2
    55
  • nfx
    虽然hdfs和kafka都可以用来做存储, 但 kafka在使用方面像磁带; hdfs更像硬盘

    作者回复: 这个比喻非常形象哈。

    2020-04-19
    2
    22
  • seg-上海
    老师,文中提到“Kafka 实际能存储的数据容量并不是无限的”,那如果不断的加新的broker,然后同时新增分片,是不是可以做到无限的扩展存储呢

    作者回复: 理论上是可以的,但实际操作起来就比较麻烦。 你要知道哪些分区已经满了,哪些没满,指定去写那些还有空间的分区。额外增加了管理成本,对数据采集系统也不友好。

    2020-04-27
    9
  • xzy
    pulsar 采用存算分离的结构,能够快速扩容计算节点和存储节点。且扩容后,新的计算节点和存储节点能够快速承担起计算和存储的责任,因此我觉得,pulsar 能够做到无限存储且查询能力和kafka 类似。
    2020-11-07
    4
  • 滴流乱转小胖儿
    老师你好,对于大数据存储,使用Elasticsearch是否可以?
    2020-04-14
    4
    2
  • 夜辉
    本质上因为Kafka采用复制状态机 (Replication State Machine)模型 同时底层对各种IO操作进行了优化
    2021-04-11
    1
  • djfhchdh
    kafka的零拷贝,顺序读写
    2020-09-21
    1
  • 黄海峰
    求更多介绍分布式流数据存储和时序数据库。。。尤其是你们有在研发journalkeeper,求干货,怎么高吞吐无限扩容及强大查询。。。
    2020-04-14
    1
  • ifelse
    对于海量原始数据的存储系统,我们要求的是超高的写入和读取性能,和近乎无限的容量,对于数据的查询能力要求不高。--记下来
    2022-12-14归属地:浙江
收起评论
显示
设置
留言
14
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部