当前位置: 首页 > news >正文

starrocks表模型

StarRocks 提供了四种表模型,每种模型都针对不同的业务场景和数据处理需求进行了优化。选择合适的表模型是进行高效数据建模和性能优化的第一步。


四种表模型概览

StarRocks 的表模型主要定义了数据在写入时如何处理具有相同 Key 的记录。这些 Key 列也被称为排序键(Sort Key),用于数据存储时的排序和索引,是查询性能优化的关键。

1. Duplicate Key Table (明细模型)
  • 特点:最简单、最灵活的模型。它对数据不做任何聚合或去重,完全保留原始数据。
  • 如何工作:当导入新数据时,即使新记录的 DUPLICATE KEY 与已有的记录完全相同,StarRocks 也会将其作为一条独立的记录追加写入。
  • 适用场景
    • 日志数据:存储用户行为日志、系统日志等原始数据,这些数据通常只需要追加写入,不需要更新或聚合。
    • 明细数据:保留所有原始交易记录、传感器数据等,用于多维度的明细查询和即席分析。
  • 优势:写入性能高,模型简单,数据完全保留,没有预聚合的限制。
2. Primary Key Table (主键模型)
  • 特点:专为实时更新和高并发查询设计的模型。它保证了主键的唯一性。
  • 如何工作:当导入新数据时,如果记录的主键已存在,新记录会覆盖旧记录。这个模型原生支持 UPDATEDELETE 操作,并且性能优异。
  • 适用场景
    • 实时更新:需要频繁更新的场景,如用户画像、订单状态变更等。
    • 高频写入与查询:适用于交易系统、实时看板等需要秒级响应的场景。
    • 拉链表(SCD Type 2):结合主键和日期字段,能非常高效地实现拉链表的更新和插入逻辑。
  • 优势:支持部分列更新,实时查询性能极佳,大大简化了数据同步的 ETL 流程。
3. Aggregate Key Table (聚合模型)
  • 特点:在数据加载时就对相同 AGGREGATE KEY 的数据进行预聚合
  • 如何工作:创建表时,需要为非 Key 列指定聚合函数(如 SUMMINMAXREPLACE)。当导入新数据时,StarRocks 会将新旧记录根据聚合函数进行合并。
  • 适用场景
    • 预聚合报表:需要对数据进行固定的聚合分析,如统计网站的 PV、UV、GMV 等。
    • 指标分析:适用于需要快速查询大量指标汇总结果的场景,能显著减少查询时的数据扫描量。
  • 优势:通过预聚合,可以极大地减少数据量,从而大幅提升聚合查询的性能。但缺点是灵活性差,无法查询明细数据。
4. Unique Key Table (唯一键模型)
  • 特点:保证了唯一键的唯一性,类似于 Primary Key 模型,但通常用于覆盖式更新
  • 如何工作:当导入新数据时,如果唯一键已存在,新记录会覆盖旧记录。它等同于聚合模型中,所有非 Key 列都使用 REPLACE 聚合函数。
  • 适用场景
    • 数据覆盖:适用于那些只需要最新版本数据,不需要保留历史记录的场景。
    • 替代 Primary Key:在 StarRocks 的早期版本中,Unique Key 模型是主要用于实时更新的方案。但在新版本中,Primary Key 模型因其更强大的功能和更高的性能,通常被推荐作为首选替代方案。
  • 优势:确保了数据的唯一性,更新逻辑简单。

如何选择表模型?

这是一个简单的决策树,可以帮助你选择合适的表模型:

  1. 你需要实时更新或删除数据吗?
    • → 优先选择 Primary Key 模型。它提供了最强大的功能和最优的性能。
    • → 转到第 2 步。
  2. 你需要对数据进行预聚合以加速查询吗?
    • → 选择 Aggregate Key 模型。它能显著减少数据量并提升聚合查询性能。
    • → 转到第 3 步。
  3. 你只需要简单地追加写入原始数据吗?
    • → 选择 Duplicate Key 模型。它是最简单直接的选择,保留所有数据。
    • Unique Key 模型可能适合你需要覆盖旧数据的场景,但通常 Primary Key 模型是更好的选择。

大多数情况下,如果你的业务需要实时或频繁更新数据,Primary Key 模型是最佳选择。如果你只是存储海量的原始日志或明细数据用于即席分析,Duplicate Key 模型会更合适。

http://www.dtcms.com/a/470127.html

相关文章:

  • 中国重庆网站建设vs2008不能新建网站
  • 个人二级网站怎么做任房保障和城乡建设局网站
  • 企业网站主页设计图微信小程序超市平台
  • 《MCU职位》面试问题
  • 用于化学绘图与IUPAC命名:InDraw 软件的基本使用指南
  • 网页设计与网站建设设计报告建设银行网站查余额
  • 网站meta 优化建议做网站的程序员进什么公司好
  • 【电路】电容的频率特性与通阻范围计算详解
  • LLM 笔记 —— 05 有关影像的生成式 AI
  • MySQL字符集引起的锁表、唯一索引重复问题
  • 算法6.0
  • 【C 学习】12.1-函数基础
  • 11.程序地址空间_2
  • Java的方法重写/覆盖
  • 门户网站建站要求外国做家具的网站
  • 『 数据库 』MySQL复习(表的约束)
  • 房地产开发公司网站源码做高端网站的公司
  • 【vue】使用web worker上报日志:
  • MySQL 与Power BI 的作用,以及在数据分析中扮演的角色
  • k歌里的相片是通过网站做的吗typecho与Wordpress同步
  • 如何做中英版网站简单写文章的网站
  • Linux 进程通信——基于责任链模式的消息队列
  • 手机能做网站吗北京软件开发公司哪家专业
  • 物流网站的建设免费推广平台排行榜
  • iOS一直讲的单元格优化
  • 信阳网站seo用手机怎么做网站
  • 【Canvas技法】 卡通版太阳的三种画法
  • 词根学习笔记 | Agri系列
  • PHP解决跨域请求问题的两种实用方法
  • 语音大模型自监督训练思路