首页 > 其他分享 >Starrocks的表引擎选择及表属性的设置详细说明

Starrocks的表引擎选择及表属性的设置详细说明

时间:2024-10-12 10:52:27浏览次数:9  
标签:... 存储 Starrocks 示例 分区 引擎 及表 数据

  1. 表引擎选择
    • OLAP引擎
      • 特点与适用场景
        • 这是StarRocks中用于数据分析场景的主要引擎。它针对海量数据的复杂分析查询进行了优化,能够高效地处理聚合、分组、排序等操作。例如,在数据仓库场景下,当需要对销售数据进行按地区、时间等维度的统计分析时,OLAP引擎能够快速返回结果。
        • 支持高并发的查询,多个用户同时进行数据分析查询时,系统能够合理分配资源,保证查询性能。
        • 数据存储结构上,它采用列式存储,这种存储方式在处理分析型查询时,只需要读取查询涉及的列,减少了不必要的数据读取,大大提高了查询效率。例如,在查询仅涉及销售额和销售时间的情况下,不需要读取产品名称等无关列的数据。
      • 创建示例:在创建表时,使用ENGINE = OLAP来指定表引擎为OLAP,如CREATE TABLE my_olap_table (... ) ENGINE = OLAP...
    • 其他引擎(如MySQL引擎)
      • 特点与适用场景
        • StarRocks也支持MySQL引擎,主要用于兼容MySQL协议,方便与已有的MySQL应用程序和工具进行集成。如果企业有大量基于MySQL开发的应用,并且希望将部分功能迁移到StarRocks或者实现数据共享,MySQL引擎就很有用。
        • 对于一些简单的事务处理或者对MySQL语法有严格依赖的场景,MySQL引擎可以提供熟悉的操作环境。不过,它在复杂分析性能方面相对OLAP引擎会较弱。
      • 创建示例CREATE TABLE my_mysql_table (... ) ENGINE = MYSQL...(具体语法可能因版本和配置略有差异)。
  2. 表属性设置
    • Duplicate Key(重复键)
      • 含义与作用
        • 当使用DUPLICATE KEY设置(如DUPLICATE KEY (column_name))时,表示指定列的值在表中可以重复。这在数据加载和处理过程中有重要作用,特别是在处理可能存在重复数据的场景。例如,在日志数据存储中,相同的连接ID(conn_id)可能会在不同时间点出现多次,使用DUPLICATE KEY可以方便地存储这些重复记录。
      • 示例说明CREATE TABLE test_table (... ) ENGINE = OLAP DUPLICATE KEY (id)...,这里id列的值允许重复。
    • DISTRIBUTED BY HASH(哈希分布)
      • 含义与作用
        • 通过DISTRIBUTED BY HASH (column_name) BUCKETS n(其中n为桶的数量)的设置,可以将数据按照指定列的哈希值均匀分布到多个桶中。这种分布方式能够提高数据的并行处理能力和查询性能。例如,在一个用户行为分析表中,按照用户ID(user)进行哈希分布,当查询某个用户的行为数据时,系统可以快速定位到包含该用户数据的桶,减少不必要的数据扫描。
      • 示例说明CREATE TABLE user_behavior_table (... ) ENGINE = OLAP DISTRIBUTED BY HASH (user) BUCKETS 10...,表示将数据按照user列的哈希值分布到10个桶中。
    • Properties属性组(如replication_num、in_memory等)
      • replication_num(副本数)
        • 含义与作用
          • 设置数据的副本数量,通过"replication_num" = "n"n为副本数)来指定。副本的存在主要是为了提高数据的可用性和容错性。例如,当某个存储节点出现故障时,其他副本可以保证数据的正常访问。在分布式环境中,合适的副本数设置可以平衡数据安全性和存储成本。
        • 示例说明CREATE TABLE my_table (... ) PROPERTIES ( "replication_num" = "3"... ),表示表数据有3个副本。
      • in_memory(是否在内存中)
        • 含义与作用
          • 通过"in_memory" = "true/false"来设置数据是否存储在内存中。设置为true时,可以大大提高数据的读写速度,适用于对性能要求极高且数据量能够适应内存容量的场景。不过,将所有数据存储在内存会增加内存资源的消耗。
        • 示例说明CREATE TABLE high_performance_table (... ) PROPERTIES ( "in_memory" = "true"... ),表示该表数据存储在内存中。
      • storage_format(存储格式)和enable_persistent_index(持久化索引)
        • 含义与作用
          • storage_format指定数据的存储格式,不同的存储格式在存储效率、压缩率、读写性能等方面有所不同。enable_persistent_index用于设置是否启用持久化索引。持久化索引可以在系统重启后更快地恢复数据访问,提高系统的稳定性和性能。
        • 示例说明CREATE TABLE my_table (... ) PROPERTIES ( "storage_format" = "DEFAULT", "enable_persistent_index" = "false"... ),这里使用默认存储格式且不启用持久化索引。
      • compression(压缩)
        • 含义与作用
          • 通过设置compression属性(如"compression" = "LZ4")来指定数据的压缩算法。压缩可以有效减少数据存储空间,降低存储成本,同时在一定程度上也可能会影响数据的读写性能。不同的压缩算法有不同的压缩率和性能特点,LZ4是一种快速压缩算法,在压缩和解压缩速度上表现较好。
        • 示例说明CREATE TABLE storage_efficient_table (... ) PROPERTIES ( "compression" = "LZ4"... ),表示该表数据使用LZ4算法进行压缩。
      • dynamic_partition(动态分区)
      • 功能与原理
        • 动态分区允许根据数据的某个时间相关列(如日期、时间戳等)自动创建和管理分区。例如,在日志数据存储中,可以按照日期来划分分区。每天的数据自动进入对应的日期分区,这样在查询特定日期范围的日志时,系统可以快速定位到相关分区进行查询,避免全表扫描。
        • 可以设置分区的规则,包括起始分区、分区的时间间隔等。例如,设置起始分区为2024 - 01 - 01,分区间隔为DAY,那么系统会自动从这个日期开始,每天创建一个新分区来存储当天的数据。
      • 配置示例:在创建表时,可以添加如下属性:
PROPERTIES (
           "dynamic_partition.time_unit" = "DAY",
           "dynamic_partition.start" = "2024-01-01",
           "dynamic_partition.end" = "2024-12-31",
           "dynamic_partition.prefix" = "p",
           "dynamic_partition.enable" = "true"
       )

这里设置了分区时间单位为天,起始日期和结束日期,分区名称前缀为p,并且启用了动态分区功能。

标签:...,存储,Starrocks,示例,分区,引擎,及表,数据
From: https://blog.csdn.net/yuanmomoya/article/details/142872247

相关文章

  • 内核级流量治理引擎Kmesh八大新特性解读
    本文分享自华为云社区《内核级流量治理引擎Kmeshv0.5发布!进击的Sidecarless服务网格》,作者:云容器大未来。我们非常高兴地宣布Kmeshv0.5.0的发布。首先,感谢我们的贡献者在过去两个月中的辛勤工作。在v0.5.0版本中,我们进行了许多重要的增强,包括命令行工具kmeshctl、更全面......
  • 1-17 openGauss逻辑模块之SQL引擎 -- openGauss课程
    大家好,欢迎大家收看本节课程对于初学者入门的学习,一些理论不容易理解或记住,所以本节课程【创新】采用了【正、反对比联想记忆】的方法,引入模拟场景中的肖荏盖的小故事。(模拟场景为虚构演绎,仅供教学,不要对号入座,懂不懂?明白吗?)【数据库的功能都是正向的,模拟场景中的肖荏盖做的......
  • <Project-8.1 pdf2tx-MM> Python Flask 用浏览器翻译PDF内容 2个翻译引擎 繁简中文结果
    更新ProjectName:pdf2tx(P6)Date:5oct.24Function:在浏览器中翻译PDF文件Code:https://blog.csdn.net/davenian/article/details/142723144升级ProjectName:pdf2tx-mm(P8)7oct.24 加入多线程,分页OCR识别,提高性能与速度使用googletranslator, AzureAPI做......
  • 世界第一!华为云图引擎服务GES大幅刷新世界纪录
    近日,国际关联数据基准委员会(LinkedDataBenchmarkCouncil,以下简称LDBC)公布了社交网络测试交互式负载(SNBINTERACTIVEWORKLOAD,以下简称为SNB)最新结果,华为云图引擎服务GES成功通过所有声明式查询语言基准测试。GES作为以声明式查询语言(如Cypher、SQL等)为接口的通用图数据库引......
  • 【ClickHouse 表引擎&SQL操作&副本&分片集群 02】
    一、表引擎表引擎决定了如何存储表的数据。类似mysql的引擎InnoDB,MyISAM数据的存储方式和位置,写到哪里以及从哪里读取数据一般的引擎都存储在本地的磁盘,clickhouse存储的位置在:/var/lib/clickhouse -->其中data存储数据,metadata存储建表语句支持那些查询以及如何支持并......
  • 引领行业发展,大北互集团携手纷享销客共建营销数字化发展新引擎
    大连北方互感器集团(以下简称“大北互集团”)始建于1997年,位于享誉“中国互感器之都”的大连市普兰店区,拥有员工1600多人,综合实力雄厚,是全国互感器标准化技术委员会委员单位、国家级高新技术企业,且为电工装备智慧物联平台接入标准起草单位,制订国家标准及行业标准17部,是国标和行标的......
  • 打通前后端流程,案例解读华为云开源低代码引擎解决方案
    本文分享自华为云社区《使用场景级前端解决方案及低代码引擎,助力开发者生产效能提升》,来源:《华为云DTSE》第五期开源专刊当前前端在场景级的前端能力/物料上,业界相关内容/产品较少,并且较分散,基本无基础组件搭配,体验参差,多数专业场景能力/物料仅商用授权;对于场景的构建,开发效率与......
  • 学霸带你游戏化 GameMaker 引擎世界你好
    学霸带你游戏化GameMaker引擎世界你好得分系统与玩家控制在现代游戏开发中,得分系统和玩家控制是构建互动游戏体验的核心元素。得分系统不仅用来衡量玩家的表现,也为游戏增添了挑战和激励。而玩家控制则包括了角色的移动、旋转等操作,这些控制方式直接影响到游戏的流畅......
  • GIS、向量、文字检索... 火山引擎 ByteHouse 集成全场景分析能力
    企业业务场景增多、规模扩大,对于底层数据架构来说,可能也会愈加复杂。 比如,某企业因自身业务发展,需要引入向量检索能力,但前期选型的技术架构并不能直接支持,只能重新引入向量数据库。这意味着,研发团队要维护多个组件,让底层架构非常复杂,不仅带来数据冗余,也给数据运维带来压力,造成......
  • springboot-网站开发-thymeleaf引擎报错找不到指定的页面模板文件
    springboot-网站开发-thymeleaf引擎报错找不到指定的页面模板文件!这种错误的情况,发生,一般都是因为,我们自己的html模板文件,存档位置并不是在默认的templates下面。而是我们自己新建的一个子目录里面。然后,我们在java代码里面,控制器方法体内,return,返回模板的时候,我们多写了一个......