从starrocks安装说起和Oracle的OLAP殊途同归

news2025/1/13 10:31:13

StarRocks是一款分析型数据库(他的定语也很多,分布式存算分离等等)。作为数据库他的运行和维护迟早也是落在我这里的。对于做数据库的人都知道什么是交易型数据库,什么是分析型数据库。以及什么是事务分析混合型数据库。但是对于非这块领域的人根本不知道为什么选择某个产品。某些产品是好,但是为什么好不知道。只是傻子过年看街坊,别人这样用了,那我也这样用。至于为什么不知道。

其实行式存储对交易友好,因为写入和修改是以行为基础。而列式存储对分析友好,是因为聚合都是对列进行运算的。而如果大家熟悉我国的实际业务场景就会发现。几乎没有单纯的OLTP,单纯的OLAP。都会发现是事务分析混合的。这也就是为什么2021年时候信通院白皮书定了数据库七大趋势之一就是HTAP。

从技术分类来说Oracle、MySQL是数据库。Redis、MongoDB、influxdb、neo4j、Elasticsearch也是数据库。Hadoop技术栈也是数据库。区块链也是数据库。Impala、StarRocks等也是数据库。所以最终有问题都会涉及到我。本着这个思路我也尝试着进行一下安装。虽然也有容器化部署的方式,但是自己手工安装一遍收获是不一样的。

考虑到大家说我排版问题(不会墨天轮的排版,然后就到处复制了)这次用截图。

下载好安装包传上去。将近3G啊。下载了一会。

不少yum安装的,看上去容易。正式环境时候怎么办?还能yum吗?

解压以后该有的目录都有了。不用自己创建(自己创建的还乱,官方的目录层级挺好的)

然后就编辑fe的配置文件。Fe是前台的意思。FEFrontend)负责管理元数据、管理客户端连接、进行查询规划、查询调度等工作。每个 FE 节点都会在内存保留一份完整的元数据,这样每个 FE 节点都能够提供无差别的服务。

所以要建立这个元数据目录。(本次体验为单机部署)

然后设置环境变量(为了以后打命令偷懒)

这里遇到一个问题,一定要在环境变量中设置JAVA_HOME。开始以为安装了他能自己识别。

启动前台进程。

然后配置后台进程。BE (Backend)。这里需要把相应的路径写到配置文件中去。

BE 是 StarRocks 的后端节点,负责数据存储和 SQL 计算等工作。

数据存储方面,BE 节点都是完全对等的。FE 按照一定策略将数据分配到对应的 BE 节点,BE 负责将导入数据写成对应的格式存储下来,并生成相关索引。

在执行 SQL 计算时,一条 SQL 语句首先会按照语义规划成逻辑执行单元,然后再按照数据的分布情况拆分成具体的物理执行单元。物理执行单元会在对应的 BE 节点上执行,这样可以实现本地计算,避免数据的传输与拷贝。

然后启动后台进程。start_be.sh –-daemon

但是这里出问题了。后台进程启动失败,也没错误日志。传说的be.info日志没有。在反复确认配置没有问题后,只得找人咨询。恰好微信好友有一个原厂的朋友。问过后原厂产研的老师非常准确的说,是avx2的问题。没有 avx2 的话, be 肯定启动失败。

这里解释一下:AVX2(Advanced Vector Extensions 2)是一种指令集扩展,用于增强处理器的并行计算能力。它引入了更多的SIMD(Single Instruction, Multiple Data)指令,可以同时对多个数据进行操作,加快向量化计算和并行处理的速度。

AVX2指令集在一些需要进行大规模数据处理和并行计算的任务中能够提供性能优势,例如图像和视频处理、科学计算、机器学习等。通过使用AVX2指令集,程序可以更高效地利用CPU的并行计算能力,加快运算速度,提高系统的响应能力。

说到这里明白了,是我虚拟机的指令集不支持。马上找给我虚拟机的同事看看能不能解决?最后是把虚拟机做热迁移,迁移到一个新的宿主机上。

现在看到支持avx2指令集了,后台进程也开起来了。

他的客户端用的是MySQL的客户端。

这里密码是空。输入回车。不写 -p我试下来不行。

执行这个命令看看前台进程和后台进程。

然后就可以像MySQL一样操作的。但是

语法不一样。直接建表会出ERROR的1064错误。需要指定分片键等。关键的是由于是单机体验,要手写副本1.默认是3.目前不能再配置文件中修改。

最后写入数据。

重点来了:

StarRocks一开始说了是列式数据库,所以适合分析。这点应该说明白了。之所以表现出众主要原因我觉得应该是SIMD(向量化执行)我这里引用一下杨廷琨老师PPT

Oracle的In-memory之所以快,其实也是因为SIMD的原因(当然在内存中做就更加快了),而这个是2013年就发布的。试想一下2013年做出来的,那么哪年开始做的?又是哪年开始设计的?这才是重点。

我这里标题之所以写殊途同归,看来要像分析更快,最后SIMD目前看是绕不过去的。而这些都是数学的范畴吧。我一直说数据库是数学和物理学的结合(CPU  内存这些硬件就是物理器件)。至今还有不少人,没有意识到数据库和数学的紧密关系。(当然内行人都已经认识到了,没有意识到的也的确是外行。也许有些人并不看重数据库所以没有认识也就没有认识吧)。其实在2010年之前我就是外行,我就没认识到。

通过今天这个我想说,要知道有些技术,要知其然也要知其所以然。

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

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

相关文章

UE5 C++ 静态加载资源和类

一.上篇文章创建组件并绑定之后 在Actor中加载初始化了组件&#xff0c;现在在组件中赋值。使用static ConstructorHelpers::FObjectFinder<T>TempName(TEXT("Copy Reference"))&#xff1b;再用TempName.Object //静态加载资源static ConstructorHelpers::FOb…

2024.2.10 HCIA - Big Data笔记

1. 大数据发展趋势与鲲鹏大数据大数据时代大数据的应用领域企业所面临的挑战和机遇华为鲲鹏解决方案2. HDFS分布式文件系统和ZooKeeperHDFS分布式文件系统HDFS概述HDFS相关概念HDFS体系架构HDFS关键特性HDFS数据读写流程ZooKeeper分布式协调服务ZooKeeper概述ZooKeeper体系结构…

拿捏c语言指针(下)

前言 此篇讲解的主要是函数与指针的那些事~ 书接上回 拿捏c语言指针&#xff08;上&#xff09;和 拿捏c语言指针&#xff08;中&#xff09; ​​​​​​没有看的小伙伴要抓紧喽~ 欢迎关注​​个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#x…

GNU 图像处理程序 (GIMP) - 颜色拾取工具

GNU 图像处理程序 [GIMP] - 颜色拾取工具 References 选择 颜色拾取工具 在图片上选取要拾取位置的颜色&#xff0c;前景颜色会跟着改变 选择画笔工具&#xff0c;在图片上绘制的是选取的颜色 工具选项 -> 设置背景颜色&#xff0c;在图片上拾取为背景颜色 使用 橡皮工具&am…

SQL Developer 小贴士:显示Trace文件

SQL Developer可以识别trace文件&#xff0c;而无需利用tkprof进行转换。 在数据库服务器上生产trace文件。例如&#xff1a; alter session set tracefile_identifierdemo01_02;alter session set sql_tracetrue;-- your SQL here, for example select * from hr.employees;a…

汽车电子论文学习--电动汽车电机驱动系统动力学特性分析

关键重点&#xff1a; 1. 汽车的低速转矩存在最大限制&#xff0c;受附着力限制&#xff0c;因路面不同而变化。 2. 起步加速至规定转速的时间可以计算得到&#xff1a; 3. 电机额定功率的计算方式&#xff1a; 可以采取最高设计车速90%或120km/h匀速行驶的功率作为电机额定功…

LeetCode94.二叉树的中序遍历

题目 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 &#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 思路 中序遍历的顺序是左子树 -> 根节点 -> 右子树。因此&#xff0c;我们可以通过递归的方式遍历二叉树&…

程序员为什么不喜欢关电脑?没有的事!

程序员为什么不喜欢关电脑&#xff1f; 我干程序员 10 年了&#xff0c;这些年确实不怎么关电脑。不过我感觉这个习惯跟程序员这个职业是无关的&#xff0c;假如我今天不干程序员&#xff0c;我估计也照样不关电脑。其实&#xff0c;我们不妨反过来问&#xff0c;你喜欢关电脑…

美容小程序:让预约更简单,服务更贴心

在当今繁忙的生活节奏中&#xff0c;美容预约常常令人感到繁琐和疲惫。为了解决这个问题&#xff0c;许多美容院和SPA中心已经开始采用美容小程序来简化预约流程&#xff0c;并提供更加贴心的服务。在这篇文章中&#xff0c;我们将引导您了解如何制作一个美容小程序&#xff0c…

C#,笛卡尔树(Cartesian Tree)的构造、遍历算法与源代码

Ren Descartes 一、笛卡尔&#xff08;Ren Descartes&#xff09; 勒内笛卡尔&#xff08;Ren Descartes&#xff0c;1596年3月31日-1650年2月11日&#xff09;&#xff0c;1596年3月31日生于法国安德尔-卢瓦尔省的图赖讷&#xff08;现笛卡尔&#xff0c;因笛卡尔得名&#…

手撕qsort函数

前言 本篇主要讲解的是qsort函数细节以及运用实例。 紧跟我的脚步一起手撕qsort函数吧~ 欢迎关注​​个人主页&#xff1a;逸狼 更多优质内容&#xff1a; 拿捏c语言指针&#xff08;上&#xff09; 拿捏c语言指针&#xff08;中&#xff09; 拿捏c语言指针&#xff08;下&…

Job 和 DaemonSet

一、Job 1、Job 背景问题 K8s 里&#xff0c;最小的调度单元是 Pod&#xff0c;如果直接通过 Pod 来运行任务进程&#xff0c;会产生以下几种问题&#xff1a; ① 如何保证 Pod 内进程正确的结束&#xff1f; ② 如何保证进程运行失败后重试&#xff1f; ③ 如何管理多个任…

vue使用Nprogress进度条功能实现

下图中的这种顶部进度条是非常常见的&#xff0c;在vue项目中有对应的插件&#xff1a;Nprogress。 实现效果&#xff1a; csdn也在使用&#xff1a; 或者这样自己使用 1、安装 NProgress可以通过npm安装。 npm install --save nprogress 注意此处的--save等同于-s,就是将…

Arcmap excel转shp

使用excel表格转shp的时候&#xff0c;如果你的excel里面有很多字段&#xff0c;直接转很大概率会出现转换结果错误的情况&#xff0c;那么就需要精简一下字段的个数。将原来的表格文件另存一份&#xff0c;在另存为的文件中只保留关键的经度、纬度、和用于匹配的字段即可&…

RuntimeError: CUDA out of memory.【多种场景下的解决方案】

RuntimeError: CUDA out of memory.【多种场景下的解决方案】 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;【Matplotlib之旅&#xff1a;零基础精通数据可视化】 &#x1f3c6;&#x1f3c6;关注博主&#xff0c;随时获取更多关于深度学…

6.2 数据库

本节介绍Android的数据库存储方式--SQLite的使用方法&#xff0c;包括&#xff1a;SQLite用到了哪些SQL语法&#xff0c;如何使用数据库管理操纵SQLitem&#xff0c;如何使用数据库帮助器简化数据库操作&#xff0c;以及如何利用SQLite改进登录页面的记住密码功能。 6.2.1 SQ…

将Windows电脑右下角的“中”字或“英”字输入法状态隐藏的方法

本文介绍在Windows 11操作系统中&#xff0c;将任务栏右下角的语言栏的“中”、“英”标识加以隐藏、消除的一种或许可行的方法。 最近换了新电脑&#xff0c;终于用上了Windows 11操作系统。但是&#xff0c;默认状态下&#xff0c;在任务栏最右侧&#xff0c;也就是屏幕右下角…

5. D. In Love(贪心)

题目链接 D. In Love 题意 线段的集合&#xff0c;有两种操作 插入一个线段删除一个线段 每次操作后都要去查询是否存在两个线段不相交 题解 首先先看两个线段不相交需要满足什么条件 也就是较 大 l > 小 r 大l>小r 大l>小r即可满足不相交 我们进行推广 当集合…

C++ 之LeetCode刷题记录(三十一)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 目标&#xff1a;执行用时击败90%以上使用 C 的用户。 5. 最长回文子串 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 如果字符…

Nodejs 第三十八章(mysql2)

在之前的篇章中&#xff0c;已经补充完成mysql的基本知识&#xff0c;那么现在开始&#xff0c;我们需要把mysql和express,nodejs连接起来。 安装依赖 npm install mysql2 express js-yamlmysql2 用来连接mysql和编写sq语句express 用来提供接口 增删改差js-yaml 用来编写配置…