StarRocks 各类索引以及存储位置详解

大数据StarRocks(三) StarRocks数据表设计_starrocks单表存储数据多大 StarRocks的表和关系型数据库类似, 由行和列构成. 每行数据对应用户一条记录, 每列数据有相同数据类型. 所有数据行的列数相同, 可以动态增删列. StarRocks中, 一张表的列可以分为维度列(也成为key列)和指标列(value列), 维度列用于分组和排序, 指标列可通过聚合函数SUM, COUNT, MIN, MAX, REPLACE, HLL_UNION, BITMAP_UNION等累加起来. 因此, StarRocks的表也可以认为是多维的key到多维指标的映射. 阅读详情

StarRocks 支持多种索引机制,不同索引根据其功能和设计目标,存储在不同的层级和位置。以下是 主键索引、前缀索引、Ordinal 索引、ZoneMap 索引、Bloom Filter、Bitmap 索引 的详细存储位置对比。


结论

索引类型存储位置存储层级是否独立文件是否可持久化
主键索引 (Primary Key Index)persistent_index/ 目录下的 .pkindex 文件Tablet 级(全局)✅ 独立✅ 是(推荐)
前缀索引 (Prefix Index)segment_xxx.idx 文件Segment 级✅ 附属文件✅ 是
Ordinal 索引内嵌于 .idx 文件或段元数据中Segment 级❌ 否(内嵌)✅ 是
ZoneMap 索引segment_xxx.idx 文件(与前缀索引共存)Segment 级✅ 附属文件✅ 是
Bloom Filter 索引col_<column>.bloom 文件Segment 级✅ 附属文件✅ 是
Bitmap 索引col_<column>.bitmap 文件Segment 级✅ 附属文件✅ 是

📌 所有索引在查询时均可加载到 BE 内存缓存 中以加速访问。


详细存储结构图

/starrocks/be/storage/data/0/<tablet_id>/
│
├── persistent_index/ ← 主键索引(独立全局)
│ └── primary_key.pkindex → RocksDB 格式,存储主键 → (RowSet, Segment, row_id) 映射
│
├── rowset_12345/ ← RowSet 1
│ ├── segment_001.dat → 数据文件
│ ├── segment_001.idx → 前缀索引 + ZoneMap + Ordinal 索引 ✅
│ ├── col_user_id.bloom → Bloom Filter ✅
│ └── col_status.bitmap → Bitmap 索引 ✅
│
├── rowset_67890/ ← RowSet 2
│ ├── segment_002.dat
│ ├── segment_002.idx → 前缀索引 + ZoneMap + Ordinal 索引 ✅
│ ├── col_user_id.bloom → Bloom Filter ✅
│ └── col_gender.bitmap → Bitmap 索引 ✅
│


🔍 各类索引存储详解

1. 主键索引 (Primary Key Index)

  • 存储位置:
    • ✅ 独立目录:/starrocks/be/storage/data/0/<tablet_id>/persistent_index/
    • ✅ 文件名:primary_key.pkindex(RocksDB SSTables)
  • 存储层级:Tablet 级,覆盖所有 RowSet 和 Segment。
  • 是否独立:✅ 是,不依赖任何 RowSet 或 Segment。
  • 持久化:
    • 必须启用:"enable_persistent_index" = "true"
    • 重启后无需重建,保障高可用。
  • 内容:主键值 → (RowSet ID, Segment ID, 行号) 的映射。

💡 作用:支持 UPSERT、DELETE,实现行级更新。


2. 前缀索引 (Prefix Index / ZoneMap)

  • 存储位置:
    • ✅ 每个 Segment 一个文件:segment_xxx.idx
    • 与 .dat 文件同目录。
  • 存储层级:Segment 级
  • 是否独立:❌ 否,是 Segment 的附属索引文件。
  • 持久化:✅ 是,随 Segment 持久化。
  • 内容:每 1024 行的 min/max 值,用于数据块剪枝。

💡 作用:加速 WHERE col > 100 类范围查询,减少扫描量。
在实现上,可以作用于一个 Segment,也可以是一个列的一个 Data Page,相应的 ZoneMap 索引有两种:一种是存每个 Segment 的统计信息,另一种是存每个 Data Page 的统计信息


3. Bloom Filter 索引

  • 存储位置:
    • ✅ 每个启用了 BF 的列一个文件:col_<column_name>.bloom
    • 与 Segment 文件同目录。
  • 存储层级:Segment 级
  • 是否独立:❌ 否,是列的附属索引。
  • 持久化:✅ 是。
  • 内容:列中所有值的哈希指纹(位数组),用于快速判断“某值是否存在”。

💡 作用:加速 WHERE user_id = '123' 类等值查询,避免无效 I/O。


4. Bitmap 索引

  • 存储位置:
    • ✅ 每个启用了 Bitmap 的列一个文件:col_<column_name>.bitmap
    • 与 Segment 文件同目录。
  • 存储层级:Segment 级
  • 是否独立:❌ 否。
  • 持久化:✅ 是。
  • 内容:低基数列(如 status, gender)的位图映射,支持 IN、= 查询的位运算。

💡 作用:高效处理 WHERE status IN ('PENDING', 'DONE') 类查询。


🔄 查询时的内存加载情况

索引类型内存加载行为
主键索引常驻内存或缓存热数据
前缀索引查询时加载到 Index Cache,常驻内存
Bloom Filter查询时加载,高频列常驻内存
Bitmap 索引查询时加载

⚠️ 主键索引内存占用较大,需根据主键列大小和行数规划 BE 内存。


如何配置和查看?

1. 建表时启用索引

CREATE TABLE user_table (
    user_id BIGINT 
    status VARCHAR(20),
    gender VARCHAR(10),
    visit_time DATETIME,
    ...
) 
PRIMARY KEY (user_id)
DISTRIBUTED BY HASH(user_id)
PROPERTIES (
  "enable_persistent_index" = "true",              -- 主键索引持久化
  "bloom_filter_columns" = "user_id",              -- Bloom Filter
  "bitmap_columns" = "status,gender"               -- Bitmap 索引
);
StarRocks最佳实践经验 阅读详情

相关推荐

大数据StarRocks(三) StarRocks数据表设计

StarRocks的表和关系型数据库类似, 由行和列构成. 每行数据对应用户一条记录, 每列数据有相同数据类型. 所有数据行的列数相同, 可以动态增删列. StarRocks中, 一张表的列可以分为维度列(也成为key列)和指标列(value列), 维度列用于分组和排序, 指标列可通过聚合函数SUM, COUNT, MIN, MAX, REPLACE, HLL_UNION, BITMAP_UNION等累加起来. 因此, StarRocks的表也可以认为是多维的key到多维指标的映射.

运维仙人 3164

StarRocks 中的数据模型和索引使用

数据冷热特征,比如最近几天的数据才需要修改,老的冷数据很少需要修改,比如订单数据,老的订单完成后就不在更新,并且分区是按天进行分区的,那么在导入数据时历史分区的数据的主键就不会被加载,也就不会占用内存了,内存中仅会加载近几天的索引。字节,其内容为数据块中第一行数据的排序列组成的前缀,在查找前缀索引表时可以帮助确定该行数据所在逻辑数据块的起始行号。需要注意的是:由于存储引擎会为主键建立索引,导入数据时会把索引加载到内存中,所以主键模型对内存的要求更高,所以不适合主键模型的场景还是比较多的。

小毕超博客 6843

StarRocks内部实时更新技术的实现方案

主键索引对内存要求比较高,比较适用两个场景,一个是数据按时间分区,数据按时间有冷热特征,比较老的数据基本上不会被更新,被更新的数据基本是最近几天的数据。很多索引要么是用 LSM 的方式做,要么用 B tree 的方式做,都是有序索引,StarRocks 中没有有序的需求,所以使用 hashmap 的方式。当获取CDC数据后,新的数据和原来的记录进行full join,检查新的数据中每条记录跟原数据中的记录是否有冲突(检查Key 值相同的记录)。对有冲突的文件,重新写一份新的、包含了更新后数据的。

MDZ_1122333322的博客 2920

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

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

流木的博客 5285

【StarRocks】-- 索引选择

StarRocks索引设计指南:Bitmap索引适合中等基数(1万-10万)列的等值/范围查询,不支持浮点、布尔及高精度类型,低基数列可自动优化;BloomFilter索引适合高基数(10万+)且低重复列的IN/等值查询,不支持小整数和浮点类型。明细/主键模型支持全列索引,聚合/更新模型仅限Key列。设计时应结合查询场景,优先将高频查询列和高效类型(如整型、DATE)放在前面以利用前缀索引优势。

欢迎来到我的博客,一起探索代码里的世界! 267

OpenCV图像拼接实战:用SIFT+透视变换打造无缝全景图(附完整代码)

本文详细介绍了使用OpenCV和SIFT算法实现图像拼接的全过程,包括特征匹配、透视变换和高级融合技术。通过实战代码演示,帮助开发者掌握无缝全景图生成的核心技术,适用于旅行摄影、无人机航拍等多种场景。

eee77的博客 997

Flink-StarRocks详解:第二部分(第52天)

本文为Flink-StarRocks详解后续章节:主要详解StarRocks表设计,聚合,更新,主键三大数据模型。由于篇幅过长,后续接着下面进行详解: StarRocks分区分桶 StarRocks查询数据湖 实现即席查询案例。

syhiiu的博客 6620

STM32F103C8T6 Bootloader开发实战:串口IAP固件升级与Keil工程配置详解

本文详细介绍了STM32F103C8T6 Bootloader开发实战,重点讲解串口IAP固件升级的实现方法与Keil uVision5工程配置。通过Flash分区管理、USART1通信协议设计及应用程序跳转机制等核心技术,帮助开发者掌握嵌入式系统固件升级方案,提升设备维护效率。

weixin_29165725的博客 436

StarRocks索引机制:多种索引类型与应用场景

在大规模数据分析场景中,查询性能往往是决定系统成败的关键因素。StarRocks作为一款高性能的分布式分析型数据库,提供了丰富多样的索引机制来优化查询性能。本文将深入探讨StarRocks的各种索引类型、工作原理、适用场景以及最佳实践,帮助您在实际业务中充分发挥索引的威力。 ## StarRocks索引体系概览 StarRocks的索引体系可以分为两大类:自动创建的内置索引和用户手动创建的索引...

gitblog_01047的博客 1313

ESP32-C3芯片通过蓝牙控制开锁功能

定义BLE服务和特征,用于接收开锁命令。0x00FF// 服务UUID0xFF01// 特征UUID4// 句柄数量// 特征值// 特征属性// 处理GATT服务器事件// 处理事件(详细代码见下文)// 注册GATT回调if (ret) {return;// 创建GATT服务器。

m0_46145044的博客 920

手把手教学|用飞书+扣子工作流实现自动化批量图片生成,效率提升99%!体验完整操作流程

在先前的文章中,我们已经深入探讨了扣子智能体的多种应用场景,以及如何创建和使用工作流进行高效管理。本文将引领大家通过一个具体案例,将扣子的工作流功能嵌入飞书应用中,实现操作的自动化与高效化。

weixin_66485800的博客 6028

Starrocks的Bitmap索引和Bloom filter索引以及全局字典

写这个的主要作用是梳理一下Starrocks的索引效率以及使用场景。

monkeyboy_tech的博客 1326

使用SAM进行遥感图像语义分割

SAM(Segment Anything Model)的成功表明了以数据为中心的机器学习的重要性。然而,由于遥感(RS)图像注释的困难和高成本,大量有价值的RS数据仍然没有被标记,特别是在像素级。在这项研究中,我们利用SAM和现有的RS物体检测数据集,开发了一个高效的管道来生成大规模的RS分割数据集,称为SAMRS。SAMRS在规模上超过了现有的高分辨率RS分割数据集几个数量级,并提供了物体类别、位置和实例信息,可用于语义分割、实例分割和物体检测,无论是单独还是组合。

lalula的博客 7451

StarRocks的内部存储 segement 杂谈

StarRocks的Segment采用列式存储与多级索引设计:列数据独立存储为多个Page,支持智能编码和LZ4压缩。多级索引包括Ordinal(行号定位)、ZoneMap(范围过滤)、Bitmap(等值)和BloomFilter(高基数过滤)。通过排序键快速定位数据:首先利用ZoneMap找到对应Segment,再通过前缀索引和Ordinal索引定位Page,最终计算行号偏移获取数据。Segment文件包含数据页、列索引、短键索引和元数据Footer。此外,删除向量通过Ordinal索引关联行号,实现高效

monkeyboy_tech的博客 446

【规则引擎连载3】 WebSphere ILOG JRules 开发——新建一个规则项目

规则项目依赖于bom,bom来自于一个Java项目,所以在建规则项目之前,需要先建立一个Java项目,也就是建模。 说明:原则上是一个规则项目,一个bom。如果规则项目很多,并且每个规则项目的bom都是一样的,那么可以将bom提取出来,单独作为一个项目,这样减少不必要的重复操作,减少维护成本,降低出错几率。这里逐步讲解两种方法来创建规则项目,推荐第二种。 本文主要建立两种规则项目与bom之间的关系,编写相关的规则内容,如操作规则、规则流、决策表等,在后续文章中详细讲解 。

manman的分享 2327

别再为电路自激发愁了:手把手教你用吸波材料搞定微波腔体谐振(附HFSS仿真设置)

本文详细解析了微波腔体谐振问题的工程解决方案,重点介绍了吸波材料的选型、安装工艺及HFSS仿真设置。通过实际案例和计算工具,帮助射频工程师有效抑制腔体自激,提升系统稳定性。特别适用于35GHz毫米波雷达等高频电路设计场景。

weixin_42662293的博客 383

大数据StarRocks(三) StarRocks数据表设计_starrocks单表存储数据多大(1)

StarRocks的表和关系型数据库类似, 由行和列构成. 每行数据对应用户一条记录, 每列数据有相同数据类型. 所有数据行的列数相同, 可以动态增删列. StarRocks中, 一张表的列可以分为维度列(也成为key列)和指标列(value列), 维度列用于分组和排序, 指标列可通过聚合函数SUM, COUNT, MIN, MAX, REPLACE, HLL_UNION, BITMAP_UNION等累加起来. 因此, StarRocks的表也可以认为是多维的key到多维指标的映射.

2401_84170522的博客 1394

Claude Code 处理长任务 + Cursor 专注交互:双栈协作的 3 种分工场景与响应提速 35% 实测

揭示 Claude Code 与 Cursor 在 AI 编程中的本质分工:Claude Code 作为离线式架构师处理跨文件、带约束的长链路重构(如单体拆微服务),Cursor 作为现场交互工程师专注秒级局部编辑;提出按任务切片动态切换的三种工程化协作场景,并给出结构化上下文构建、约束型 Prom

weixin_28728443的博客 122

StarRocks索引系统终极指南:5种索引类型如何让查询速度提升10倍?

在大数据时代,企业面临的最大挑战不是数据存储,而是如何在海量数据中快速找到需要的信息。想象一下,在千亿条记录中查询特定用户的交易历史,传统数据库可能需要数分钟甚至数小时,而StarRocks通过其精密的索引系统,能够在毫秒级完成响应。本文将带你深入探索StarRocks的5大索引机制,揭秘其如何实现查询性能的指数级提升。 ## 索引系统架构全景图 StarRocks的索引系统采用分层设计理念,

gitblog_00452的博客 483

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

StarRocks 建表配置小解

当有查询需要扫描已删除的数据时,StarRocks 会检查该数据是否在有效期内。在StarRocks中,为了数据的高可用性,每个数据分片(tablet)可以有多个副本。如果enable_async_write_back设置为"false",则表示关闭了异步写回功能,所有的写操作都将同步执行。在StarRocks中,缓存可以显著提高查询性能,特别是对于频繁访问的数据。如果datacache.enable设置为"true",则StarRocks会尝试将热点数据缓存到内存中,以加速数据访问。

weixin2006的博客 978

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

hbase mongodb hive starrocks比较

本文是在学习大数据的几个数据存储系统相关的组件所记录下来的,主要是不同组件的基础概念初步了解与对比。

qq_41358574的博客 2354

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【后台技术】StarRocks存储架构解析与高效查询优化实战

本文深入解析了StarRocks的列式存储架构、分区分桶设计及多层索引机制,并提供了SQL性能优化实战指南。通过理解数据分布原理与索引加速逻辑,结合聚合改写与Join策略优化,可显著提升大数据分析查询效率。文章还介绍了使用EXPLAIN和PROFILE工具进行性能调优的完整方法。

n2o3p4的博客 412

告别查询延迟:StarRocks索引机制全方位解析与实战指南

在数据爆炸的时代,企业每天面临着海量数据的实时分析需求。传统数据库往往在百亿级数据查询时陷入"分钟级等待"的困境,而StarRocks通过其创新的索引机制,将这一过程压缩至毫秒级响应。本文将深入剖析StarRocks的多种索引类型及其适用场景,帮助你构建高性能的数据查询系统。 ## 索引机制概览:为什么StarRocks如此之快? StarRocks作为分布式数据分析引擎,其索引设计充分考虑了...

gitblog_01073的博客 607

如何快速掌握StarRocks:索引机制深度解析与性能优化实战指南

在大数据时代,企业面临着海量数据实时查询的严峻挑战。传统数据库在百亿级数据量下往往需要分钟级响应,而StarRocks凭借其独特的索引机制,能够实现毫秒级的查询性能。本文将深入剖析StarRocks索引的核心原理、实现机制和优化策略,帮助你构建高性能的数据分析系统。 ## StarRocks索引架构全景解析 StarRocks的索引机制是其高性能查询的核心支撑。整个系统采用MPP(大规模并行处

gitblog_00953的博客 372
上一篇: 向量化和列式存储
下一篇: Java 序列化和Scala的闭包的区别和注意点
鸿乃江边鸟
博客等级 码龄6年 3746粉丝 235原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值