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

保定网站制作案例中国机械加工最多的地方

保定网站制作案例,中国机械加工最多的地方,烟台网站建设多少钱,建站之星怎么用一、概述 在StarRocks中#xff0c;insert的语法和mysql等数据库的语法类似#xff0c;并且每次insert into操作都是一次完整的导入事务。 主要的 insertInto 命令包含以下两种#xff1a; insert into tbl select ...insert into tbl (col1, col2, ...) values (1, 2, ...… 一、概述 在StarRocks中insert的语法和mysql等数据库的语法类似并且每次insert into操作都是一次完整的导入事务。 主要的 insertInto 命令包含以下两种 insert into tbl select ...insert into tbl (col1, col2, ...) values (1, 2, ...), (1,3, ...); 其中第二种命令仅用于demo不要使用在测试或生产环境中。在StarRocks中例如使用JDBC或者insertInto导入时插入1000条左右时很快有类似报错close index channel failed主要原因是导入太频繁了需要降频率攒批导入。 二、高频insert 报错的原因 StarRocks中的数据组织图如下 StarRocks中的分区分桶与tablet之间的关系为 table -- partition -- tablet(物理描述tablet数据分片是数据划分的最小逻辑单元) 分区是逻辑上的概念只记录在表的元数据中每个分区的数据会按照分桶键进行hash分桶表中的数据经过分区分桶后就会形成一个个的tablet且尽量均匀分布在集群的各个BE中。             tablet是StarRocks中数据均衡的最小单位默认的三副本是指同一个 tablet会在集群中保留三份每个tablet之间的数据没有交集在物理上独立存储。集群的副本修复或磁盘均衡均是以tablet为单位移动或者克隆的。且每次的数据导入、更新或者删除本质上也是对一个个tablet中的数据进行操作。 StarRocks中的分区分桶见 第2.4章 StarRocks表设计——分区分桶与副本数-CSDN博客文章浏览阅读504次点赞21次收藏9次。2.4 StarRocks表设计——分区分桶与副本数https://blog.csdn.net/SHWAITME/article/details/136140126?spm1001.2014.3001.5501 一个tablet中包含若干连续的rowset(rowset是逻辑概念)rowset代表tablet中一次数据变更的数据集合数据变更包括了数据新增更新或删除等它是按版本信息进行记录的每次变更就会生成一个新版本的rowset。一个rowset底层可能会包含多个segment执行数据导入时每成功写入一个segment就会增加一个文件块对应。 Segment的概念比较底层这里不展开可以借鉴Doris底层存储结构 https://blog.csdn.net/SHWAITME/article/details/136155008?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136155008%22%2C%22source%22%3A%22SHWAITME%22%7D文章浏览阅读340次点赞7次收藏6次。Doris存储层设计介绍1——存储结构设计解析索引底层结构https://blog.csdn.net/SHWAITME/article/details/136155008?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136155008%22%2C%22source%22%3A%22SHWAITME%22%7D 对上文提到的数据导入报错close index channel failed进一步解析。在StarRocks中每次insert into本质都是一次完整的导入事务即insert into实际上会在tablet内部生成一个个连续版本号的rowset对于新增的rowset起始版本和终止版本是一样的表示为[ 6-6]、[ 7-7]....[999-999]等。多个 rowset经过compaction会形成一个大的rowset。合并后的起始版本和终止版本是多个版本的并集如[ 6-6]、[ 7-7]、[8-8]合并后变成 [6-8]。一旦表的某个tablet中同时存在rowset个数达到1000就会到达阈值即触发上述报错。 三、降低导入频率 单个tablet中的rowset版本个数过多会什么影响主要影响两个方面一个是内存的占用当rowset的版本过多时be节点的table_meta部分主要是其中的rowset元数据部分占用的内存可能非常多。同时compaction合并消耗内存也会比较大容易引起oom影响集群稳定性二是查询会变慢因为查询的过程中是需要对tablet中的数据进行解压的当rowset版本很多解压会变慢导致查询scan的耗时增加。综上考虑StarRocks设置了单表中每个tablet最大阈值为1000的限制。 针对insert into 数据频繁导入引发的rowset版本过多的问题StarRocksc是利用compaction解决的。compaction可以认为是一个后台的常驻线程不断的将tablet中的rowset版本进行合并将小文件合并成有序的大文件。 StarRocks中的compaction操作分为base compactionBC 和cumulative compaction CC。其中cumulative compaction简称CC负责将多个最新导入的增量数据进行合并当增量数据合并后的大小达到一定阈值后base compaction简称BC将基线版本起始版本start version为0的数据和与该增量数据版本合并。BC操作因为涉及到基线数据而基线数据通常比较大所以操作耗时会比CC长。 BC和CC之间的分界线是cumulative point cp它是一个动态变化的版本号比cp小的数据版本只能触发BC而比CP大的数据版本只会触发CC。如下图 上述分析得出在StarRocks集群运行时对表的数据变更操作会不断地产生新版本rowset后台的常驻线程compaction负责将tablet中的rowset版本进行合并进而保证集群的整体稳定高效。 综上快速insert into导致报错close index channel failed的原因可以总结为短时间内生成的rowset版本太快如果compaction不及时就会造成大量版本堆积导致累计版本超过了超过了1000进而触发阈值报错。故为了保障集群的稳定运行及查询效率需要确保整体的compaction效率要大于rowset的生成速率。容易想到的解决思路一是部分场景下通过调整compaction的几个参数来加速compaction例如在be.conf中配置以下参数配置后需重启BE #每个磁盘 Cumulative Compaction 线程的数目(默认是1) cumulative_compaction_num_threads_per_disk 4#每个磁盘 Base Compaction 线程的数目(默认是1) base_compaction_num_threads_per_disk 2#Cumulative Compaction 线程轮询的间隔(单位是秒默认值是1) cumulative_compaction_check_interval_seconds 2 弊端是compaction任务本身比较耗费cpu,内存和磁盘IO资源compaction开启的过多会占用过多的机器资源也会影响查询性能还可能会造成OOM。上述报错还是需要从数据导入频率这个入手。 理论上每次导入操作不论是只导入一条还是十万、百万条对于StarRocks来说都是只生成一个新的roswet版本。那么在compaction效率有限的情况下完全可以通过“攒微批降频率”来规避roswet版本过多的问题。实际上若业务实时性要求不高在机器内存充足的情况下攒批越大、导入频率越低对StarRocks集群的稳定性及查询性能的影响就越小。 ps在StarRocks中有更快的攒批导入方式即Stream Load 从本地文件系统导入 | StarRocks STREAM LOAD | StarRocks    compaction合并机制见文章 第3.2章Doris数据导入——Compaction机制1-CSDN博客文章浏览阅读342次点赞11次收藏9次。第3.2章Doris数据导入——Compaction机制1https://blog.csdn.net/SHWAITME/article/details/136172846 四、insert替代用法 可以概括总结为以下几点 高频率小数据insert into或者JDBC的executeUpdate()方法就完全不要用低频率小数据insert into导入几条测试数据可以用但注意频率低频率较大数据insert into tbl values(data1),(data2)……或者类似JDBC executeBatch()方法可以用,但不推荐因为有更快的实现方式StarRocks系统内部进行ETL推荐使用 insert into select 语法便捷导入其他系统的数据推荐使用外部表例如先构建mysql外部表去映射mysql系统中的数据通过 insert into select 语法将外部表中的数据导入到 StarRocks表中。 五、insert使用与调优 5.1严格模式 insert into是一种同步的导入方式导入成功会直接显示导入结果。如果导入失败insert也会返回错误信息例如我们导入错误时间格式的数据数据漏加引号 1针对tracking_url使用web或者curl命令访问tracking_url可以查看更详细的错误信息显示报错原因是格式不对强转为null引起的问题接着可以去排查数据格式。 2严格模式enable_insert_strict当该参数为false时关闭严格模式表示一次insert任务只要有一条或以上数据被正确导入就返回成功。当该参数设置为true时表示但凡有一条数据错误则任务整体失败该参数默认为true。例如set global enable_insert_strict false; ps当关闭严格模式后insert即使有错误数据但只要有一条数据是正常可用的就会忽视脏数据保证可用数据的正常导入。此外enable_insert_strict参数是session参数当前会话生效断开当前session后该参数就会失效若需要全局修改可以加上global。 5.2并行度 insert导入语句本质上还是sql可以通过设置合适的并行度来进行加速。例如可以设置全局并行度为单个BE节点的cpu核数的一半。假设部署的BE服务器core数是16C那set global parallel_fragment_exec_instance_num 8。注意有些场景下例如insert into select语句进行StarRocks系统内部的ETL或者通过外部表来拉取数据当速度过快。一方面可能导致源库压力过大影响源库中的业务另一方面会导致StarRocks BE的load内存和ColumnPool内存占用较高影响集群稳定性。所以需要结合实际情况来设置合适的并行度控制导入速率 5.3超时时间 与insert相关的超时参数有两个 query_timeout 可以通过show variables like %query_timeout% 语句查看 该参数是session变量通过增加global关键词设置全局生效。可以通过set query_timeout xxx 来增加超时时间单位是秒(默认为300秒) insert_load_default_timeout_second 该参数是fe.conf中的参数表示导入任务的超时时间以秒为单位默认是3600秒即1小时。如果导入任务在设定的超时时间内未完成则会被系统取消变成cancelled。 参考文章 Insert Into - Apache Doris 通过 INSERT 语句导入数据 | StarRocks 第3.1章StarRocks数据导入--Insert into_starrocks insert into-CSDN博客
http://www.hkea.cn/news/14518604/

相关文章:

  • 做h5动画网站wordpress超精简主题
  • 网站在线开放端口电子商务营销策略分析
  • 控制网站的大量访问软件开发公司需要什么硬件设备
  • 湄洲岛网站建设怎么做查询数据输入的网站
  • 11个免费网站空间包装制品东莞网站建设
  • 做图专业软件下载网站有哪些wordpress 安卓手机写
  • 建立一平台个网站需要多少钱移动端高端网站开发
  • 网站内容管理软件网站建设阐述
  • 188网站开发建设工程质量监督网站
  • 郑州高端网站建设好看的网页设计作品欣赏
  • 网站建设整体设计流程网络软文营销案例
  • 婚礼策划网站高新区网站建设的建议
  • 毕业设计网站设计步骤怎样在阿里云做网站
  • 网站建设公司报价网站建设优秀网站建
  • 贵州网站建设wordpress gif缩略图
  • 新网站seo怎么优化自助免费网站制作
  • 做医疗的网站建设wordpress页面制作视频
  • 备案网站名称大全官方网站建设的方法有哪些方面
  • 网页模板好的网站好wordpress搜索表单
  • 网站设计建设维护汕头模版网站建设
  • 微网站建设找哪家公司网店交易平台
  • 合肥建站企业seo站内优化最主要的是什么
  • 品牌网站织梦模板下载包头索易网站建设
  • 网络公司网站设计多少钱wordpress知名博客主体
  • 上海外贸soho网站建设互动广告
  • 来宾网站制作温州百度推广排名
  • 网站说明页内容维护wordpress搬家后页面空白
  • 一流的赣州网站建设百度怎么建设网站
  • 青岛建站模板厂家微信云开发小程序
  • 有经验的邯郸网站建设电子商务网站建设实用教程教案