StarRocks数据导入
文章目录
- StarRocks数据导入
- Broker Load
- ETL 集群导数
- 非 ETL 集群导数
- Broker Load 任务查看
- BrokerLoad⼤数据量导⼊优化参数推荐配置
- BrokerLoad 排查思路
- Insert Into
- Insert Into大数据量导入优化参数
- Stream Load
- StreamLoad⼤数据量导⼊优化参数推荐配置
- Stream Load 排查思路
- RoutineLoad
- RoutineLoad 优化⽅式
- Routine Load 排查思路
StarRocks数据导入
Broker Load
使用 broker load 导入 hdfs 文件,需要在 Be 和 Broker 的 conf 目录中添加 HDFS的 hdfs-site.xml、core-site.xml、hive-site.xml ,配置HDFS集群 hosts 。
-- hive建表 creation_month为分区字段
CREATE TABLE `ads_crm_sales_visit_statistics_details2`(`id` string COMMENT '拜访id', `sales_id` bigint COMMENT '销售id', ... `exception_elimination` bigint COMMENT '客户统计异常拜访1表示是要排除的0表示不排除', `row_id` bigint COMMENT '虚拟主键')
COMMENT '销售异常拜访-拜访临时表'
PARTITIONED BY ( `creation_month` string COMMENT '创建月份')-- 查看hive表分区
show partitions ads_crm_sales_visit_statistics_details2;
-- SR建表 creation_month为排序键和分区字段
CREATE TABLE `ads_crm_sales_visit_statistics_details2` (`creation_month` date ,`creation_date` string ,`id` string , `sales_id` bigint , ..... `exception_elimination` bigint , `row_id` bigint
) ENGINE=OLAP
DUPLICATE KEY(`creation_month`, `creation_date`)
PARTITION BY RANGE(`creation_month`)
(
START ("2022-05-01") END ("2023-02-01") EVERY (INTERVAL 1 MONTH)
)
DISTRIBUTED BY HASH(`row_id`) BUCKETS 6
;
ETL 集群导数
使用 broker load 导入 hdfs 文件,需要在 Be 和 Broker 的 conf 目录中添加 HDFS的 hdfs-site.xml、core-site.xml、hive-site.xml ,配置HDFS集群 hosts 。
[ 开通 SR 到 HDFS NameNode 的 8020及 DateNode dfs.datanode.ipc.address、dfs.datanode.http.address、dfs.datanode.address 三个端口网络权限 ]
-- broker load
load label zxl.ads_crm_sales_visit_statistics_details2023_04_13
(data infile('hdfs://bigbigworld/user/hive/warehouse/ads_crm.db/ads_crm_sales_visit_statistics_details2/creation_month=202*/*')into table ads_crm_sales_visit_statistics_details2FORMAT AS 'ORC'( -- hive 表字段信息(不要包含分区字段,分区字段要在下面 COLUMNS FROM PATH 中指定) `creation_date` ,`id` , `sales_id` , ..... `exception_elimination` , `row_id` )
-- 将衍生列指定并转换分区字段,将原来的 yyy-mm 转换成 yyy-mm-dd
COLUMNS FROM PATH AS (creation_month)
SET(creation_month = (concat(creation_month ,'-01')))
)
with broker 'hdfs_broker';-- hdfs_broker 是 broker_name
非 ETL 集群导数
以上 Load 任务是连接 conf 配置中 hdfs-site.xml 的 NameNode 信息,若使用与配置中不同的 HDFS 可使用以下 Load 语句创建 ( NameNade HA )
LOAD LABEL db1.label1
(DATA INFILE("hdfs://nameservice1/starRocks/file1")INTO TABLE tbl1COLUMNS TERMINATED BY ","(tmp_c1, tmp_c2)SET(id=tmp_c2,name=tmp_c1)
)
WITH BROKER 'brokername'
("username" = "hdfs_username",---无密码可省略"password" = "hdfs_password",---无密码可省略"dfs.nameservices" = "nameservice1","dfs.ha.namenodes.nameservice1" = "namenode01,namenode02","dfs.namenode.rpc-address.nameservice1.namenode01" = "nn01:8020","dfs.namenode.rpc-address.nameservice1.namenode02" = "nn02:8020","dfs.client.failover.proxy.provider" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
)
-- 该配置实际引用的是 hdfs-site.xml 中 dfs.nameservices、dfs.ha.namenodes.nameservice1、dfs.namenode.rpc-address.nameservice1.namenode01、dfs.namenode.rpc-address.nameservice1.namenode02、dfs.client.failover.proxy.provider
Broker Load 任务查看
use database;
show load where label = 'label ID';show load from database where label = 'label ID';-- 查看 Broker Load 任务状态
SHOW LOAD FROM zxl WHERE LABEL = "ads_crm_sales_visit_statistics_details2023_04_13"; -- 取消 Broker Load 任务
CANCEL LOAD FROM zxl WHERE LABEL = "ads_crm_sales_visit_statistics_details2023_01_18";
BrokerLoad⼤数据量导⼊优化参数推荐配置
StarRocks SessionVariables(FE):
1. load_transmission_compression_type = none //默认值是none,当并发提⾼,cpu仍然打不满时,可
以设置为LZ4_FRAME。
v2.4及之前版本:
1. load_parallel_instance_num=8 // 可以根据BE的cpu核数设置,⼀般设置区间为[cpu核数/2 - 64]
v2.5+版本 & session variable enable_adaptive_sink_dop=true:1. pipeline_dop=0 // ⾃动设置BE核数的⼀半作为并⾏度,可以⼿动设置⾮0值,和查询的设置⽅式
⼀致。
2. 注: 新部署的2.5集群⾃动设置enable_adaptive_sink_dop=true。从之前版本升级上来的集群会⾃动
设置enable_adaptive_sink_dop=false,此时依然使⽤load_parallel_instance_num来配置并⾏度。StarRocks SessionVariables(BE):
1. flush_thread_num_per_store=8 // 每个盘的flush线程数,当⽤户盘⽐较少时可以设置较⼤,盘较多
时设置较⼩,⼀般情况下 flush_thread_num_per_store * store_num < be_cpu_core_num / 2
2. olap_table_sink_send_interval_ms=1
3. load_process_max_memory_limit_percent=50
4. send_channel_buffer_limit = 67108864 // 默认值64MB,当⽤户导⼊的数据列较多、单⾏数据较⼤
时,可以适当调⼤
5. number_tablet_writer_threads = 16 // 默认值16,[16-48],⼀般设置为cpu核数的1/3左右。
BrokerLoad 排查思路
1. Show load查看任务状态,状态为CANCELLED的时候进⼀步跟进排查。2. 如果URL不为空,则通过curl $URL查看具体报错信息。3. 如果URL为空,通过fe⽇志查看load id和be ip。4. (检查hdfs⽂件路径是否指定正确,可以指定到具体⽂件也可以指定某⽬录下的所有⽂件。5. (hdfs导⼊请检查⼀下是否有k8s认证,并进⾏配置 :grep $JobnId fe.log6. 去到对应的be中查看具体异常:grep $load_id be.INFO7. 定位到具体错误,并调整broker load配置,尝试重新导⼊任务。
Insert Into
Insert into table values 不建议在线上使用,频繁使用 INSERT 语句导入小批量数据会产⽣过多的数据版本,从⽽影响查询性能。需要流式导⼊或者小批量多次导⼊数据,建议使用 Kafka 作为数据源并通过 Routine Load 方式导入。
Insert into select 可以将源表中的数据导入都标表中。源表可以是⼀张或多张内部表或者外部表。⽬标表必须是 StarRocks 的内表。
Insert Into大数据量导入优化参数
# 每个盘的flush线程数,当⽤户盘⽐较少时可以设置较⼤,盘较多时设置较⼩,⼀般情况下 flush_thread_num_per_store * store_num(磁盘数量) < be_cpu_core_num / 2
flush_thread_num_per_store=8olap_table_sink_send_interval_ms=1 # v2.5+ 未找到该参数load_process_max_memory_limit_percent=50 # 默认值64MB,当⽤户导⼊的数据列较多、单⾏数据较⼤时,可以适当调⼤
send_channel_buffer_limit = 67108864 # v2.5+ 未找到该参数# 默认值16,[16-48],⼀般设置为cpu核数的1/3左右
number_tablet_writer_threads = 16 # v2.5+ 未找到该参数
Stream Load
curl --location-trusted -u 'root:kye!@#2020' -H "label:label1" \-H "Expect:100-continue" \-H "timeout:100" \-H "column_separator:," \-T /home/admin/zxl.csv -XPUT \ http://10.82.194.150:8030/api/ads_ops/disk_io_sector/_stream_load# 导入分区
curl --location-trusted -uroot -H "label:123" -H"partitions:p1,p2" -TtestData http://host:port/api/testDb/testTbl/_stream_load-H "column_separator: <column_separator>" 列分隔符
-H "row_delimiter:<row_delimiter>" 行分隔符
StreamLoad⼤数据量导⼊优化参数推荐配置
# StreamLoad⼤数据量导⼊优化参数推荐配置# StarRocksFE配置
stream_load_default_timeout_second = 10800# StarRocksBE配置
streaming_load_max_mb=102400
streaming_load_max_batch_size_mb=102400
flush_thread_num_per_store=8 // 每个盘的flush线程数,当⽤户盘⽐较少时可以设置较⼤,盘较多时设置较⼩,⼀般情况下 flush_thread_num_per_store * store_num < be_cpu_core_num / 2olap_table_sink_send_interval_ms=1 # v2.5+ 未找到该参数load_process_max_memory_limit_percent=50tablet_max_versions = 20000
enable_new_load_on_memory_limit_exceeded=true
Stream Load 排查思路
1. 查看本次导⼊的load_id和调度到的BE节点IP
grep -w $TxnId fe.log|grep "load id" 2. 输出样例为:2023-1-30 20:48:50,169 INFO (thrift-server-pool-4|138)
[FrontendServiceImpl.streamLoadPut():809] receive stream load put request. db:ssb, tbl: demo_test_1, txn id:
1580717, load id: 7a4d4384-1ad7-b798-f176-4ae9d7ea6b9d, backend: 172.26.92.155 3. 我们可以看到对应的BE节点IP,去到该节点上查看具体原因:grep $load_id be.INFO|less 4. 输出样例为:I0518 11:58:16.771597 4228 stream_load.cpp:202] new income streaming load
request.id=f1481, job_id=-1, txn_id=-1, label=metrics_detail_16, db=starrocks, tbl=metrics_detail
I0518 11:58:16.7 4176 load_channel_mgr.cpp:186] Removing finished load channel load id=f181
I0518 11:58:16.7 4176 load_channel.cpp:40] load channel mem peak usage=1915984, info=limit:
16113540169; label: f181; all tracker size: 3; limit trackers size: 3; parent is null: false; , load_id=f181 5. 如果查不到具体原因,则可以继续查看线程上下⽂进⾏进⼀步跟踪定位,⽐如上⽂的 4176线程 :
grep -w 4176 be.INFO|less 进⼀步分析即可。
RoutineLoad
RoutineLoad 优化⽅式
# 任务调度周期
1. max_batch_interval
通过缩短任务调度周期加速数据消费。但是,更⼩的任务调度周期可能会带来更多的CPU资源消耗。
需要注意的是,任务调度周期最⼩值为5s。# 任务级别调优
1. 降低导⼊QPS,集群总体的导⼊QPS尽量<10
计算⽅式: 集群routine_load_task_num / routine_load_task_consume_second
2. 增加单个导⼊事务的数据量,单个Routine Load Task导⼊的数据量 > 1G
需要同时调整 max_routine_load_batch_size,routine_load_task_timeout_second来实现
3. 单个BE上并发导⼊任务routine_load_thread_pool_size尽量<be_core_num / 2# 任务并⾏度
1. max_routine_load_task_concurrent_num
2. desired_concurrent_number
(在partition数量和BE数量较多时,可以通过设置较⼤的该参数来加速任务执⾏。但是,更⼤的并⾏度
可能会带来更多的CPU资源消耗)# 任务批量⼤⼩
1. routine_load_task_consume_second
通过增⼤单次读取持续时间加速数据消费。
2. max_routine_load_batch_size
通过增⼤单次读取的数据量加速数据消费。
Routine Load 排查思路
当任务状态为PAUSED或者CANCELLED的时候需要介⼊排查 任务状态为PAUSED时:
1. 可以先查看ReasonOfStateChanged定位下原因,例如“Offset out of range” 。 2. 若ReasonOfStateChanged为空,查看ErrorLogUrls可查看具体的报错信息:curl ${ErrorLogUrls} 3. 如果以上⽅法不能获取具体异常,可以执⾏以下命令查看(由于routine load是按周期调度的stream
load任务,所以可以通过调度的任务查看任务的状态:
show routine load task where JobName="routine_load_wikipedia";
查看Message字段可以看到具体异常,如果以上⽅法都不能排查到问题,可以拿到job id在be.INFO⽇志中找到txn id,然后通过txn id在be.INFO中查看上下⽂有具体的任务信息。 任务状态为CANCELLED时:
1. 则可能为导⼊任务执⾏遇到异常(如表被删除)。
您可以参考ReasonOfStateChanged、ErrorLogUrls报错进⾏排查和修复。但是修复后,您⽆法恢复 CANCELLED 状态的导⼊作业。
问题排查-导入失败相关
部署环境检查脚本
过txn id在be.INFO中查看上下⽂有具体的任务信息。
任务状态为CANCELLED时:
- 则可能为导⼊任务执⾏遇到异常(如表被删除)。
您可以参考ReasonOfStateChanged、ErrorLogUrls报错进⾏排查和修复。但是修复后,您⽆法恢复 CANCELLED 状态的导⼊作业。
[问题排查-导入失败相关](https://forum.mirrorship.cn/t/topic/4923)[部署环境检查脚本](https://forum.mirrorship.cn/uploads/short-url/cA3X82Tmzs6GCHqY5lbWoZfRlZS.sh)
相关文章:
StarRocks数据导入
文章目录 StarRocks数据导入Broker LoadETL 集群导数非 ETL 集群导数Broker Load 任务查看BrokerLoad⼤数据量导⼊优化参数推荐配置BrokerLoad 排查思路 Insert IntoInsert Into大数据量导入优化参数 Stream LoadStreamLoad⼤数据量导⼊优化参数推荐配置Stream Load 排查思路 R…...
mmdetection安装
链接: link...
光学像差的类型与消除方法
### **光学像差的类型、理解与消除方法** 光学像差是指实际光学系统成像时,由于透镜或反射镜的非理想特性导致的光线偏离理想路径,从而影响成像质量的现象。像差可分为**单色像差**(与波长无关)和**色差**(与波长相关…...
Manus AI 破局多语言手写识别,解锁智能新天地
Manus AI 破局多语言手写识别,解锁智能新天地 前言 在人工智能技术不断渗透各行各业的背景下,手写识别领域长期面临多语言适配难、复杂场景泛化能力弱等挑战。ManusAI凭借其创新的算法架构和多模态融合技术,成功突破传统OCR(光学…...
文字颜色的渐变(svg实现)
一 上下渐变(有底部阴影) 效果如图: svg代码如下: <svg width"300" height"100" xmlns"http://www.w3.org/2000/svg"><defs><linearGradient id"textGradient" x1"…...
Java-设计模式
Java-设计模式 ⓪设计模式基础 ❶设计模式分类 创建型模式 用于描述对象实例化(创建对象)的模式,即用于解耦对象的实例化过程 GoF(四人组)书中提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。 …...
“我是GM”之NAS搭建Luanti游戏服务器,开启沙盒游戏新体验
“我是GM”之NAS搭建Luanti游戏服务器,开启沙盒游戏新体验 哈喽小伙伴们好,我是Stark-C~ 曾几何时,哪怕是现在,估计依然有很多小伙伴沉迷于开放性和自由度极高的《我的世界》这种沙盒游戏吧~。 我个人到现在手机上还有这款游戏…...
K8S学习之基础五十:k8s中pod时区问题并通过kibana查看日志
k8s中pod默认时区不是中国的,挂载一个时区可以解决 vi pod.yaml apiVersion: v1 kind: Pod metadata:name: counter spec:containers:- name: countimage: 172.16.80.140/busybox/busybox:latestimagePullPolicy: IfNotPresentargs: [/bin/sh,-c,i0;while true;do …...
光电效应及普朗克常数的测定数据处理 Python实现
内容仅供参考,如有错误,欢迎指正,如有疑问,欢迎交流。 因为我不会Excel所以只能用Python来处理 祝大家早日摆脱物理实验的苦海 用到的一些方法 PCHIP (分段三次埃尔米特插值多项式) 因为实验时记录的数…...
hyperf中关于时间的设定
下面我来总结这三者的用法和它们之间的关系: 1. protected ?string $dateFormat U; 作用: 定义数据库日期字段的存储格式‘U’ 表示使用 Unix 时间戳格式(秒级,10位数字) 影响范围: 决定了模型从数据…...
编程实现自我指涉(self-reference)
从计算机的组成原理出发,编程实现自我指涉(self-reference)本质上是通过代码操纵代码,形成逻辑上的闭环。这种能力不仅是编程语言设计中的一个奇妙现象,更是计算理论、计算机架构、乃至哲学层面的一种深刻映射。让我们…...
数据类设计_图片类设计_矩阵图类型和像素图类型设计的补充
前言 以矩阵图类型和像素图类型作为图像类数据的基础,但在使用过程中有个问题:矩阵图形和像素图形的尺寸---长和高没有表现出来,本贴对此做出分析. 引入 原帖数据类设计_图片类设计之7_矩阵图形类设计更新_实战之页面简单设计(前端架构)-CSDN博客里有对…...
php写入\查询influxdb数据
namespace app\index\controller;use InfluxDB2\Client; use InfluxDB2\Model\WritePrecision; use InfluxDB2\Point;class Demo {/*** 显示资源列表** return \think\Response*/public function index(){$token 你的TOKEN;$org zzlichi;$bucket initdb;$client new Client…...
新手村:逻辑回归-理解02:逻辑回归中的伯努利分布
新手村:逻辑回归-理解02:逻辑回归中的伯努利分布 伯努利分布在逻辑回归中的潜在含义及其与后续推导的因果关系 1. 伯努利分布作为逻辑回归的理论基础 ⭐️ 逻辑回归的核心目标是: 建模二分类问题中 目标变量 y y y 的概率分布。 伯努利分布(…...
Python正则表达式(一)
目录 一、正则表达式的基本概念 1、基本概念 2、正则表达式的特殊字符 二、范围符号和量词 1、范围符号 2、匹配汉字 3、量词 三、正则表达式函数 1、使用正则表达式: 2、re.match()函数 3、re.search()函数 4、findall()函数 5、re.finditer()函数 6…...
JavaScript基础-事件委托(代理、委派)
在Web开发中,处理用户交互时经常需要监听DOM元素上的事件。然而,当页面上存在大量的动态生成的元素时,直接给每个元素绑定事件处理器可能会导致性能问题和代码管理复杂度增加。这时,事件委托提供了一种更加高效且易于维护的解决方…...
《TCP/IP网络编程》学习笔记 | Chapter 22:重叠 I/O 模型
《TCP/IP网络编程》学习笔记 | Chapter 22:重叠 I/O 模型 《TCP/IP网络编程》学习笔记 | Chapter 22:重叠 I/O 模型理解重叠 I/O 模型重叠 I/O本章讨论的重叠 I/O 的重点不在于 I/O 创建重叠 I/O 套接字执行重叠 I/O 的 WSASend 函数进行重叠 I/O 的 WSA…...
【区块链安全 | 第二篇】区块链概念详解
文章目录 概述1. 区块链类型2 区块链五层架构3 账本模型4. 节点(Node)5. 区块(Block)6. 区块链(Blockchain)7. 区块链工作流程 核心技术1. 共识机制2. 智能合约 主要组件1. 交易(Transaction&am…...
Android实践开发制作小猴子摘桃小游戏
Android实践制作小猴子摘桃小游戏 实践素材项目源文件获取:Android可以存在版本差异项目如果不能正确运行,可以使用里面的素材自己构建项目Android实践制作小猴子摘桃小游戏Android实践制作小猴子摘桃小游戏https://mp.weixin.qq.com/s/jNU_hVfj9xklsil…...
“11.9元“引发的系统雪崩:Spring Boot中BigDecimal反序列化异常全链路狙击战 ✨
💥 "11.9元"引发的系统雪崩:Spring Boot中BigDecimal反序列化异常全链路狙击战 🎯 🔍 用 Mermaid原生防御体系图 #mermaid-svg-XZtcYBnmHrF9bFjc {font-family:"trebuchet ms",verdana,arial,sans-serif;fon…...
【C++】回调函数和回调对象
文章目录 回调可调用对象函数指针作回调函数对象作回调函数对象的使用std::function【C11】作回调使用 【C11】Lambda表达式作回调【C11】bind对象作回调std::bind的使用作回调使用 回调 当发生某种事件时需要调用或触发另一个事件即为回调,回调的核心即为将可调用…...
电子产品可靠性预计怎么做?
目录 1、电子产品可靠性预计的目的 2、电子产品可靠性预计的常用方法 2.1、基于统计数据的预计方法 2.2、物理模型预计方法 2.3、加速寿命试验 2.4、基于仿真的预计方法 3、电子产品可靠性预计的步骤 3.1、定义可靠性指标 3.2、收集数据 3.3、建立模型 3.4、进行仿真…...
Ubuntu20.0.4创建ssh key以及repo命令的使用
创建ssh key ssh-keygen //一路回车,不用输入任何东西cat ~/.ssh/id_rsa.pub 配置git config git config --global user.name xxx // 设置git用户名git config --global user.email xxx.com.cn //设置git 邮箱git config --list// remove the git config// rm -fr …...
Java动态代理的使用和安全问题
前言: java的动态代理是指进行明确的分工的操作(多接口 比如我是酒店的老板 有人找我合作 需要先经过前台 我的助理 而不是直接找我) 序列化 :为什么序列化 序列化的对象是一个类 我们也叫对象 class一堆东西里面有很多函…...
Linux云计算SRE-第二十一周
构建单节点prometheus,部署node exporter和mongo exporter。构建kibana大盘。包含主机PU使用率,主机MEM使用率,主机网络包速度。mongo db大盘,包含节点在线状态,读操作延迟等 一、实验环境准备 - 节点信息࿱…...
《Python实战进阶》第33集:PyTorch 入门-动态计算图的优势
第33集:PyTorch 入门-动态计算图的优势 摘要 PyTorch 是一个灵活且强大的深度学习框架,其核心特性是动态计算图机制。本集将带您探索 PyTorch 的张量操作、自动求导系统以及动态计算图的特点与优势,并通过实战案例演示如何使用 PyTorch 实现…...
python dict转换成json格式
一开始你变成字典格式 data [ { a : 1, b : 2, c : 3, d : 4, e : 5 } ] import json data [ { a : 1, b : 2, c : 3, d : 4, e : 5 } ] data2 json.dumps(data) print(data2)json.dumps(data) 是将数组json化。 json格式化输出 data2 json.dumps({a: Runoob, b: 7…...
美亚科技业绩波动明显:现金流为负,四起未决诉讼涉金额1700万
《港湾商业观察》施子夫 近期,广东美亚旅游科技集团股份有限公司(以下简称,美亚科技)披露第二轮审核问询函的回复。从两轮问询函监管层提出的问题来看,有关美亚科技业绩增长的合理性、募投项目的必要性及合理性、经营…...
Java面试总结+算法
目录 Java 中 和 equals 的区别是什么? 什么是类加载器,Java 中有哪些类加载器?它们的职责分别是什么? Redis 有哪些数据结构?它们分别适用于哪些场景? 什么是索引?MySQL 有哪些常见的索引类…...
深度优先搜索(DFS)在排列组合问题中的应用详解:C++实现与优化
一、排列问题(Permutations) 目标:生成所有可能的排列(元素顺序不同视为不同结果)。 示例:输入 [1,2,3],输出所有长度为3的排列,共6种。 C实现代码 #include <iostream> #i…...
GeoChat : Grounded Large Vision-Language Model for Remote Sensing论文精读
GeoChat : Grounded Large Vision-Language Model for Remote Sensing 是一个针对遥感场景的llm,提供支持多任务对话(对高分辨率遥感图像)。也造了个数据集。 一些思考: 文中提到的局限性:小物体和多框预测较难。小物…...
Postman使用02、断点、fiddler弱网测试
脚本操作 一、脚本导出 1.导出json脚本 2.打包json文件 3.下载的文件 二 .导入脚本 1.选择文件 2.点击导入 3.导入的接口 三.多接口运行 1.集合右键,点击run ,运行多个接口 2.编辑环境,集合,执行次数等 3.运行多个接口 四.运行…...
深入解析 C++20 中的 std::bind_front:高效函数绑定与参数前置
文章目录 1. 什么是 std::bind_front?2. 使用 std::bind_front2.1 基本用法2.2 绑定多个参数 3. 优势与特点3.1 简化代码3.2 支持可调用对象3.3 支持完美转发 4. 实际应用场景4.1 事件处理4.2 算法通用化4.3 成员函数调用 5. 总结 在现代 C 编程中,函数绑…...
Opencv计算机视觉编程攻略-第三节 图像颜色处理
第三节 图像颜色处理 1.颜色比较2.GrabCut分割图像3.色调、饱和度以及亮度 1.颜色比较 主要实现逐像素的颜色比较,其中注意BGR颜色空间不连续,不利于颜色提取和区分,转换到Lab空间: int getColorDistance(const cv::Vec3b& c…...
第十七章:Future Directions_《C++ Templates》notes
Future Directions 核心重难点:示例代码: 设计题多选题答案设计题详解 核心重难点: 泛型非类型模板参数 允许任意类型作为非类型模板参数(如template<typename T, auto N>)需解决类型推导和链接问题 编译期控制…...
ComfyUI-PSD-Replace: 海报与壁纸批量生成
ComfyUI-PSD-Replace: 海报与壁纸批量生成 🚀 插件介绍 ComfyUI-PSD-Replace 是一款强大的图像批量处理插件,专为设计师和创意工作者打造。无论你是想快速生成多款海报、定制壁纸,还是批量更新设计模板,本插件都能帮你轻松实现&a…...
图解预训练模型 ELMo 和 BERT
一、ELMo 二、BERT 以上笔记参考自b站up主 自然卷小蛮(自然卷小蛮的个人空间-自然卷小蛮个人主页-哔哩哔哩视频),感兴趣的可以去深入了解。...
YoloV8训练和平精英人物检测模型
概述 和平精英人物检测,可以识别游戏中所有人物角色,并通过绘制框将人物选中,训练的模型仅仅具有识别功能,可以识别游戏中的视频、图片等文件,搭配Autox.js可以推理,实现实时绘制,但是对手机性…...
基于物联网的智能蔬菜仓库设计(论文+源码)
1系统功能分析 由于蔬菜仓库内部环境直接影响到内部货物的正常存储工作,因此对蔬菜仓库内部环境进行智能化的监控具有重要意义。本次基于物联网的智能蔬菜仓库设计,系统实现的功能如下: (1)对蔬菜仓库内部进行温度检测…...
Java 字符流全解析:核心类实战指南
一、FileReader 与 FileWriter:文本文件基础操作 功能:直接基于字符处理文本文件,自动完成字节到字符的解码(默认使用系统编码)。 适用场景:读写简单的文本文件(如 .txt、.csv)。 …...
SQL Server 2022 安装问题
一、安装与配置问题 1. SQL Server 2022 安装失败怎么办? 常见原因: 硬件或操作系统不满足最低要求(如内存、磁盘空间不足)。未关闭防火墙或杀毒软件。之前版本的 SQL Server 残留文件未清理。 解决方案: 确保硬件配…...
Vue3 实现pdf预览
1.使用到的插件 vue3-pdf-app 以及预览效果 2.下载依赖 // 可以使用npm 以及pnpm // 下载版本1.0.3 pnpm install vue3-pdf-app^1.0.3 3.封装pdfModel组件复用 <template><VuePdfApp :page-scale"pageScale" :theme"theme" :style"width: …...
python网络爬虫开发实战之网页数据的解析提取
目录 1 XPath的使用 1.1 XPath概览 1.2 XPath常用规则 1.3 准备工作 1.4 实例引入 1.5 所有节点 1.6 节点 1.7 父节点 1.8 属性匹配 1.9 文本获取 1.10 属性获取 1.11 属性多值匹配 1.12 多属性匹配 1.13 按序选择 1.14 节点轴选择 2 Beautiful Soup 2.1 简介…...
GitHub Copilot平替:CodeGeeX 2.0实测报告
本文基于20个真实开发场景对CodeGeeX 2.0进行深度评测,涵盖代码生成质量、上下文理解能力、多语言支持度等关键维度。通过Python数据分析、Java微服务、React前端开发三大核心场景的对比实验,揭示其相比GitHub Copilot在中文语境支持、本地化部署、隐私保…...
QT对象模型
信号,槽,函数执行顺序 首先,拖入一个按钮,在转到槽,在click() 转到widget.cpp 在widget.h中 然后在widget.cpp中 运行结果 当发出信号后,先执行槽函数,再执行信号后面的函数(单线程) 在widget.h…...
C++:类型推导规则 unsigned short + 1
在 C/C 中,整数提升(Integer Promotion) 规则决定了 vlan_id 1 的类型: unsigned short 的值在运算时会被 提升(promote) 到 int 或 unsigned int(取决于平台)。 默认情况下&#x…...
PHP接口开发:从基础到高级的全面指南
一、接口基础与核心概念(约800字) 1.1 接口的本质定义 在PHP中,接口(Interface)是一种特殊的抽象结构,它通过interface关键字定义一组方法的契约规范,不包含具体实现。这种设计强制实现类必须遵循统一的调用标准,如: interface PaymentGateway {public function proc…...
C#Dictionary值拷贝还是引用
Dictionary值拷贝还是引用 这可能算是Directionary的一个坑值类型(Value Type)引用类型(Reference Type)总结 关于锁1. **锁对象的可见性**2. **锁对象的唯一性**3. **最佳实践**4. **为什么 readonly 是一个好的选择**5. **总结*…...
deepseek实战教程-第六篇查找源码之仓库地址与deepseek-R1、deepseek-LLM仓库内容查看
上一篇讲了支持deepseek的模型应用的本地安装和部署以及使用。再上一篇讲解了deepseek提供的开放api,便于开发者基于deepseek提供的接口来编写属于自己的业务应用程序。但是前面几篇我们都是在用模型,我们知道deepseek是开源的,那么deepseek的源码在哪里,具体源码是什么样的…...
WELL健康建筑认证是什么?
**WELL健康建筑认证:全方位呵护居住者福祉的权威标准** WELL健康建筑认证,这一源自美国的全球性健康建筑标准,宛如建筑界的璀璨明珠,以其独特的光芒照亮了健康建筑的发展之路。它不仅是全球首部专门针对室内环境提升人体健康与福…...