I'm spiderman I'm spiderman
首页
  • 中间件
  • 基础架构
  • 微服务
  • 云原生
  • Java
  • Go
  • PHP
  • Python
  • 计算机网络
  • 操作系统
  • 数据结构
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
关于
  • 分类
  • 标签
  • 归档

spiderman

快乐学习,快乐编程
首页
  • 中间件
  • 基础架构
  • 微服务
  • 云原生
  • Java
  • Go
  • PHP
  • Python
  • 计算机网络
  • 操作系统
  • 数据结构
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
关于
  • 分类
  • 标签
  • 归档
  • 中间件

  • 基础架构

  • 微服务

  • 云原生

  • 大数据

    • StarRocks的应用
    • 架构设计
    • 大数据
    spiderman
    2024-09-11
    目录

    StarRocks的应用

    # 为什么要用StarRocks

    我们公司是一个小型公司,目前存有三个月的数据,大概在50T左右,采用的技术架构就是Hadoop数仓分层架构。随着业务的发展,公司对数据驱动决策, 对数据价值越来越重视。随着数据量的增长,需求的不断迭代,原有的以 Hadoop 为核心的大数据生态,在性能、实效性、运维难度及灵活性等方面都难 以满足企业的需求,对服务器资源,运维,开发难度越来越高。在一次与朋友探讨大数据,提到StarRocks/Doris,立马引起我的兴趣,查阅了相关资料 后,便启动了StarRocks在业务上的尝试。

    # 大数据日常应用场景

    • 对于 T+1 的报表业务,一般是将数据放在 Hive 中定时跑批完成

    • 对于高并发的分析类查询,可以使用 Druid,缓解高峰时期大量用户集中使用给系统带来的查询压力

    • 对于像固定报表业务,可以预先知道了大部分的查询请求,将可以将数据打平成宽表的,放在 ClickHouse 中,充分发挥 ClickHouse 在单表查询的性能优势

    • 对于明细数据的查询或者全文检索的需求,可以使用 Elasticsearch 中,发挥倒排索引的优势

    • 对于多表关联的需求,可以通过 Presto 跨数据源完成多表的 join 操作

    但是用StarRocks后,一套解决方案搞定。至少在我们现在100T左右的数据,是非常适合的。同理,再大的数据量也是在这基础上做优化,做更好的设计。

    # 我们旧的大数据架构

    • 离线数仓

    big-data1

    • 实时数仓

    big-data2

    • 实时宽表

    big-data3

    # 旧架构存在的问题

    1. 整体集群资源消耗较大、涉及组件多,维护难,排查问题难

    2. 当每日数据量瞬时增大时会导致实时数据延迟

    3. presto稳定性和hive兼容性差,不定时的报presto写入hdfs失败

    4. hive on spark 执行效率慢和稳定性差,每日离线数仓加工历史全量数据,因而时不时发生错误导致数据无法正常展示

    5. hive on spark 执行效率低、数仓建模及代码编写不合理导致执行效率低,dws和ads不得不用presto进行计算,presto任务执行完不释放资源,影响实时任务,只能粗暴的杀死进程

    6. 实时指标开发不合理,所有任务写在一个jar包,耦合性高

    7. 数据建模不合理,中间层存在较大冗余,代码编写复杂和执行效率低,导致数据每日重复计算,浪费集群资源,排查数据问题困难,响应临时需求时间长

    8. presto执行完后,资源不会自动释放,这也是非常大的弊端,应该说presto被我们滥用了

    # 新的大数据架构

    big-data4

    # 使用上新架构后的优势

    1. 同步数据分每日全量和每日增量,集群的资源消耗非常低

    2. 使用StartRocks后,相比hive+presto计算能力更强,处理数据速度更快

    3. 使用flinkcdc能稳定实时同步数据到StartRocks,数据延迟低,准确性高

    4. 解决cps端API查询大批量数据慢的问题

    5. 增加了prometheus+grafana监控和告警,通过企微通知,能够及时发现问题所在

    6. StartRocks物化视图代替,kafka+hbase+flink,稳定性强,数据延迟低

    7. 合理的维度模型和汇总模型,降低执行时间,存储空间和维护成本,更快的排查问题和更小范围的重跑数据,降低新增需求带来的边际成本,提高执行效率已到达更快的响应需求和减少集群成本

    8. 整个架构见到了很多,出问题概率小了,排查问题也很快高效

    Argo & k8s云原生部署

    ← Argo & k8s云原生部署

    最近更新
    01
    innovation create future
    12-13
    02
    RabbitMQ
    12-06
    03
    PHP7的性能优化
    08-24
    更多文章>
    Theme by Vdoing | Copyright © 2022-2024 spiderman | 粤ICP备2023019992号-1 | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式