openGemini v1.2.0版本正式发布,IoT 场景性能大幅提升!

屏幕注释工具-GInk_v0.5.0 立即下载

在openGemini v1.2.0版本中,我们为您带来了一系列令人振奋的内核优化,将您的体验提升到新的高度,这包括

  • 针对IoT场景的性能优化,查询效率有极大的提升。
  • 针对数据存储的优化,进一步节约磁盘空间,降低数据存储成本。
  • 针对部分功能的优化,比如show tag keys, stream等,使得功能更加丰富。
  • 新增了一部分内核的监控指标,进一步清楚了解内核的运行状态、行为和性能,帮助分析、定位和优化数据库性能。

此外,我们还进行了一系列的读写流程上的改进和修复,以提供更稳定和可靠的体验。

内核优化

  1. IoT典型场景性能优化

    本次版本针对IoT场景的写入和典型查询场景进行了优化,通过TSBS工具的测试结果可以看出,openGemini全面超越InfluxDB,最高提升了50倍。相比其他时序数据库,openGemini也是具有领先优势。

    具体性能数据参考:

    性能测试 | openGemini

  2. schema数据压缩

    type Record struct {
    	*RecMeta
    	ColVals []ColVal
    	Schema  Schemas
    }
    
    type Schemas []Field
    
    type Field struct {
    	Type int
    	Name string
    }
    

    openGemini将行数据协议转化为Record结构进行存储,Schema保存每一列FIELD的数据类型和名称,并会随着数据一起保存在磁盘上,当表的FIELD数量很多,比如1000列或者更多时,加之时间线数量很大的情况下,这里的Schema数据会变得很大,在tssp文件中的占比可能超过80%。

    可以通过配置文件开启schema数据压缩(默认关闭),但需要注意的是,该功能会对查询性能有一定的影响,因为查询过程中要对schema进行数据解压

      [data]
      ## Compressing ChunkMeta in TSSP Files. 0: not compressed(default); 1: use snappy
      # chunk-meta-compress-mode = 0
    

    优化效果:500万时间线 1000+列模型下,开启压缩功能后(Snappy算法),写性能提升 2.5+倍,平均刷盘时延减少68%,level 0 文件大小减少 70%

    最佳实践:针对列比较多的情况,尽可能用短字符串给FIELD命名。再考虑开启schema数据压缩。

    该优化优先级高于 "tssp 临时文件磁盘占用优化",开启该优化后,临时文件的优化将自动失效

  3. 优化仅一行数据情况下的数据编码

    在一些业务中,时间线很多,但是每次写入时,同一时间线仅一条数据,这使得在 level 0 的文件中,一条时间线仅一条数据,本身没有办法进行压缩,还需要存储很多额外的信息,占用了大量的磁盘空间。 本次优化是专门针对上述场景,减少level 0文件大小,达到提升compaction、Merge和部分查询的性能的目的。

    优化效果:250万时间线,优化前文件大小 987MB, 优化后 733MB,存储空间减少 25%。

  4. 优化全空值或没有空值列的存储

    在openGemini中,数据的压缩存储是以segment为粒度(1000行),可能存在 segment为全空值(ColVal.Len == ColVal.NilCount)或没有空值(ColVal.NilCount == 0),此时可以不存储bitmap相关数据,减少磁盘占用。

    优化效果:3万时间线,2400万行数据,没有空值的情况下,优化后存储空间减少20%

  5. tssp 临时文件磁盘占用优化

    数据写入openGemini后,在数据刷盘过程中,文件元数据会先保存到一个临时文件,在所有数据刷盘完成后,将临时文件追加到数据文件中,然后删除该临时文件,当写入数据量非常大时,临时文件数据也会频繁刷盘,占一部分磁盘I/O,本次优化是对临时文件进行一个压缩处理,减少磁盘I/O。该优化对刷盘,compaction,merge 等操作有效。

    可通过修改配置项 data.temporary-index-compress-mode 来开启,该优化方法是用CPU开销(解压)换取磁盘I/O,在选择压缩算法时需要考虑实际情况。

  6. SHOW TAG KEYS支持条件过滤

    用法如下:

    > select * from cpu
    name: cpu
    time                cpu  host        mem
    ----                ---  ----        ---
    1710209706991211420 0.8  192.168.0.1 0.3
    1710209718880801483 0.65 192.168.0.2 0.42
    1710209735839331535 0.77 192.168.0.3 0.46
    
    > show tag keys from cpu where host="192.168.0.1"
    name: cpu
    tagKey
    ------
    host
    
  7. 流式聚合(stream)用法和性能优化

    在用法上,之前使用该功能时,必须是tags & time 一起分组,当前版本支持仅按time分组。例如

    # 之前版本用法
    > CREATE STREAM ... ON SELECT ... FROM ... GROUP BY time(1m),"cpu","host" delay 20s
    # 现在可以仅使用time分组
    > CREATE STREAM ... ON SELECT ... FROM ... GROUP BY time(1m) delay 20s

    在性能上,聚合效率较之前版本有数倍提升。

  8. 新增监控项

    IOReadMetaCounts、IOReadMetaSize、IOReadDataCounts、IOReadDataSize,分别表示从数据文件中读取元数据的次数和大小和读取数据的次数和大小。

    有了这些基本数据,通过简单的处理就可以知道在某段时间内查询的数据量大小,以此作为性能优化或根因分析的依据。比如在定位查询问题时,如果查询时延比较大,此时可以观察该指标,了解openGemini存储引擎从文件读取数据的情况,以此判断是否由于计算数据量太多导致,从而优化查询语句。

  9. 新增监控项

    IOFrontIndexReadOkCount,IOFrontIndexReadOkBytes,IOFrontIndexReadDuration ,在openGemini中,磁盘I/O包括业务数据读写I/O, 索引读写I/O,Compaction读写I/O,乱序合并读写I/O等,这里新增的3个监控项均为索引读写I/O的指标,分别是索引数据读取次数/字节数/时延。

    当性能瓶颈发生在磁盘I/O时,通过调取相应细分I/O数据,确定何种类型的I/O流量占比较大,可以进行针对性优化。

  10. 新增监控项

    以下为本次优化新增的关于ts-store上查询请求执行相关的监控项,用于洞察ts-store上的查询执行情况

    # ts-store处理的查询请求数
    storeQueryReq 
    # ts-store的查询时延
    storeQueryReqDurationNs  
    # 当前ts-store上正在执行的查询请求数
    storeQueryReqActive 
    # ts-store上反序列化查询请求的时延
    UnmarshalQueryTimeTotal  
    # ts-store上查询请求获取shard资源的时延。
    # 这里有流控,ts-store执行查询请求的并发数是一定的,如果查询并发比较大,就会出现排队情况,这里的时延就会比较大。
    GetShardResourceTimeTotal  
    # 以下两项分别是ts-store上TAG构建扫描索引计划的时延和扫描数据的时延
    IndexScanDagBuildTimeTotal
    IndexScanDagRunTimeTotal
    # ts-store上查询请求查找索引的时延
    IndexScanRunTimeTotal
    # ts-store上查询请求涉及的shard个数
    QueryShardNumTotal 
    # ts-store上查询请求扫描的时间线数量
    IndexScanSeriesNumTotal
    # 以下两项是查询请求读取数据的监控项
    ChunkReaderDagBuildTimeTotal
    ChunkReaderDagRunTimeTotal
  11. 调整配置项read-page-size,默认32KB,最大可配64KB,对提升查询性能有帮助,但会增大磁盘I/O带宽,二者需要平衡。

    [data]
    # read-page-size set pageSize of read from file of datablock, default is "32kb", valid setting is "1kb"/"4kb"/"8kb"/"16kb"/"32kb"/"64kb"/"variable"
    # read-page-size = "32kb"

Bug修复

  1. 修复了一些异常场景下节点Panic的问题
  2. 修复了批量删除表时,ts-store出现删除表失败的问题
  3. 修复了一些内核中锁的问题
  4. 修复了
  5. 一些内核处理空值的问题
  6. 修复了一些内存泄露的问题

安全

  1. 修复漏洞:CVE-2022-41723,通过升级golang.org/x/net的版本到v0.7.0
  2. 修复漏洞:CVE-2023-39325,通过升级golang.org/x/net的版本到v0.17.0
  3. 修复漏洞:CVE-2023-47248,通过升级pyarrow的版本到v14.0.1

结束

openGemini 是一款开源时序数据库,它的 v1.2.0版本已经正式发布,在这个版本中,内核得到优化,新增几项监控项,修复了若干Bug和漏洞,无论是性能还是使用体验都得到了有效提升。欢迎大家试用openGemini,提出您宝贵的优化意见。

如何参与社区贡献,参考:

  1. 快速开始 | openGemini

  2. 如何参与文档贡献 | openGemini


openGemini官网:http://www.openGemini.org

Star for me😊:openGemini · GitHub

openGemini公众号:

手把手教你搭建基于Springboot+Vue的酒店管理系统 友友们,又是好久没更新了,马上元旦了,要迈入2025蛇年了,提前祝大家蛇年快乐,学有所成,本文博主将带领大家使用Springboot和Vue搭建一个酒店管理系统,受限于本文篇幅内容,本文罗列仅有部分简单示例内容,主要包括前后端示例源码。通过本文,你将大致掌握如何快速搭建一个现代化的Web应用。如果您想学习完整开发方案,包括项目源码+数据库文件+全套环境资源+代码部署视频教程+开发文档】获取学习资源,支持远程安装调试:一、项目背景随着互联网技术的不断发展,酒店行业对信息化的需求越来越高。 阅读详情

相关推荐

保姆级教程:2026版Windows电脑换新,微信QQ聊天记录无损搬家(附路径修改避坑指南)

本文提供2026版Windows电脑换新时微信QQ聊天记录无损迁移的保姆级教程,涵盖最新版微信/QQ的存储路径修改和避坑指南。通过详细步骤和实战技巧,确保数据迁移过程中不丢失任何珍贵对话记录和文件,特别适合需要保留完整聊天记录的用户。

weixin_42629815的博客 2479

openGemini内核源码正式对外开源

openGemini是一个开源的分布式时序数据库系统,可广泛应用于物联网、车联网、运维监控、工业互联网等业务场景,具备卓越的读写性能和高效的数据分析能力。

华为云官方博客 2592

别再折腾虚拟机了!手把手教你用WSL2在Windows 11上安装Kali Linux(含汉化与图形界面)

本文详细介绍了如何在Windows 11上通过WSL2安装和配置Kali Linux,包括汉化与图形界面设置。通过WSL2,用户可以享受接近原生性能的Linux体验,同时保持与Windows系统的无缝集成,特别适合网络安全爱好者和开发者。文章还提供了常见问题解决和性能优化建议,帮助用户高效使用Kali工具集。

weixin_42525369的博客 322

探索未来互联网:OpenGemini - 开源的去中心化网络协议

在数字化时代,我们越来越依赖互联网,然而中心化的架构带来了隐私和安全的挑战。OpenGemini是一个创新的开源项目,致力于构建一个去中心化、高效且自由的信息交换网络。让我们深入了解OpenGemini的技术原理、应用场景及独特优势。 ## 项目简介 OpenGemini是基于Gemini协议的一个实现,旨在创建一个无需中间人服务器的互联网替代方案。该项目的目标是提供一种简单、安全、快速的通信

gitblog_00003的博客 539

遥感SCI期刊模板下载教程———IEEE TGRS、GRSL、JSTARS

IEEE下的期刊模板下载,以IEEE TGRS 为例。

海淀小天的blog 2万+

从零构建AI智能体:基于opencode框架的Agent开发全流程指南

AI智能体(AI Agent)作为人工智能领域的重要发展方向,正从概念走向工程实践。其核心原理在于赋予AI自主规划、执行和迭代的能力,使其不再局限于简单的问答,而是能够理解复杂目标、分解任务、调用工具并完成闭环。这一技术价值在于将AI从“对话伙伴”升级为“执行伙伴”,极大地拓展了自动化边界,在智能客服、数据分析、自动化运维等场景展现出巨大潜力。本文聚焦于如何利用opencode这一热门开发框架,快速构建具备实际能力的智能体。通过拆解其核心组件如技能库、规划器与运行时,并结合具体实践案例,系统阐述了从环境搭建

weixin_29055699的博客 434

一文带你全面了解openGemini

处理海量遥测数据的利器—openGemini时序数据库。

华为云官方博客 1417

告别Modern Standby!Win10/11强制S3睡眠的终极指南(含BIOS设置避坑)

本文是针对Windows 10/11用户因Modern Standby(S0低电量待机)导致睡眠耗电、发热问题的终极解决方案。文章详细对比了Modern Standby与传统S3睡眠(Suspend to RAM)的本质区别,并提供了从系统诊断、注册表修改、BIOS/UEFI设置避坑到驱动优化的完整步骤,旨在帮助用户强制启用稳定、省电的S3睡眠模式,彻底告别睡眠噩梦。

n7o8p的博客 797

openGemini 开源项目教程

openGemini 是一个云原生分布式时间序列数据库,专注于存储和分析大规模的遥测数据。以下是项目的主要目录结构及其介绍: - **common**: 包含一些通用文件和工具。 - **Open_Source_Software_Notice**: 开源软件声明文件。 - **README**: 项目的基本介绍和使用说明。 - **README_CN**: 项目的中文介绍和使用说明。 - **R

gitblog_00602的博客 503

按角色定制同一张 Fiori 画面:一篇讲透 SAP Fiori UI Adaptation for Roles 的版本、优先级、视图迁移与安全边界

摘要:SAP Fiori应用中常见的问题并非功能缺失,而是同一应用被不同岗位用于不同工作流时导致界面难以满足各方需求。SAP的"角色适配UI"机制允许在不修改后端逻辑或创建新应用的情况下,为不同角色定制界面呈现。该机制包含多套界面适配方案,按用户角色自动匹配显示,同时保持统一的应用入口。实施时需注意:适配方案与原始应用共享版本管理;需设置"默认界面层";多角色用户通过优先级机制确定显示方案;界面隐藏不等于权限控制,数据安全仍需后端保障。该方案能有效解决跨岗位的界面适配

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 147

药物相关 PK(药代动力) 、PD(药效)指标知识

PK代表药物的药代动力学,指的是药物在体内的吸收、分布、代谢和排泄等过程,包括药物的药代动力学参数如Cmax(最大血药浓度)、Tmax(最大血药浓度出现的时间)、t1/2(半衰期)、AUC(药物曲线下面积)等。PD代表药物的药效学,指的是药物与生物体相互作用所产生的药理效应,包括药物的药效学参数如EC50(半数最大有效浓度)、ED50(半数最大效应剂量)、Emax(最大效应)等。PD(Pharmacodynamics)则研究药物的药效学特性,如药物的作用机制、效力、最大疗效、最小毒性等。

weixin_42357472的博客 2万+

探索openGemini:云原生时代的时序数据库新星

在数字化转型的浪潮中,时序数据的管理与分析成为了众多行业的核心需求。今天,我们要介绍的是一款专为云原生环境设计的分布式时序数据库——openGemini。它以其卓越的性能、灵活的部署和高度的扩展性,正逐渐成为物联网和运维监控领域的明星产品。 ## 项目介绍 openGemini是一款云原生分布式时序数据库,特别针对物联网和运维监控场景设计。它能够高效处理海量遥测数据的存储与分析,广泛应用于物流...

gitblog_00345的博客 616

RT-DETR改进策略【卷积层】| ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点

本文记录的是利用模块优化的目标检测网络模型。的目的是在不出现过参数化的情况下有效地增加卷积的感受野,从而解决了在感受野扩展中的参数膨胀问题。本文将其加入到深度可分离卷积中,有效降低模型参数量和计算量,并二次创新,使模块更好地捕捉低频特征,增强网络性能。Wavelet Convolutions for Large Receptive Fields小波卷积及其改进的实现代码如下: 四、创新模块 4.1 改进点1⭐ 模块改进方法:加入(第五节讲解添加步骤)。添加后如下:模块改进方法:基于的(第五节讲解添加步骤)

Limiiiing的博客 1503

openGemini v0.2.0版本正式发布:5大特性全面增强

openGemini是华为云面向物联网和运维监控场景开源的一款云原生分布式时序数据库,兼容InfluxDB API,具有高性能、高并发、高扩展等特点。

华为云官方博客 1357

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

3招解决时序数据高基数难题,性能多维度提升!

针对高基数难题,openGemini目前应对措施为:列式存储+排序+聚簇索引。

华为云官方博客 920

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

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

DTSE Tech Talk | 3招解决时序数据高基数难题,性能多维度提升!

华为云开源DTSE技术布道师&数据库创新Lab技术专家黄飞腾,与开发者朋友们分享了时序数据库的特点和遥测数据应用场景下的优势,通过解析openGemini的框架引出了数据库行业长期存在的一大痛点—由于高基数导致的性能大幅下降,并向大家介绍了openGemini时序数据库针对这一难题而开发的列存引擎是如何有效改善高基数带来的不利影响。

hwcloud_OS的博客 225

深度学习工具包 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")

华为云开源时序数据库openGemini:使用列存引擎解决时序高基数问题

openGemini 通过引入新的数据排序与索引方式,开发了全新列存引擎,以解决海量时间线场景对于现有时序数据管理方案带来的问题。

华为云官方博客 1845

华为云发起,openGemini正式成为CNCF官方项目!

​ 北京时间2024年7月9日,云原生计算基金会(CNCF)正式接纳云原生高性能时序数据库项目 openGemini。openGemini的加入,极大地丰富了云原生数据库技术的探索、创新和发展。

hwcloud_OS的博客 943

openGemini 1.0版本,带来哪些新特性和性能提升?

openGeminiv1.0版本新增了多个关键特性,并在数据压缩算法、内存管理、查询引擎等方面做了大量优化工作,整体性能取得进一步提升

hwcloud_OS的博客 382

一文带你全面了解 openGemini

openGemini 社区联合华为云 DTT(技术公开直播课栏目)共同举办了一期主题为的直播活动,华为云开源 DTSE 技术布道师 & openGemini 社区发起人向宇,与广大开发者开展了一次线上的直播交流,就 openGemini 的特点、应用场景、开源目标和价值、差异化竞争力、核心能力、技术生态、运维管理、社区路标等 8 个方面进行了全面细致的介绍。在临近结尾时,向宇表示 openGemini 是一个开放、包容、合作的开源社区,欢迎更多开发者和伙伴加入,共同推动技术创新。

Jdjdjjdjdjdje的博客 359

千云物流 -openGemini生产环境使用

由于k8s部署后meta在重启集群后会丢失登录信息,所以最后还是切换到了使用物理机部署,目前部署的是3台机器,配置免密登录机器部署情况机器部署文件的路径在 /var/lib/openGemini/deploy,数据文件目录/var/openGemini/data,目前每个机子都分配了5T存储部署路径配置路径openGemini.conf的配置数据文件配置启动脚本– meta对应的启动脚本– store对应的启动脚本– sql对应的启动脚本。

Hello Word 833

openGemini:顺势而动,蓄势而发

6月11日,2023开放原子全球开源峰会在北京亦创国际会展中心举行,在开源数据库分论坛上,华为云数据库创新实验室主任张文亮受邀做主题技术分享《openGemini:开源分布式时序数据库技术探索与实践》。

hwcloud_OS的博客 262

openGemini 项目常见问题解决方案

openGemini 是一个云原生分布式时间序列数据库,专注于大规模遥测数据的存储和分析。它是 Cloud Native Computing Foundation (CNCF) 的沙箱项目,具有高性能、高并发和高可扩展性的特点。openGemini 使用 Go 语言开发,也包含了一些 Python 脚本用于辅助开发和测试。 ## 2. 新手常见问题与解决步骤 ### 问题一:如何安装和运行 o

gitblog_00005的博客 549

三步掌握轻量级屏幕标注工具:gInk开源免费版全攻略

### 1.1 软件概述:让屏幕标注变得简单高效 在数字化演示和远程协作日益频繁的今天,一款好用的屏幕标注工具能极大提升沟通效率。gInk作为一款开源免费的轻量级屏幕标注软件,以其简洁的界面设计和实用功能,成为教育、办公和技术演示场景的理想选择。无需复杂配置,启动即可在屏幕上自由绘制标注,让重点内容一目了然。 ### 1.2 核心特性:轻量设计与便捷体验 gInk坚持"极简而不简单"的开发理念,

gitblog_00702的博客 440

gInk:Windows上最简单高效的免费屏幕标注工具完整指南

你是否曾在演示时想要快速圈出重点数据?是否在在线会议中需要即时标注屏幕内容?gInk正是你寻找的Windows屏幕标注工具解决方案。这款轻量级免费软件让你的屏幕变成数字白板,实时标注变得像在白纸上写字一样简单自然。gInk屏幕画笔软件专为教学演示和日常标注设计,提供五种颜色画笔、智能橡皮擦和多显示器支持,让你的沟通表达更加直观高效。 ## 🎯 为什么你需要gInk:解决屏幕标注的三大痛点 在

gitblog_00384的博客 405
上一篇: Sermant在异地多活场景下的实践
下一篇: Sermant标签路由能力在同城双活场景的应用
华为云开源
博客等级 码龄4年 281粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值