StarRocks实战——特来电StarRocks应用实践

news2024/11/26 16:39:54

目录

一、为何引入StarRocks

二、主要应用场景

三、封装或扩展

四、集群监控预警

五、总结规划展望

5.1 使用经验分享

5.2 下一步计划

5.2.1 StarRocks集群自动安装

5.2.2 StarRocks集群高可用架构

  原文大佬的这篇StarRocks应用实践有借鉴意义,这里摘抄下来用作学习和知识沉淀。

一、为何引入StarRocks

       目前公司大数据平台已经引入了多个OLAP技术框架,随着应用的深入,在部分场景下发现这些框架也都由各自的缺点,主要体现在以下几个方面:

      因此期望寻找一款能至少在部分业务场景下解决以上问题的新框架,与现有框架实现互补,理想情况下能替换调部分技术框架,满足功能需求的同时降低技术栈复杂度。

二、主要应用场景

  目前我主要将StarRocks应用于业务数据的分析和大屏展示,业务数据经过实时清洗进入StarRocks或通过离线方式定时拉取写入StarRocks,再经过相应扩展分别提供给BI报表数据源,集成到大屏展示及通过SDK提供给业务代码访问。

  根据业务数据对查询性能要求较高,且要求支持数据进行部分列更新的特点,我们主要采用的是主键模型部分列更新是指每次更新数据按照主键,只需要更新指定字段数据,而非整行覆盖数据。以订单数据为例,订单数据量较大,且不同部分信息在业务库中存在不同表中。可以建立以订单ID为主键的主键模型,通过定时数据拉取任务,将业务库属于不同表的订单相关数据合并到StarRocks中订单明细表,避免查询时join引起的性能问题。

   而对于数据量不大,且不经常需要查询的维度数据,则可以单独建立维度表,只在需要查询时进行关联。有效节省存储量,同时维表可以定时更新,保证维度数据是最新的。对于需要保持历史数据的维度字段,则可以像上面的订单各部分信息一样,采用部分列更新方式冗余在明细表上,做到业务需求和成本的有效平衡。这个场景的成功应用,得益于StarRocks对多表关联的支持。

三、封装或扩展

  为了将StarRocks集成到公司的大数据平台中,并为业务部门提供相关组件和工具支撑,我们围绕StarRocks进行了以下封装或扩展:

  • 大数据访问SDK:对StarRocks访问操作做了封装,并集成了响应时间,请求TPS,请求链路等监控埋点,以及请求日志,异常日志等功能。
  • StarRocks查询工具:是一款Web方式访问的查询分析工具,方便业务部门同事开发/运维期间查询验证数据使用。
  • Kettle和HUE StarRocksDataX插件:分别基于HUE和Kettle的进行扩展,提供了向StarRocks进行数据同步的插件,支持多种参数配置。
  • StarRocks监控埋点:对StarRocks集群的相关运行参数进行采集,并集成到公司监控平台。

四、集群监控预警

   通过将StarRocks监控指标参数抓取到公司监控预警平台,实现了StarRocks集群运行情况的实时监控和及时预警。

五、总结规划展望

    目前初期阶段,StarRocks投入应用场景50+,总表个数200+, 数据总量超过5TB,相关功能在切换后,在响应时间,存储成本等方面都有相应改善。

5.1 使用经验分享

  • 合理设置分区分桶键,分区和分桶应该尽量覆盖查询语句所带的条件,这样可以有效减少扫描数据,提高查询性能。
  • 合理设置分区和分桶大小,实现数据均衡分布,单个分区原始数据量建议不要超过100GB,单个分桶控制在100M到1G左右,最大不要超过10G。太小造成小文件tablet太多,影响磁盘IO,太大不利于资源合理分配并影响查询效率。
  • 排序键不应该包含过多的列,对于主键模型而言,key列大小不能超过127个字节。选择过多排序列并不能提升查询性能,而且会增大排序的开销,进而增加数据导入的开销。
  • 排序键涉及多个列的时候,建议把区分度高、且经常查询的列放在前面。区分度高的列是指取值个数多,且持续增加的列。
  • 查询时尽量只select需要的字段, 减少不必要的开销。

  • 关联维表可显式添加shuffle关键字进行优化(Join Hint 语法,手动指定join类型)

  • 数据量非常大的维表中常用字段,考虑在主表进行冗余(维度退化)。

5.2 下一步计划

5.2.1 StarRocks集群自动安装

  目前在搭建不同环境时,都是手动进行StarRocks的部署和配置。重复进行相同工作,且手工处理易出错,效率低。计划将StarRocks集成到公司的大数据安装框架,实现StarRocks安装部署和元数据初始化的自动化。提高部署效率,降低运维成本。

5.2.2 StarRocks集群高可用架构

    随着越来越多的业务迁移到StarRocks,特别是一些重要级别较高业务的迁移,对StarRocks的可用性提出了更高的要求。虽然StarRock本身通过其架构特点提供了一定的高可用性。但我们仍然计划基于自建的集群高可用框架,在数据双写的基础上提供集群级别的高可用,以实现在集群宕机时故障的快速转移,高可用框架的主要架构如下:

参考文章:

特来电StarRocks应用实践

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1492949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧城市的未来:利用数字孪生技术推动智慧城市的智能化升级

目录 一、引言 二、数字孪生技术概述 三、数字孪生技术在智慧城市中的应用 1、城市规划与建设 2、城市管理与运营 3、公共服务与民生改善 4、应急管理与灾害防控 四、数字孪生技术推动智慧城市的智能化升级的价值 1、提高城市管理的智能化水平 2、优化城市资源配置 …

9.9 指针数组、指针的指针、main函数参数、小结

9.9 指针数组、指针的指针、main函数参数、小结 一.指针数组概念回顾二.指向指针的指针三.指针数组做main函数形参四.小结1.指针数据类型小结表:2.指针运算小结2.1 指针变量的加减2.2 指针变量的赋值2.3 指针变量可以为空值,表示不指向任何变量 3.void *…

OSI 的七层模型

OSI七层模型 一般指开放系统 互连参考模型 (Open System Interconnect 简称OSI) 是国际标准化组 织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系 统提供了一种功能结构的框架。 应用层:各种应用程序协议,比…

Oracle.xs.dll‘ for module DBD::Oracle: load_file:找不到指定的模块

安装Ora2pg时,碰到 异常现象 D:\ProgramFiles\ora2pg>ora2pg -t show_report --estimate_cost -c ora2pg_conf.dist install_driver(Oracle) failed: Cant load D:/ProgramFiles/strawberry/perl/site/lib/auto/DBD/Oracle/Oracle.xs.dll for module DBD::Oracle: load_fil…

FedAsync Asynchronous Federated Optimization

文章目录 IntroductionMethodologyConvergence analysisExperiments Introduction 联邦学习有三个关键属性: 不频繁的任务激活。对于弱边缘设备,学习任务只在设备空闲、充电、连接非计量网络时执行.沟通不频繁。边缘设备和远程服务器之间的连接可能经常不可用、缓…

基于SpringBoot+MYSQL的网页时装购物系统

目录 1、 前言介绍 2、主要技术 3、系统流程分析 3.1、系统登录流程图 3.2、添加信息流程图 3.3、删除信息流程图 4、系统体系结构 4.1、时装购物系统的结构图 4.2、登录系统结构图 4.3、时装购物系统结构图 5、数据库设计原则 5.1、管理员信息属性图 5.2、用户管…

ElevenLabs用AI为Sora文生视频模型配音 ,景联文科技提供高质量真人音频数据集助力生成逼真音效

随着Open AI公司推出的Sora文生视频模型惊艳亮相互联网,AI语音克隆创企ElevenLabs又为Sora的演示视频生成了配音,所有的音效均由AI创造,与视频内容完美融合。 ElevenLabs的语音克隆技术能够从一分钟的音频样本中创建逼真的声音。为了实现这一…

在nginx 服务器部署vue项目

以人人快速开发的开源项目:renren-fast-vue 为例 注:这里开始认为各位都会使用nginx 打包vue项目 npm run build 测试打包的项目是否可以运行 serve dist 可以正常运行 编译报错请移步到:renren-fast-vue1.2.2 项目编译报错: build g…

SpringCloud微服务-DockerCompose(初识、安装、部署)

DockerCompose(初识、安装、部署) 文章目录 DockerCompose(初识、安装、部署)初识DockerCompose?DockerCompose安装DockerCompose部署微服务问题解决(重要!!!&#xff09…

C++ 归并排序OJ

目录 1、912. 排序数组 2、LCR 170. 交易逆序对的总数 3、315. 计算右侧小于当前元素的个数 4、493. 翻转对 1、912. 排序数组 思路:本次使用归并排序 ,快速排序相当于二叉树的前序遍历,而归并排序相当于后序遍历。 归并排序是一种有效的…

【Java设计模式】三、简单工厂、工厂方法模式、抽象工厂模式

文章目录 0、案例:咖啡屋1、简单工厂模式 静态工厂(不属于23种之列)2、工厂方法模式3、抽象工厂模式4、简单工厂模式 配置文件解除耦合5、JDK源码中对工厂模式的应用 0、案例:咖啡屋 模拟咖啡店点餐。咖啡有多种,抽…

vue3+element plus 实现百度地图显示路径

添加依赖 <!-- index.html --><script type"text/javascript" src"//api.map.baidu.com/getscript?v3.0&akyI6kBeC9G4LntEWXklE2iNHwRUrmFEQc"></script><script type"text/javascript" src"//api.map.baidu.co…

【vue/组件封装】封装一个带条件筛选的搜索框组件(多组条件思路、可多选)详细流程

引入&#xff1a;实现一个带有筛选功能的搜索框&#xff0c;封装成组件&#xff1b; 搜索框长这样子&#xff1a; 点击右侧筛选图标后弹出层&#xff0c;长这样子&#xff1a; 实际应用中有多组筛选条件&#xff0c;这里为了举栗子就展示一组&#xff1b; 预览&#xff1a;…

【小白学机器学习7】相关系数R,决定系数R2和SST=SSR+SSE, 离差,偏差,方差,标准差,变异系数,标准误。

目录 1 各种数据指标&#xff0c;分类整理 1.0 关于数据/值有3种 1.1 第1类&#xff1a;描述一堆数据特征的指标&#xff1a;集中度&#xff0c;离散度&#xff0c;形状特征 1.2 第2类&#xff1a;判断预测y值和观测值差距的指标 1.3 第3类&#xff1a;描述误差的各种指标…

给定长度为n的数组a,每一次操作可以使相邻两个元素都+1或者-1,可以进行任意次操作,求最终能否使数组非递减

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e18, maxm 4e4 5, …

矩阵爆破逆向-条件断点的妙用

不知道你是否使用过IDA的条件断点呢&#xff1f;在IDA进阶使用中&#xff0c;它的很多功能都有大作用&#xff0c;比如&#xff1a;ida-trace来跟踪调用流程。同时IDA的断点功能也十分强大&#xff0c;配合IDA-python的输出语句能够大杀特杀&#xff01; 那么本文就介绍一下这个…

K线实战分析系列之十八:十字线——判断行情顶部的有效信号

K线实战分析系列之十八&#xff1a;十字线——判断行情顶部的有效信号 一、十字线二、十字线总结三、三种特殊十字线四、长腿十字线五、墓碑十字线六、蜻蜓十字线七、特殊十字线总结 一、十字线 重要的反转信号 幅度较大的下跌&#xff0c;出现一根十字线&#xff0c;正好是在…

配置化脚手架cli工具开发实践

背景 我们服务于政务行业&#xff0c;正在打造一个集代码开发、数据集成、应用管理、一体化运维监控的应用支撑平台。 以此为导向&#xff0c;作为开发的第一步&#xff0c;代码工程创建应当为后续的集成、管理及监控等服务。所以区别于一般的cli工具&#xff0c;我们要做的工…

x6.js 流程图绘制笔记,常用函数

官方参考网站如下&#xff1a;https://antv-x6.gitee.io/zh/docs/tutorial/about 安装x6 输入以下命令 npm install antv/x6 --save 引用插件代码如下&#xff1a; import { Graph } from antv/x6; 创建绘制区域 this.guiX6 new Graph({container: document.querySelect…

相机恢复,这几个方法很重要!

“我的相机用了才不到一年&#xff0c;现在不知道是什么原因&#xff0c;有一些拍摄的图片找不到了&#xff0c;有什么方法可以恢复丢失的照片吗&#xff1f;” 对于热爱记录生活的用户来说&#xff0c;相机出现问题或相机数据丢失&#xff0c;都是一件很让人难过的事情。 在使…