自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 第6.4章:StarRocks冷热分区

在大数据业务中,虽然每天都有大量的数据入库,但通常只有时间最新的,如一个月内,甚至一周内的数据才会被频繁更新和访问。动态分区表调度创建的分区会使用集群默认配置的存储介质和到期时间,若需要为动态分区表自动配置冷热分区,可以将集群默认的存储介质调整为。,但这个属性仅会用于表创建时的三个分区,后面新建的分区若不指定,还是会使用默认的存储介质。支持为不同分区的数据设置不同的存储介质,目前支持的介质为机械硬盘(盘中,以节省数据存储的成本,此时这个分区就变成了数据存储在。在某些数据具有冷热特性的业务中,我们可以将。

2022-10-24 15:34:12 4206 1

原创 第6.3章:ARM架构下手动编译StarRocks(拓展篇)

StarRocks已经完整的适配了ARM架构的服务器,目前官网提供的部署包是基于x86架构编译的,我们可以使用StarRocks的源码手动编译适用于ARM架构的二进制部署包。为了保证文档的通用性,我们使用Docker拉取CentOS 7.9的镜像来配置编译环境。下文中的编译操作理论上在RedHat系的系统中通用,也推荐使用红帽系的系统进行编译,Ubuntu系的几个系统在测试编译过程中出现过几个玄学报错,我暂时没有思路。首先需要说明的是,由于ARM还未支持SIMD指令集,StarRocks的向量化只能用上少部

2022-07-12 17:21:27 3491 9

原创 第6.2章:StarRocks集群管理工具StarGo(分享篇)

starrocks-controller是鼎石科技工程师[ID:wangtianyi2004]为StarRocks社区版打造的便携式集群管理工具。通过9M不到的starrocks-controller,我们几乎可以像使用企业版一样,非常方便的对多套集群进行一键服务部署和集群服务启停。controller工具使用go语言编写,在数月前已经低调的在github上开源:GitHub - wangtianyi2004/starrocks-controllerhttps://github.com/wangtian

2022-03-31 17:10:12 5166

原创 第6.1章:StarRocks tablet巡检工具(拓展篇)

规范使用StarRocks非常重要的一个环节就是合理分桶,在集群中数据量非常大时,不恰当的分桶带来的负面影响尤为明显。比如,分桶过多会导致BE元数据占用内存过高且影响查询效率,分桶过少可能会引起Compaction压力过大、影响查询并行度,甚至某些情况下还会导致查询报错。在当前设计下,衡量分桶是否规范的唯一标准就是数据量,将每个tablet的数据量控制在100M-1G左右,是比较推荐的。这里说的数据量是指压缩后的数据量,StarRocks是列存,使用LZ4压缩,压缩率根据数据类型和数据情况的不同可能有2

2022-03-24 12:33:15 4517 11

原创 第6章:阶段完结篇+意见收集

趁着有空闲时间,将自己学习和实践过程中的笔记尽可能详细的梳理为了这三十几篇文章,希望对新接触StarRocks的同学们有所帮助。其实按照原本的计划,还想梳理一篇关于StarRocks监控的文章,但Prometheus+Grafana着实是不太好用,所以决定推迟一段时间,把我们自己做的监控系统重新改造一下,贡献给社区:写这个完结篇不是说后面不再发文了,是暂时没有梳理新内容的思路了,所以大家有好的建议可以在评论区留言,假设恰巧是我了解一些的,后续咱们就用拓展篇的方式,再拓展几

2022-03-06 18:19:24 808 7

原创 第5.3章:StarRocks审计日志插件(拓展篇)

StarRocks社区版当前会将所有的审计日志保存在本地fe/log/fe.audit.log里,并没有保存在数据库中。社区不时有同学反馈希望将审计日志也保存在StarRocks本地库表中一份,以方便后面的管理和维护。

2022-03-06 17:33:15 6760 9

原创 第5.2章:StarRocks用户、角色与权限

StarRocks的权限管理参照了MySQL的权限管理机制,支持表级别细粒度的权限控制、基于角色的权限访问控制,咱们这里整体梳理一下。1、创建角色CREATE ROLE role_name;该语句创建一个无权限的角色,后续可以通过GRANT命令赋予该角色权限。2、创建用户CREATE USER user_identity [IDENTIFIED BY 'password'] [DEFAULT ROLE 'role_name'];在StarRocks中,一个user_identit

2022-03-06 17:29:24 6585 1

原创 第5.1章:StarRocks升级、回滚与扩缩容

通常来说,若项目上线后业务平稳、集群稳定,能不动系统,就不动系统!不过,StarRocks版本迭代非常迅速,不论从新功能新特性还是从稳定性和查询性能的角度考虑,官方每次发版都有新惊喜,值得我们酌情升级。也是因此,StarRocks历史版本中存在数个变动较大的版本,当我们希望跨大版本升级时,就需要使用几个过渡版本来配合升级。同样,StarRocks官网对于集群管理的介绍地址为:集群管理 @ Cluster_administration @ StarRocks...

2022-03-06 17:22:12 4693 1

原创 第4.4章:StarRocks备份还原--Backup&Restore

Backup是StarRocks目前提供的唯一一种可将数据与元数据一并导出的导出方式。Backup操作也需要Broker组件,通过Broker将数据备份到远端存储系统中,例如HDFS、OSS、COS或S3等。基于Backup的特性,这种方式通常用于对数据进行定期的快照备份,或者用于在不同集群间进行数据迁移。与Backup对应的命令是Restore,用于将Backup备份后的数据进行还原。因为Backup备份后的文件中已经包含了元数据,所以在进行Restore还原操作时,我们无需手动建表。目前,备

2022-03-02 17:19:28 4622 2

原创 第4.3章:StarRocks数据导出--Spark Connector

通过Spark Connector,我们可以使用Spark来快速读取StarRocks中存储的数据。Spark Connector在使用上和咱们之前介绍的Flink Connector Source类似,二者都具备并行读取StarRocks的BE节点数据的能力,相对于jdbc的方式大大提高了数据读取效率。Spark Connector目前只能用来读取数据,Sink部分需要咱们自己基于Stream Load实现。此外,Spark Connector版本更新较慢,所以相对更推荐使用Flink Connect

2022-03-01 19:13:20 3408

原创 第4.2章:StarRocks数据导出--Export

Export是StarRocks提供的将数据导出至HDFS、OSS、COS或S3等对象存储上的导出方式(当前仅支持导出为CSV文件),使用Export需要在集群中提前部署Broker组件。Export通常用于数据备份或数据迁移,支持导出表级或者分区级的数据,目前支持导出StarRocks内部表(不会一同导出物化视图表中的数据)和MySQL外表中的数据,单次导出的数据量建议控制在几十GB级别以避免过高的任务失败重试成本。StarRocks官网对Export的相关介绍如下:导出总览 @ Export

2022-02-28 10:57:53 3641 1

原创 第4.1章:StarRocks数据导出--导出总览

一般来说,业务上涉及到的数据导出包括表结构导出和表数据导出,通常用来进行数据备份或数据迁移。一、表结构导出StarRocks的元数据持久化在FE的BDB中,并不能直接访问或者导出,不过为了兼容MySQL协议,StarRocks在information_schema库下面也模拟了一部分,至少获取表结构信息是足够的。举一个场景,假设我们在StarRocks中的表非常多,我们希望将表中的字段名称、注释或类型等做成页面展示或者搜索,就可以直接去information_schema.columns表中去取相关

2022-02-26 20:23:42 2795

原创 第4.0章:一键部署StarRocks单机版(拓展篇)

在一台有网络的装有Docker的服务器上,解压安装包:StarRocks-2.#.#-Oneclick.tar.gz,进入目录执行:./install.sh,等待2分钟左右,部署完成,Enjoy StarRocks!可直接使用DBeaver、Navicat等工具将StarRocks视为MySQL访问,IP为宿主机IP,查询端口为9030,用户名root,初始密码为空。可执行docker exec -it starrocks /bin/bash进入容器,部署目录为/opt/starrocks,

2022-02-24 13:17:27 4042 2

原创 第3.8章:StarRocks数据导入--Spark Load

Spark Load是通过外部的Spark资源实现对导入数据的预处理,进而提高StarRocks大数据量的导入性能,同时也可以节省StarRocks集群的计算资源。Spark Load的操作本身不复杂,但涉及的技术栈比较多,架构相对较重,所以主要用于初次迁移、构建全局字典、大数据量导入等场景(数据量可到TB级别)。通常来说,Spark Load的整体逻辑是:读Hadoop数据源中的数据文件-->使用Spark自己的计算资源进行ETL-->将ETL后的文件保存到计算资源中配置的Hadoop中-

2022-02-23 16:54:31 3585 1

原创 第3.7章:StarRocks数据导入--Broker Load

一、Broker Load背景基于Hadoop生态的传统数仓目前仍拥有非常大的用户群体,为此StarRocks加入了Broker Load导入方式,让我们可以方便的从HDFS类的外部存储系统(Apache HDFS、阿里OSS、腾讯COS、百度BOS、Amazon S3等)中导入数据,高效的完成数据迁移工作。因为一些历史原因,我们需要使用Broker组件来协助进行Broker Load。Broker是一个独立的无状态进程,封装了文件系统接口,为StarRocks提供读取远端存储系统中文件的能力。通过

2022-02-22 17:42:03 5905 2

原创 第3.6章:DataX访问Hive2拉取数据(拓展篇)

DataX本身没有提供Hive支持,hivereader仍是通过hdfs的方式进行抽取的。在调研中发现,DataX介绍材料中提到通用RDBMS支持所有关系型数据库,RDBMSReader通过JDBC连接远程RDBMS数据库,并执行相应的sql语句将数据从RDBMS库中SELECT出来。那么理论上,使用RDBMSReader直接访问Hive2获取数据方案可行。通过参考RDBMSReader插件文档(https://github.com/alibaba/DataX/blob/master/rdbmsre

2022-02-16 11:31:26 5447

原创 第3.5章:StarRocks数据导入--DataX StarRocksWriter

一、DataX介绍DataX 3.0是阿里云DataWorks数据集成的开源版本,可以方便的对各种异构数据源进行高效的数据同步。其github地址为:https://github.com/alibaba/DataXhttps://github.com/alibaba/DataXDataX将复杂的网状的同步链路变成了星型数据链路,DataX自身作为中间传输载体负责连接各种数据源,友好的解决了异构数据源同步问题。DataX采用Framework+plugin架构构建,将数据源读取和写入抽象成为R

2022-02-15 15:49:46 4079 1

原创 第3.4章:StarRocks数据导入--Flink Connector与CDC秒级数据同步

Flink作为当前流行的流式计算框架,在对接StarRocks时,若直接使用JDBC的方式“流式”写入数据,对StarRocks是不友好的,StarRocks作为一款MVCC的数据库,其导入的核心思想还是“攒微批+降频率”。为此,StarRocks单独开发了flink-connector-starrocks,其内部实现仍是通过对数据缓存攒批后执行Stream Load导入。StarRocks Flink Connector目前也已开源,其github地址为:GitHub - StarRocks/fl

2022-02-11 17:54:25 13218 3

原创 第3.3章:StarRocks数据导入--Routine Load

Routine Load(例行导入)是StarRocks自带的一种可以从Kafka中持续不断的导入数据的方式,我们可以方便的在StarRocks中通过SQL来控制导入任务的暂停、继续及停止。关于Routine Load,StarRocks官方文档描述的非常详细,这里仅结合自己的一些实践和理解简单再梳理一下。官网相关文档地址:...

2022-02-10 17:19:25 7169 2

原创 第3.2章:StarRocks数据导入--Stream Load

一、环境准备Stream Load可以说是StarRocks最为核心的导入方式,StarRocks的主要导入方式例如Routine Load、Flink Connector、DataX StarRocksWriter等,底层实现都是基于Stream Load的思想,所以我们着重介绍。Stream Load是由用户发送HTTP请求将本地文件或数据流导入至StarRocks中的导入方式,其本身不依赖其他组件。Stream Load支持导入本地数据文件(csv、txt等)和json文件,建议单次导入的数据

2022-02-09 11:05:13 11351 3

原创 第3.1章:StarRocks数据导入--Insert into

Insert Into是我们在MySQL中常用的导入方式,StarRocks同样也支持使用Insert into的方式进行数据导入,并且每次insert into操作都是一次完整的导入事务。在StarRocks中,Insert的语法和MySQL等数据库的语法类似,具体可以参考官网文档:Insert Into 导入 @ InsertInto @ StarRocks Docshttps://docs.starrocks.com/zh-cn/main/loading/InsertIntoINSERT

2022-02-08 14:50:36 10197

原创 第3.0章:StarRocks SSB性能测试(拓展篇)

SSB(Star Schema Benchmark)是麻省州立大学波士顿校区的研究人员定义的基于现实商业应用的数据模型,是业界公认的可用来模拟决策支持类应用的测试集合,其测试结果比较公正和中立。学术界和工业界普遍采用它来评价决策支持技术类应用的性能,以此全方位评测系统的整体商业计算综合能力。通过SSB测试集合,我们可以方便的对比各种OLAP产品的基础性能指标,StarRocks的SSB测试报告可以在官网获取,地址为:StarRocks - 新一代极速全场景MPP数据库https://www.star

2022-01-07 17:10:31 4212 2

原创 第2.11章:StarRocks表设计--外部表

除了创建表、视图或者物化视图,StarRocks还支持创建外部表来访问外部数据源。所谓外部表,可以简单的理解为是在StarRocks中建立的与外部数据的映射,所有的数据还在各自的数据源中,但我们可以通过外部表向所在的数据源发起查询。目前StarRocks已支持的第三方数据源包括MySQL、ElasticSearch、Hive以及StarRocks。外部表的创建和使用都比较简单,下面我们逐个介绍。1 MySQL外部表在星型模型中,我们一般将表类型划分为维度表和指标表。维度表数据量通常较小,但一般都

2022-01-04 22:50:56 6209 6

原创 第2.10章:StarRocks表设计--Schema Change

在分布式表中,Schema Change的限制是比较多的,有些情况还会是一个比较重的操作。StarRocks中目前进行schema change的方式有三种:sorted schema change,direct schema change和linked schema change。sorted schema change会改变列的排序方式,需对数据进行重新排序。3)只能修改列的类型、注释和位置,不支持修改列名和默认值,所以在修改列时,列名和默认值需在修改语句中按照原属性显式的写出;例如修改列的类型等。..

2022-01-04 22:39:26 5003

原创 第2.9章:StarRocks表设计--Colocation Join

在分布式集群中,每张表的数据都会分散在集群多个节点上,所以当我们进行join时避免不了节点间数据网络传输带来额外的延迟和其他开销。为了加速查询,StarRocks设计了Colocation Join。在Colocation Join中,StarRocks引入了Colocation Group(CG)和Colocation Group Schema(CGS)的概念,CGS是指CG的分桶键,分桶数以及副本数等信息。Colocation Join实现的核心就是将同一个Colocation Group中的表采用

2022-01-04 22:28:41 1943

原创 第2.8章:StarRocks表设计--物化视图

在实际的业务中,我们通常需要对数据进行对原始明细数据任意维度的分析以及固定维度聚合分析。两种场景并存的情况下,聚合模型表由于缺失部分明细数据,就无法满足用户对明细数据的分析需求。如果仅建立一个明细模型,虽然可以满足任意维度的分析需求,但对明细数据进行聚合分析时,实时分析性能不佳。若同时建立一个聚合模型和一个明细模型,虽然可以满足性能和任意维度分析,但两表之间本身无关联,需要业务方自行选择分析表,不灵活也不易用。物化视图就是StarRocks为明细模型打造的“预计算”方案,本质上也是“空间换时间”,但实现

2022-01-04 22:21:26 3746 3

原创 第2.7章:StarRocks表设计--视图

StarRocks中最主要的OLAP类型的表设计咱们前面已经梳理完了,除此之外,StarRocks中还涉及到了一些与表设计相关的内容,我们也一并进行展开。首先,咱们来简单说一下视图功能。1视图定义StarRocks也拥有视图功能,且其与MySQL中的视图概念及语法非常类似。StarRocks中的视图也是一种虚拟存在的表,其行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。2视图优势视图的优势主要有:1)重用sql语句;2)简化

2022-01-04 22:18:16 2117

原创 第2.6章:StarRocks表设计--列级别索引

StarRocks支持列级别的索引技术,比如,Bitmap索引适合低基数列,可以快速计算出枚举类型的列满足一定条件的行。Bloomfilter索引用于高基数列,可快速判断数据块中不含所查找值。在入门阶段,我们不需要研究实现原理,可以先明确它们的使用场景,并尝试实践应用。1 Bitmap索引1.1适用场景非前缀过滤:前面提到过,StarRocks对于表结构中的前几列可以通过前缀索引快速过滤。如果需要对非前置列进行快速过滤,就可以对这些列建立Bitmap索引。多列过滤:Bitmap可以快速的

2022-01-04 09:50:56 3602

原创 第2.5章:StarRocks表设计--数据类型

定义恰当数据字段类型对StarRocks查询的优化是非常重要的,从查询效率的角度考虑,我们可以遵循两条原则:如果数据没有Null,可以指定Not Null属性; 尽量使用数字列代替字符串列。StarRocks支持多种类型,大致可以分为:数值、时间、字符以和其他类型。1数值类型1.1严格数值整型 类型 大小 范围(区间) TINYINT 1 Byte [-128 , 127]

2022-01-03 15:20:28 6533

原创 第2.4章:StarRocks表设计--分区分桶与副本数

StarRocks采用Range-Hash的组合数据分布方式,也就是我们一直在提的分区分桶方式。StarRocks中的分区是在建表时通过PARTITION BY RANGE()语句设置,用于分区的列也被称之为分区键,当前分区键仅支持日期类型和整数类型(支持一列或多列)。例如前文中表table01中“PARTITION BY RANGE(event_time)”,event_time即为分区键。若建表时我们不进行分区,StarRocks会将整个table作为一个分区(这个分区的名称和表名相同)。StarRoc

2022-01-03 15:09:06 14510 7

原创 第2.3章:StarRocks表设计--排序键和前缀索引

在介绍StarRocks的四种数据模型时,我们多次提到了排序键,也列出了一些排序键的注意事项,现在咱们来一起研究下到底什么是排序键。1排序键StarRocks为了加速查询,底层的数据是按照指定的列排序存储的,这部分用于排序的列(可以是一列或多列),就称为排序键(Sort Key)。以排序列作为条件进行数据查找,会非常的高效。直观来看,各个模型的排序键就是建表语句中DUPLICATE KEY、AGGREGATE KEY、UNIQUE KEY或PRIMARY KEY后面指定的列。但是四种模型的排序键

2021-12-20 19:50:04 3882 3

原创 第2.2章:StarRocks表设计--数据模型

为了全面的满足企业业务上的分析需求,StarRocks当前设计了四种数据模型:明细模型、聚合模型、更新模型、主键模型。1明细模型明细模型是StarRocks中最常用的数据模型,顾名思义,它会保留所有的明细数据,也就是说,在明细模型下,即便导入两条完全相同的数据,StarRocks也会将数据原封不动的保存进表,不会进行聚合的操作,也没有update的语义。基于明细模型的特点,我们不难发现,明细模型通常用于追加式的数据写入,比较适合:1、需要保留原始数据的业务;2、查询维度不固定的业务;

2021-12-18 16:20:04 5548 2

原创 第2.1章:StarRocks表设计--概述

建表是使用StarRocks非常重要的一环,规范的表设计在某些场景下甚至能使查询性能有数倍的提升。StarRocks的表设计涉及到的知识点主要包括数据模型选择、分区分桶、排序键和前缀索引、列级别索引以及字段类型等等。StarRocks的建表语句与MySQL比较相似,但也有自己的特点。我们先在StarRocks中创建一个演示用的数据库starrocks(后续所有的建表咱们都在里面进行),然后用比较规范的建表语句创建表table01。这里的建表语句我们只是先把涉及的点覆盖到,后面会逐项展开说明:mys

2021-12-18 14:21:07 4020 1

原创 第1.5章:StarRocks部署--集群部署

StarRocks作为新一代MPP数据库,集群部署才能充分发挥其彪悍的查询性能。生产环境下我们也推荐进行集群化部署,本章内容我们就模拟生产环境下StarRocks集群部署。1集群部署注意事项在部署StarRocks生产环境前,我们需要根据业务需求设计严谨的集群架构,一般来说,我们需要注意以下几项:1.1 FE的数量及是否需要FE的高可用FE的Follower要求为奇数个,且并不建议部署太多,通常我们推荐部署1个或3个Follower。在三个Follower时,即可实现高可用(HA)。此时,.

2021-12-04 16:01:11 7734 5

原创 第1.4章:FE开发环境搭建(拓展篇)

StarRocks的FE是使用Java语言开发的,这里咱们使用IntelliJ IDEA在Windows下进行FE开发环境的搭建。以下演示过程中所用组件的版本信息如下: 工具名称 当前版本 版本要求 备注 IntelliJ IDEA IntelliJ IDEA 2020.3.4 不要过低 测试IntelliJ IDEA 2017.3.4无法正常运行

2021-11-27 20:35:40 2960 6

原创 第1.3章:StarRocks部署--单机部署

严格来说,StarRocks并没有所谓的“Standalone运行模式”,生产环境下更是不建议进行单实例部署。这里将单机部署整理出来,主要是考虑当用户测试环境受限于机器数量或仅希望验证功能,那么也可以在一台机器上简易部署把StarRocks跑起来。以服务器“starrocks(192.168.110.98)”为例,在进行完“第1.2章:StarRocks部署--部署环境准备”中的准备工作后,我们开始进行单节点的部署。为方便演示,我们使用root用户通过XShell工具访问服务器,单节点架构设计如下:

2021-11-26 12:15:17 7799 13

原创 第1.2章:StarRocks部署--部署环境准备

1.1集群硬件推荐StarRocks对服务器配置的基础要求不高,测试环境2核4G内存下也能够正常进行一些小数据规模的查询。在生产环境下或者我们比较关注性能时,StarRocks各实例推荐的硬件配置为: 实例名称 配置要求 FE 8核16GB万兆网卡 及以上(并发不高时可与BE混布) BE 16核64GB万兆网卡 及以上 CPU必需支持AVX2指令集 Broker .

2021-11-23 14:52:37 12421 7

原创 第1.1章:StarRocks部署--源码编译

在部署StarRocks前,我们可能会纠结使用哪个版本合适。StarRocks在github上打包有各版本的源码包,在官网上也发布有基于x86架构编译的适用于CentOS 7+的Release版二进制包,版本的选择我们不妨遵循以下几个原则:1、测试环境可以用官网发布的最新Release版二进制包部署,例如1.19.1,以便快速熟悉新功能; 2、预生产环境和生产环境推荐使用官网上一个大版本的最后一个小版本,例如当前的1.17.8或1.18.4,最为稳定; 3、若确实希望尝试最新的功能,或最新的代码修复

2021-11-21 16:45:30 8245 7

原创 第0章:初识StarRocks

初识StarRocksStarRocks是鼎石科技基于Apache Doris(incubating) 0.13打造出的企业级国产数据库产品,目前已在Github开源:https://github.com/StarRocks/starrocks一、StarRocks特性StarRocks是一款极速全场景MPP分析型数据库,可以“一栈式”的响应企业各类低延迟场景的查询需求。为了对StarRocks有一个准确的认知,我们不妨将StarRocks概念的关键词逐项展开介绍:“极速”、“全场景”、

2021-11-19 18:09:01 19436 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除