StarRocks 实战系列:明细模型的高效数据分析

什么是 StarRocks?

StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库 。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理,就可以用 StarRocks 来支持多种数据分析场景的极速分析。

为了满足业务上的分析需求 StarRocks 设计了四种数据模型(明细模型、聚合模型、更新模型、主键模型),它们有各自的特点以适配不同的业务场景。

本文将从创建数据模型表开始,配合简洁的案例,来讲解明细模型的用法和特点。

明细模型的核心理念

明细模型在 StarRocks 中扮演着重要的角色。其核心理念在于通过排序键提高查询效率,特别适用于数据分析等场景。

排序键的妙用

明细模型允许用户在创建表时定义排序键。这个排序键的作用类似于 MySQL 中的普通索引,通过合理设置排序键,可以使 StarRocks 更高效地过滤和查询数据。这种灵活性使得明细模型成为处理大规模数据时的得力助手。

适用场景的拓展

除了日志数据分析,对于实时交易数据或事件记录的分析,明细模型同样展现出强大的性能。通过选择合适的排序键,用户可以优化数据库的查询速度,提高数据分析的效率。

明细模型与 MySQL 的异同

可以看到除了 StarRocks 特有的关键字之外,两者语法大致是相同的,但有什么样的特点呢?

  • 如果在建表语句中不指定具体模型,默认就是 DUPLICATE KEY 明细模型,并且会自动选取前三列作为排序键
  • 指定排序键的作用类似于 MySQL 给列设置普通索引,目的是为了提高查询效率
  • 写入的数据无论是否完全一致,都会插入到数据库中而且不支持 Update 语法

我们从对比的角度讲,明细模型大致相当于:

MySQL 具有普通索引的无主键表,并且不支持 Update 操作。

怎么建表?

在实际操作中,使用 CloudDM 的可视化工具,我们可以轻松创建 StarRocks 的明细模型表。以下是详细的步骤:

  1. 使用 CloudDM,添加完 StarRocks 数据源之后,在表视图中右键方式开始新建表操作:
  1. 配置基本信息,包括表名等
  1. 添加列信息,在结构设计器中选择列,然后点击增加按钮新建一个列,在右侧可以配置列的信息
  1. 设置表的数据模型,点击数据模型,点击添加类型选择 "明细模型",接着在下方选择排序键
  1. 配置排序键,在右方具体选择列,多个排序键列需要多次点击增加。
  1. 点击保存,生成建表语句,可选择立即执行或者复制 SQL 语句

怎么写数据?

  1. 右键点击新建表,并选择 编辑数据
  1. 准备三行数据,前两行数据完全相同,点击 "+" 符号,填写完成后点击提交,保存这三条数据
  1. 查看插入的数据,发现三条都已写入,验证明细模型的特点: 写入的数据无论是否完全一致,都会插入到数据库中。如果选择的是 StarRocks 聚合模型,上面三条数据插入之后就会变为 2 条
  1. 验证是否支持 Update,双击 "SR_TEST" 库打开新的查询窗口,针对这个表尝试做一次 UPDATE 操作,结果执行报错:
  1. CloudDM 可视化数据编辑会直接禁用更改,和 StarRocks 数据库约束保持一致

技术分享与总结

通过深入探讨 StarRocks 的明细模型,我们更全面地了解了这一高效数据库的设计思想和应用场景。从排序键的妙用到与 MySQL 的比较,我们希望读者通过本文能够更好地理解和应用 StarRocks 的明细模型。

CloudDM 作为可视化工具,进一步简化了表的创建和数据操作步骤,为用户提供了更便捷的数据分析体验。相信通过这篇文章,可以帮助读者对 StarRocks 的明细模型有了更深入的认识。

相关推荐
康实训5 分钟前
CGA老年综合评估是什么?评估体系、核心维度与行业应用标准解析
大数据·人工智能·实训室·实训室建设
高频因子挖掘机9 分钟前
A股分钟K线数据占内存:先缩小请求范围,还是换 DataFrame 工具?
后端·github·api
高级程序源15 分钟前
springboot大学生体测系统72170-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·django·课程设计
SelectDB26 分钟前
Doris VARIANT 速查:类型映射、建表写法、索引配置与常见注意点
大数据·数据库·数据分析
打工仔折腾 AI27 分钟前
极空间用 Docker 部署 Photopea:网页版 PS 的私有化实践
运维·后端·python·docker·容器·langchain·ai agent 实战
计算机编程指导师1 小时前
计算机毕设选题推荐:基于Spark+Django的黄金价格历史数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·python·计算机·spark·django·课程设计·黄金价格
掘金者阿豪1 小时前
别只会docker stats了:cAdvisor把CPU、内存、磁盘和网络监控搬进Web页面
后端
weixin_460443561 小时前
在线考试人脸识别如何合规?本地活体检测、人脸模板加密与替代认证的技术架构设计
大数据·数据库·煤矿培训考试系统·煤矿在线考试系统·煤矿安全培训·煤矿考试系统
计算机编程指导师1 小时前
计算机毕设怎么做?基于Spark+Django的股票数据分析与可视化系统实战指导 源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·python·spark·django·毕业设计·股票·课程设计
企业数字化笔记1 小时前
多租户系统从哪里开始设计?租户身份、数据隔离、权限与套餐的整体方案
java·spring boot·后端·junit