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

闽侯县建设局网站常州百度关键词优化

闽侯县建设局网站,常州百度关键词优化,怎样做网站404,网站搭建代码为满足近来用户对某些场景下删除性能的更高要求#xff0c;我们在2.00.11版本的 DolphinDB Server 中特别支持了软删除的功能。本文作为该功能的使用教程#xff0c;将详细介绍软删除的实现原理与应用场景#xff0c;同时提供性能测试案例以供参考。 1. 概述 软删除#…为满足近来用户对某些场景下删除性能的更高要求我们在2.00.11版本的 DolphinDB Server 中特别支持了软删除的功能。本文作为该功能的使用教程将详细介绍软删除的实现原理与应用场景同时提供性能测试案例以供参考。 1. 概述 软删除Soft Delete是一种在数据库中处理数据删除的方法这种删除方式并不是直接从数据库中移除数据而是通过特定的标记方式在查询的时候将此记录过滤掉在后台合并数据文件时才真正删除数据。相对于硬删除Hard Delete即直接从数据库中永久删除数据软删除以追加方式进行数据删除可大幅度提升列式数据库删除的效率。 2. 原理介绍 相比于常见的硬删除软删除是一种新的设计方案。本节将先对硬删除和软删除的原理进行详细介绍然后对比两种删除方式的特点。 2.1 硬删除的删除和查询逻辑 删除逻辑 直接从文件中删除数据。 分区剪枝根据删除条件进行分区剪枝确定删除涉及的分区。查到内存删除 取出对应分区所有数据到内存后根据条件删除数据。写回删除后的分区数据到新目录 将删除后的数据重新写入数据库系统会使用一个新的 CHUNK 目录默认是 “物理表名_cid”来保存写入的数据旧的文件将被定时回收默认 30 min。 查询逻辑 从文件中读取查询结果。 分区剪枝根据查询条件进行分区剪枝确定查询涉及的分区。读到内存根据查询条件在分区的文件中读取查询结果。 2.2 软删除的删除和查询逻辑 删除逻辑 追加写入带删除标记的数据。 分区剪枝根据查询语句进行分区剪枝缩窄查询范围。读到内存获取待删除数据根据查询条件查询出需要删除的数据。追加写入待删除数据给需要删除的数据打上删除标记deletion flag并将排序列sort column和分区列partition column外字段值置为空值以 append 方式将数据追加写入 TSDB。 查询逻辑 读取查询结果过滤带删除标记的数据。 分区剪枝根据查询条件进行分区剪枝确定查询涉及的分区。读到内存根据查询条件在分区内读取查询结果包含删除前的数据和带删除标记的数据到内存中。过滤数据删除内存中带删除标记的数据。 2.3 软删除的特点 从上面的原理介绍可以看出软删除相比硬删除有如下特点 删除少量数据快删除大量数据慢软删除写入的是待删除数据硬删除写入的是未删除数据。如果删除的数据量少软删除需要写入的数据就比硬删除少性能更好反之则更差。查询性能不如硬删除查询时软删除相比硬删除除了读取未删除的数据还需要读取删除前的数据和带删除标记的数据最后还需要在内存中做一次过滤综合性能比硬删除差。 3. 使用介绍 采用硬删除或者软删除必须满足以下条件 database 创建库时指定 TSDB 引擎。createTable 或者 createPartitionedTable 函数创建表时指定 softDelete 为 true 且 keepDuplicatesLAST。使用 delete 删除且 SQL 语句中包含 where 条件。 3.1 软删除使用条件 步骤条件示例语句说明创建数据库engine 参数值为 TSDBdb database(dfs://softDelete,VALUE,[2023.01.01],,TSDB)创建一个 TSDB 引擎以值分区的数据库。创建数据表keepDuplicates 参数值为 LAST创建表时 softDelete 参数值为 true即开启软删除。t table(1:0,TimeSymbolPrice,[TIMESTAMP,STRING,DOUBLE])创建维度表createTable(dbHandledb,tablet, tableNamememTable,sortColumnsSymbolTime,keepDuplicatesLAST, softDeletetrue)创建分区表createPartitionedTable(dbHandledb,tablet, tableNameparTable,partitionColumnsTime,sortColumnsSymbolTime,keepDuplicatesLAST, softDeletetrue)DolphinDB-createTableDolphinDB-createPartitionedTabledelete 语句必须指定 where 过滤条件维度表删除数据delete from loadTable(dfs://softDelete, memTable) where Date 2024.01.02 and Price 50分区表删除数据delete from loadTable(dfs://softDelete, parTable) where Date 2024.01.02 and Price 50维度表查出符合 Price 50条件的数据将数据除sortColumns 列外的数据设置为空在数据上打上删除标记写回数据表。分区表先进行分区剪枝选择 2024.01.02 这个分区的数据查出符合 Price 50条件的数据将数据除sortColumns 列外的数据设置为空在数据上打上删除标记写回数据表。 4 性能测试 4.1 环境配置 测试共使用三台配置相同的服务器具体硬件配置如表所示。 处理器核数内存操作系统硬盘网络Intel(R) Xeon(R) Silver 4216 CPU 2.10GHz64512 GBCentOS Linux release 7.6HDD10000 Mb/s 基于 DolphinDB Server 2.00.11 版本部署了双副本高可用集群。 4.2 模拟数据 首先创建数据库和数据表并启用软删除功能。 //创建数据库 使用 TSDB 引擎 db1 database(,VALUE,[2023.01.01]) db2 database(,HASH,[SYMBOL, 25]) db database(dfs://softDelete.level2_tl,COMPO,[db1,db2],,TSDB) //创建数据表 colName ChannelNoApplSeqNumMDStreamIDSecurityIDSecurityIDSourcePriceOrderQtySideTradeTImeOrderTypeOrderIndexLocalTimeSeqNoMarketDataStatusBizIndex colType [INT,LONG,INT,SYMBOL,INT,DOUBLE,INT,SYMBOL,TIMESTAMP,SYMBOL,INT,TIME,LONG,SYMBOL,INT,LONG] tbSchema table(1:0, colName, colType) //softDelete设置为true启用软删除 db.createPartitionedTable(tabletbSchema,tableNameentrust,partitionColumnsTradeTImeSecurityID,sortColumnsMarketSecurityIDTradeTIme,keepDuplicatesLAST,softDeletetrue) 构造模拟数据并写入分布式表。 n 500000 Symbol 000021000155000418000673000757000759000851000856000909000961 TradeTime array(timestamp) for(i in 0:Symbol.size()){TradeTime.append!(2015.07.01 09:15:00.160..((2015.07.01 09:15:00.160n/10)-1)) } t table(take(int(),n) as ChannelNo,take(long(),n) as ApplSeqNum,take(int(),n) as MDStreamID,take(Symbol,n) as SecurityID,take(int(),n) as SecurityIDSource,rand(100.0,n) as Price,rand(20,n)*100 as OrderQty,rand(SB,n) as Side,TradeTime as TradeTIme,take([0,1,2],n) as OrderType,take(int(),n) as OrderIndex,take(time(),n) as LocalTime,take(long(),n) as SeqNo,take(sz,n) as Market,take(int(),n) as DataStatus,take(long(),n) as BizIndex ) loadTable(dfs://softDelete.level2_tl,entrust).append!(t) 具体测试代码请下载附录的 .txt 文件。 4.3 性能分析 数据删除百分比软删除/硬删除delete耗时比例软删除level file合并前/硬删除level file合并前select耗时比例软删除level file合并后/硬删除level file合并后select耗时比例100.2361.5021.219200.3181.8311.22300.4461.881.254400.5781.9471.309500.762.1631.243601.0932.5411.297701.2733.0281.22801.8563.381.172902.9214.3190.935 通过对比不同数据删除百分比下的删除时间可以得出结论删除的数据量越少软删除的性能越好。 这是因为硬删除在删除少量百分比的数据时需要写回剩余大量的原数据而软删除仅需要写少量百分比的待删除数据。以10%数据删除百分比为例此时软删除的性能是硬删除的七倍左右。随着数据删除的数量不断上升硬删除需要写回的数据量就不断减少软删除需要写回的数据量在不断增加所以在删除一个分区的大量数据时硬删除优于软删除的性能。 通过对比不触发 level file 合并和触发 level file 合并的查询时间可以得出不触发 level file 合并查询的性能会略微下降在触发 level file 合并后 查询的性能影响不大。因为硬删除会把数据全部重写成一个 level file而软删除之后最终会生成两个 level file会增加去重的消耗。但在触发 level file 合并之后两者性能基本相同。 5 小结 相较于硬删除虽然软删除支持的范围更小但软删除可以大幅度提升删除的性能。不过在具体使用中须注意用户需要定时触发 Level File 的合并来避免查询性能的损耗。 6 附录 6.1 常见问题 问题回答createPartitionedTable(dbHandle, table, tableName, partitionColumns, [compressMethods], [sortColumns], [keepDuplicatesALL], [sortKeyMappingFunction], [softDeletefalse]). The softDelete parameter is available only when engineType is specified as TSDB and keepDuplicates as LAST.在 softDelete 指定为 true 时keepDuplicates 需要指定为 LASTThe softDelete parameter is available only when engineType is specified as TSDB and keepDuplicates as LAST.软删除仅在 TSDB 引擎支持需要在建库时指定engine“TSDB” 6.2 相关脚本 性能测试的脚本软删除性能测试.txt
http://www.zqtcl.cn/news/466/

相关文章:

  • 聊城网站建设项目北京通信管理局网站备案处
  • 手机网站优化指南增值服务包括哪些内容
  • 桐乡住房和建设局网站怎么样建设网站网站
  • 怎么做网站网站深圳网站建设软件开发公司哪家好
  • 做网站流行的溧阳人才网 网站开发
  • 中企动力科技股份有限公司做网站字体设计在线生成免费
  • 微擎可以做企业网站吗杭州微网站开发公司
  • 网站建设制作模板网站用途及栏目说明
  • 昆明网站设计公司微网站建设公司首选公司
  • 网站素材 图标国内大宗商品交易平台
  • 做淘宝客网站赚钱吗专业手机网站建设价格
  • 亦庄网站设计网站推广网络营销方案
  • 中国建设银行网站维护营销是什么意思
  • 甘肃营销型网站建设网站漂浮代码
  • 营销单页网站制作企业所得税怎么算小规模纳税人
  • 大连里程科技做网站注册小公司要交税吗
  • 深圳网站建设公司收费黑龙江建设网监理证书
  • 您提供的产品已经提交过网站备案茶叶门户网站建立
  • 专业的集团网站设计网络外贸开发网站公司
  • 怎么自己做网站教程全国职业生涯规划大赛
  • 全媒体网站的建设网站建设评审意见
  • 百度网站推广价格查询为什么大公司开发网站
  • 蓝色科技企业网站模板免费下载各级院建设网站的通知
  • 网站3级营销是怎么做的运输房产网站建设
  • 网站建设支出公司网站怎样做维护
  • 网站根目录怎么找做网站时的电话图标
  • 垂直网站怎么做颜色搭配对网站重要性
  • 在阿里云上做网站步骤刚做外贸最好用哪个网站
  • 宁波企业建站系统wordpress滑验证
  • 长沙网站自己制作最常用的几个关键词