sqlloader学习笔记
INFILE
的用法
1)模糊导入多个数据的文件。 可以在文件名中使用通配符。 星号 (*) 表示复数字符,问号 (?) 表示单个字符。
INFILE 'emp*.dat'
INFILE 'm?emp.dat'
2)如果不需要导入数据文件,控制文件中有数据,可用INFILE *
INFILE * (表示控制文件导入的数据在控制文件中,begindata以后。)
eg:
LOAD DATA
INFILE *
INTO TABLE DEPT
FIELDS TERMINATED BY ‘,’
(DEPTNO, DNAME, LOC)
BEGINDATA
10,Sales,Yinginia
20,Acceounting,yirgina
3)在完整路径 中指定的文件 datafile
.dat
INFILE 'c:/topdir/subdir/datafile.dat'
4)指定多个数据文件
INFILE mydat1.dat BADFILE ‘mydat1.bad’ DISCARDFILE ‘mydat1.dis’
INFILE mydat2.dat
INFILE mydat3.dat BADFILE ‘mydat3.bad’ DISCARDFILE ‘mydat3.dis’
INFILE mydat4.dat DISCARDMAX 10 0
附加:
INFILE "e:\gnis\mi_deci.dat" --Windows
INFILE '/home/oracle/gnis/mi_deci.dat' --Unix
2、insert、append、replace、truncate
insert:在空表中插入数据,表中有数据会中止
append:在表数据后面追加数据
replace:替代表中数据,加载前会先删除原表中的数据
truncate:
2-1 columns列语句
column_name POSITION (start:end) datatype
或者
column_name datatype TERMINATED BY ‘delim’ [OPTIONALLY ENCLOSED BY ‘delim’]
column_name [POSITION({start|*[+offset]}[{:|-}end])]
[datatype] [PIECED]
[NULLIF condition [AND condition...]]
[DEFAULTIF condition [AND condition...]]
["sql_expression"]
into table命令
INTO TABLE table_name [{PARTITION | SUBPARTITION} (partition_name)] {INSERT | REPLACE | TRUNCATE | APPEND} [SORTED [INDEXES] (index_list)] [SINGLEROW] [{INSERT | REPLACE | TRUNCATE | APPEND}] [OPTIONS (FILE=database_filename)] [REENABLE [DISABLED_CONSTRAINTS][EXCEPTIONS exception_table_name]] [WHEN field_conditions] [{OID(fieldname)|SID(fieldname)}] [FIELDS [delimiter_description]] [TRAILING [NULLCOLS] [SKIP skip_count] (field_list)
3.加载多个表,字段用逗号分隔开
LOAD DATA
INFILE ‘animal_feeding.csv’
APPEND
INTO TABLE animal_feeding
(
animal_id INTEGER EXTERNAL TERMINATED BY ‘,’,
feeding_date DATE “dd-mon-yyyy” TERMINATED BY ‘,’,
pounds_eaten DECIMAL EXTERNAL TERMINATED BY ‘,’
)
INTO TABLE animal_feeding_note
(
animal_id INTEGER EXTERNAL TERMINATED BY ‘,’,
feeding_date DATE “dd-mon-yyyy” TERMINATED BY ‘,’,
pounds_eaten FILLER DECIMAL EXTERNAL TERMINATED BY‘,’, 使用了FILLER关键字指定SQLLoader不加载此字段。
note CHAR TERMINATED BY ‘,’
OPTIONALLY ENCLOSED BY ‘“‘ 界定符为双引号,也就是“a”=> a;
)
3-1提供了多个数据文件,要导入同一张表
LOAD DATA
INFILE ldr_case8_1.dat
INFILE ldr_case8_2.dat
INFILE ldr_case8_3.dat
TRUNCATE INTO TABLE MANAGER
FIELDS TERMINATED BY ","
(MGRNO,MNAME,JOB)
3-2同一个数据文件,要导入不同表
待导入的数据文件如下:
BON SMITH CLEAK 3904
BON ALLEN SALER,M 2891
MGR 10 SMITH SALES MANAGER
MGR 11 ALLEN.W TECH MANAGER
TMP SMITH 7369 CLERK 800 20
TMP ALLEN 7499 SALESMAN 1600 30
需求是将以 MGR 开头的记录导入 MANAGER 表,以 BON 开头的记录导入 BONUS表,其他记录存入废弃文件中
创建控制文件如下:
LOAD DATA
INFILE ldr_case9.dat
DISCARDFILE ldr_case9.dsc
TRUNCATEINTO TABLE BONUSWHEN TAB= 'BON'(TAB FILLER POSITION(1:3),ENAME POSITION(5:9) ,JOB POSITION(*+1:18),SAL POSITION(*+1))INTO TABLE MANAGERWHEN TAB = 'MGR'(TAB FILLER POSITION(1:3),MGRNO POSITION(4:5) ,MNAME POSITION(7:13),JOB POSITION(*+1))
附加:
DATE的其他格式
4、描述定宽列POSITION (start:end) 记录的第一个字符总是位置1。
(
animal_id POSITION (1:3) INTEGER EXTERNAL,
feeding_date POSITION (4:14) DATE “dd-mon-yyyy”,
pounds_eaten POSITION (15:19) ZONED (5,2),
note POSITION (20:99) CHAR
)
5、sqlloader文本的基本数据类型
CHAR 标识字符数据。 不要将其与数据库中使用的CHAR数据类型混淆。 两者之间不存在任何关系。 如果要将数据加载到任何类型的文本字段中,如VARCHAR2、CHAR或CLOB,请使用SQL*Loader CHAR数据类型。
DATE [“format”] 标识日期。 即使它是可选的,也要指定一种格式。 这样,如果数据库中的默认日期格式与您期望的不同,就可以避免出现问题。
INTEGER EXTERNAL 标识以字符形式存储的整数值。 例如,字符串“123”是一个合法的INTEGER EXTERNAL值。
DECIMAL EXTERNAL 标识以字符形式存储的数字值,该值可能包含小数点。 字符串" - 123.45 "是DECIMAL EXTERNAL值的一个很好的例子。 ZONED(精度,比例)
6、NULLIF
如果您希望将空白字段视为null,则可以使用NULLIF子句来判断SQL*Loader来做这个。 NULLIF子句出现在数据类型之后,并接受下面的形式:
NULLIF field_name=BLANKS
要定义animal_id,以便将空白值存储为null,可以使用这个定义:
animal_id POSITION (1:3) INTEGER EXTERNAL NULLIF animal_id=BLANKS,
7、trailing nullcols 如要导入源文件此列内容为空,在导入到数据库表中,此列内容就是null
...INTO TABLE animal_feeding
TRAILING NULLCOLS
(animal_id INTEGER EXTERNAL TERMINATED BY ‘,’,feeding_date DATE “dd-mon-yyyy” TERMINATED BY ‘,’,pounds_eaten DECIMAL EXTERNAL TERMINATED BY ‘,’,note CHAR TERMINATED BY ‘,’OPTIONALLY ENCLOSED BY ‘”’
)
8、数据类型
1.字符类型数据
CHAR[ (length)] [delimiter]
length缺省为 1.2.日期类型数据
DATE [ ( length)]['date_format' [delimiter]
使用to_date函数来限制。3.字符格式中的十进制
DECIMAL EXTERNAL [(length)] [delimiter]
用于常规格式的十进制数(不是二进制=> 一个位等于一个bit)。4.压缩十进制格式数据
DECIMAL (digtial [,divcision])5.双精度符点二进制
DOUBLE6.普通符点二进制
FLOAT7.字符格式符点数
FLOAT EXTERNAL [ (length) ] [delimiter]8.双字节字符串数据
GRAPHIC [ (legth)]9.双字节字符串数据
GRAPHIC EXTERNAL[ (legth)]10.常规全字二进制整数
INTEGER11.字符格式整数
INTEGER EXTERNAL12.常规全字二进制数据
SMALLINT13.可变长度字符串
VARCHAR14.可变双字节字符串数据
VARGRAPHIC15.RAW
16.VARRAWC
9、错误数据
INFILE ‘animal_feeding.csv’
BADFILE ‘animal_feeding_bad.bad’
10、CONCATENATE n 将n行数据合并看成一行数据
LOAD DATA
INFILE ‘animal_feeding_concat.csv’
BADFILE ‘animal_feeding_concat’
APPEND
CONCATENATE 2
.. .
11、continueif 的数据行合并常用语句
通过在指定的位置指定一个或多个字符,允许组合物理记录到逻辑记录。
continueif next (1:2) = '--'
a1,b1,c1,
--a2,b2,c2,
a3,b3,c3,
--a4,b4,c4,
a5,b5,c5,
===》
a1,b1,c1, a2,b2,c2,
a3,b3,c3,a4,b4,c4,
a5,b5,c5,
continueif next preserve (1:2) = '--'
a1,b1,c1,
--a2,b2,c2,
a3,b3,c3,
--a4,b4,c4,
a5,b5,c5,
===》
a1,b1,c1, --a2,b2,c2,
a3,b3,c3,--a4,b4,c4,
a5,b5,c5,
continueif this preserve (1:2) = '--'
a1,b1,c1,
--a2,b2,c2,
a3,b3,c3,
--a4,b4,c4,
a5,b5,c5,
===》
a1,b1,c1,
--a2,b2,c2,a3,b3,c3,
--a4,b4,c4,a5,b5,c5,
continueif last (= '-')
a1,b1,c1,-
a2,b2,c2,
a3,b3,c3,-
a4,b4,c4,
a5,b5,c5,
===》
a1,b1,c1, -a2,b2,c2,
a3,b3,c3,-a4,b4,c4,
a5,b5,c5,
12、sqlldr的命令语句
sqlldr [param=value[, param=value...]]
在系统提示符下启动 SQL*加载程序并运行示例。
例如,要运行案例 1,请输入以下命令:
sqlldr USERID=scott CONTROL=ulcase1.ctl LOG=ulcase1.log
CONTROL 将参数和参数替换为相应的控件和 LOG 日志文件名,然后按 Enter 键。 当系统提示输入密码时, tiger 键入并按 Enter 键。
==〉> sqlldr CONTROL=ulcase1.ctl LOG=ulcase1.log
Username: scott
Password: password
userid 传入您的用户名、密码和Net8服务名称。 使用的语法与任何其他命令行实用程序相同,看起来像这样:userid=username[/password][@service]
control 传入控制文件名。 下面是一个例子:: control=[path]filename[.ext] 控制文件的默认扩展名是.ctl。
log 传入日志文件名。 例如: log=[path]filename[.ext] 日志文件的默认扩展名为。log。 如果不提供文件名,日志文件将被命名为与控制文件匹配
bad 传入错误的文件名。 例如: bad=[path]filename[.ext]坏文件的默认扩展名是。bad。 如果您没有提供文件名,那么坏文件将被命名为与控制文件匹配。 使用此参数将覆盖可能在控制文件中指定的任何文件名。
Data 传入数据文件名。 例如: data=[path]filename[.ext]数据文件的默认扩展名是。dat。 在命令行上指定数据文件名将覆盖控制文件中指定的名称。 如果没有在任何地方指定数据文件名,则默认使用与控制文件相同的名称,但扩展名为.dat。
discard 传入丢弃的文件名。 例如: discard=[path]filename[.ext] 用于丢弃文件的默认扩展名是。dis。 如果不提供文件名,则丢弃文件将被命名为与控制文件匹配。 使用此参数将覆盖控制文件中可能指定的任何丢弃文件名。
discardmax 可选地对允许丢弃的记录数量进行限制。 语法是这样的:discardmax=number_of_records如果丢弃的记录数量超过这个限制,加载将被中止。
Skip 允许您跳过指定数量的逻辑记录。 语法如下:skip=number_of_records当您想要继续加载已经中止的文件,并且知道在重新启动之前要进入文件的多少位置时,可以使用skip参数。
load 可选地限制要加载到数据库中的逻辑记录的数量。 语法是这样的:load=number_of_records一旦达到指定的限制,SQL*Loader将停止。
Errors 指定SQL*Loader终止加载之前允许的错误数量。 语法看起来是这样的:errors=number_of_records SQL*Loader将在收到超过指定数量的错误时停止加载。 默认限制为50。 没有办法允许无限数量。 最好是指定一个非常高的值,比如999999999。
Rows 间接控制加载过程中提交的频率。rows参数以行为单位指定用于常规路径加载的绑定数组的大小。SQL*Loader会将该值舍入为I/O块大小的若干倍。rows参数的语法如下所示:rows=number_of_rows对于常规路径加载,默认值是64。默认情况下,只有在完成整个负载时才保存直接路径负载。但是,当完成直接路径负载时,可以使用此参数直接控制提交频率
………
USERID={username[/password][@net_service_name]|/}
CONTROL=control_file_name
LOG=path_file_name
BAD=path_file_name
DATA=path_file_name
DISCARD=path_file_name
DISCARDMAX=logical_record_count
SKIP=logical_record_count
SKIP_INDEX_MAINTENANCE={TRUE | FALSE}
SKIP_UNUSABLE_INDEXES={TRUE | FALSE}
LOAD=logical_record_count
ERRORS=insert_error_count
ROWS=rows_in_bind_array
BINDSIZE=bytes_in_bind_array
SILENT=[(]keyword[,keyword...][)]
DIRECT={TRUE | FALSE}
PARFILE=path_file_name
PARALLEL={TRUE | FALSE}
READSIZE=bytes_in_read_buffer
FILE=database_datafile_name
13、编写表达式来修改加载的数据
LOAD DATA
INFILE ‘animal_feeding_expr.csv’
BADFILE ‘animal_feeding_expr’
APPEND
INTO TABLE animal_feeding
TRAILING NULLCOLS
(
animal_id INTEGER EXTERNAL TERMINATED BY “,”,
feeding_date DATE “dd-mon-yyyy” TERMINATED BY “,”,
pounds_eaten DECIMAL EXTERNAL TERMINATED BY “,”
“:pounds_eaten * 2.2”, 取到的值*2.2
note CHAR TERMINATED BY “,”
OPTIONALLY ENCLOSED BY ‘“‘
“UPPER(:note)” 字符转成大写
)
截取
SAL position(17:20),
COMM "substr(:SAL,1,1)"
替换
REMARK "replace(:remark, '\\n',chr(10))"
空白看成NULL
animal_id POSITION (1:3) INTEGER EXTERNAL
NULLIF animal_id=BLANKS,
自动生成字段值
column_name {
RECNUM 递增数值从1开始
|SYSDATE 系统时间
|CONSTANT {string | "string"} 常量值
|SEQUENCE [({COUNT | MAX|integer}[,increment])] 效果与RECNUM差不多,可以设置开始值
}
eg:
REMARK CONSTANT "United States Geological Survey",
TIMES SYSDATE
去掉空格
county POSITION(64) CHAR(5) "RTRIM(:county)"
NVL
elevation POSITION(49) INTEGER EXTERNAL(4)
"NVL(:elevation,0)",
转数字计算
price POSITION(37:40) "TO_NUMBER(:bookPrice)/100" -- TO_NUMBER(NVL(:price,0))/100
取最大值
price POSITION(37) "GREATEST(TO_NUMBER(:price)/100, TO_NUMBER(:pages*0.10))",
14、反斜杠转义字符
SQL*加载程序和外部表使用各种约定将单引号标识为封闭字符。
SQL*Loader 允许使用反斜杠 ( \ ) 转义字符,以确保将单引号标识为括起来的字符。
例如
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\''
<==>
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY "'"
在 DDL 语法中,反斜杠转义字符 (\)。
"so'\"far" or 'so\'"far' ==〉 so'"far
"'so\\far'" or '\'so\\far\'' ==〉 'so\far'
"so\\\\far" or 'so\\\\far' ==〉 so\\far
15 控制文件内容
1 -- This is an example control file
2 LOAD DATA
3 INFILE 'sample.dat'
4 BADFILE 'sample.bad'
5 DISCARDFILE 'sample.dsc'
6 APPEND
7 INTO TABLE emp
8 WHEN (57) = '.'
9 TRAILING NULLCOLS
10 (hiredate SYSDATE,
deptno POSITION(1:2) INTEGER EXTERNAL(2)
NULLIF deptno=BLANKS,
job POSITION(7:14) CHAR TERMINATED BY WHITESPACE
NULLIF job=BLANKS "UPPER(:job)",
mgr POSITION(28:31) INTEGER EXTERNAL
TERMINATED BY WHITESPACE, NULLIF mgr=BLANKS,
ename POSITION(34:41) CHAR
TERMINATED BY WHITESPACE "UPPER(:ename)",
empno POSITION(45) INTEGER EXTERNAL
TERMINATED BY WHITESPACE,
sal POSITION(51) CHAR TERMINATED BY WHITESPACE
"TO_NUMBER(:sal,'$99,999.99')",
comm INTEGER EXTERNAL ENCLOSED BY '(' AND '%'
":comm * 100"
)
此示例控制文件中左侧的数字未出现在实际控制文件中。 这些数字对应于以下说明中的数字:
- 控制文件中条目之前的此注释是如何在控制文件中输入注释的示例。 “--”表注释
- LOAD DATA 该语句在 SQL*Loader 中启动新的数据加载。 有关语法详细信息,请参阅 SQL*加载程序语法图。
- INFILE 该子句指定包含要加载的数据的数据文件的名称。 有关更多信息,请参阅指定数据文件。
- BADFILE 该子句指定拒绝记录写入的文件的名称。 有关详细信息,请参阅指定错误文件。
- DISCARDFILE 该子句指定逻辑删除记录写入的文件的名称。 有关详细信息,请参阅指定放弃文件。
- APPEND 子句是可用于将数据加载到非空表中的选项之一。 有关更多信息,请参见将数据加载到非空表中。
若要将数据加载到空表中,请使用 INSERT 子句。 有关更多信息,请参见将数据加载到空表中。
- INTO TABLE 可以使用子句来标识表、字段和数据类型。 此子句定义数据文件中的记录与数据库中的表之间的关系。 有关更多信息,请参见指定表名。
- WHEN 子句指定一个或多个字段条件。 SQL*加载器根据此条件确定是否加载数据。 有关详细信息,请参阅有条件加载记录。
- TRAILING NULLCOLS 使用子句时,如果记录中不存在由相对位置指定的列,则该列的值将被视为 NULL。 有关详细信息,请参阅处理缺少数据的短记录。
- 控制文件的其余部分包含一个字段列表,您可以在其中查看正在加载的表的列格式详细信息。 有关控制文件节的详细信息,请参阅 SQL*加载程序字段列表参考。
16在控制文件中指定命令行参数
在 SQL*Loader 控制文件中,可以使用子句指定 OPTIONS
命令行参数。
OPTIONS (parameter=value[,parameter=value...])
OPTIONS
从句放在LOAD DATA
句子之前。
eg:
OPTIONS (SILENT=ALL, ERRORS=999999)
LOAD DATA
INFILE 'mi_deci.dat'
TRUNCATE
INTO TABLE GNIS(…)
有关OPTIONS 这些参数的说明,请参阅 SQL*加载程序命令行参考。BINDSIZE = n
COLUMNARRAYROWS = n
DATE_CACHE = n
DEGREE_OF_PARALLELISM= {degree-num|DEFAULT|AUTO|NONE}
DIRECT = {TRUE | FALSE}
EMPTY_LOBS_ARE_NULL = {TRUE | FALSE}
ERRORS = n
EXTERNAL_TABLE = {NOT_USED | GENERATE_ONLY | EXECUTE}
FILE = tablespace file
LOAD = n
MULTITHREADING = {TRUE | FALSE}
PARALLEL = {TRUE | FALSE}
READSIZE = n
RESUMABLE = {TRUE | FALSE}
RESUMABLE_NAME = 'text string'
RESUMABLE_TIMEOUT = n
ROWS = n
SDF_PREFIX = string
SILENT = {HEADER | FEEDBACK | ERRORS | DISCARDS | PARTITIONS | ALL}
SKIP = n
SKIP_INDEX_MAINTENANCE = {TRUE | FALSE}
SKIP_UNUSABLE_INDEXES = {TRUE | FALSE}
STREAMSIZE = n
TRIM= {LRTRIM|NOTRIM|LTRIM|RTRIM|LDRTRIM}
17WHEN条件
LOAD DATAINFILE 'michigan_feature_names.dat'BADFILE 'michigan.bad'APPEND INTO TABLE featuresWHEN (feature_type='falls') AND (county='Alger')(state CHAR TERMINATED BY ',' ENCLOSED BY '"',feature_name CHAR TERMINATED BY ',' ENCLOSED BY '"',feature_type CHAR TERMINATED BY ',' ENCLOSED BY '"',county CHAR TERMINATED BY ',' ENCLOSED BY '"')
18自定义方法调用
CREATE OR REPLACE FUNCTION price_check(price_in NUMBER, pages_in NUMBER)
RETURN NUMBER ISmin_price NUMBER;
BEGINSELECT ppt_min_price INTO min_priceFROM price_page_thresholdWHERE pages_in >= ppt_pagesAND ppt_pages = (SELECT MAX(ppt_pages)FROM price_page_thresholdWHERE pages_in >= ppt_pages);RETURN GREATEST(min_price,price_in);
END;LOAD DATAINFILE 'book_prices.dat'REPLACE INTO TABLE book(book_title POSITION(1) CHAR(35),book_price POSITION(37)"price_check(:book_price,:book_pages)",book_pages POSITION(42) INTEGER EXTERNAL(3),book_id "book_seq.nextval")
相关文章:

sqlloader学习笔记
INFILE的用法 1)模糊导入多个数据的文件。 可以在文件名中使用通配符。 星号 (*) 表示复数字符,问号 (?) 表示单个字符。 INFILE emp*.dat INFILE m?emp.dat 2)如果不需要导入数据…...

内网ip与外网ip
一、关于IP地址 我们平时直接接触最多的是内网IP。而且还可以自己手动修改ip地址。而外网ip,我们很少直接接触,都是间接接触、因为外网ip一般都是运营商管理,而且是全球唯一的,一般我们自己是无法修改的。 内网IP和外网IP是指在…...

分布式 - 消息队列Kafka:Kafka消费者和消费者组
文章目录 1. Kafka 消费者是什么?2. Kafka 消费者组的概念?3. Kafka 消费者和消费者组有什么关系?4. Kafka 多个消费者如何同时消费一个分区? 1. Kafka 消费者是什么? 消费者负责订阅Kafka中的主题,并且从…...
feign调用和被调用者字段名称不对应解决
如果您在使用Feign时,尝试使用SerializedName("id")或JsonAlias("id")修饰字段,但仍然无法正常生效,可能是由于以下原因: Feign不会直接使用Gson库进行序列化和反序列化,而是使用了默认的Jackson库…...

【UE4 RTS】07-Camera Boundaries
前言 本篇实现的效果是当CameraPawn移动到地图边缘时会被阻挡。 效果 步骤 1. 打开项目设置,在“引擎-碰撞”中,点击“新建Object通道” 新建通道命名为“MapBoundaries”,然后点击接受 2. 向视口中添加 阻挡体积 调整阻挡体积的缩放 向四…...

大语言模型之二 GPT发展史简介
得益于数据、模型结构以及并行算力的发展,大语言模型应用现今呈井喷式发展态势,大语言神经网络模型成为了不可忽视的一项技术。 GPT在自然语言处理NLP任务上取得了突破性的进展,扩散模型已经拥有了成为下一代图像生成模型的代表的潜力&#x…...

前后端分离------后端创建笔记(09)密码加密网络安全
本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论,如有侵权请联系 源码:https://gitee.com/green_vegetables/x-admin-project.git 素材:https://pan.baidu.com/s/…...

《Effects of Graph Convolutions in Multi-layer Networks》阅读笔记
一.文章概述 本文研究了在XOR-CSBM数据模型的多层网络的第一层以上时,图卷积能力的基本极限,并为它们在数据中信号的不同状态下的性能提供了理论保证。在合成数据和真实世界数据上的实验表明a.卷积的数量是决定网络性能的一个更重要的因素,而…...

低代码助力传统制造业数字化转型策略
随着制造强国战略逐步实施,制造行业数字化逐渐进入快车道。提高生产管理的敏捷性、加强产品的全生命周期质量管理是企业数字化转型的核心诉求,也是需要思考的核心价值。就当下传统制造业的核心问题来看,低代码是最佳解决方案,那为…...
什么叫做云计算
什么叫做云计算 相信大多数人对云计算或者是云服务的认识还停留在仅仅听过这个名词,但是对其真正的定义或者意义还不甚了解的层面。甚至有些技术人员,如果日常的业务不涉及到云服务,可能对其也只是一知半解的程度。首先云计算准确的讲只是云服…...
springboot 使用zookeeper实现分布式队列
一.添加ZooKeeper依赖:在pom.xml文件中添加ZooKeeper客户端的依赖项。例如,可以使用Apache Curator作为ZooKeeper客户端库: <dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</…...
地理数据的双重呈现:GIS与数据可视化
前一篇文章带大家了解了GIS与三维GIS的关系,本文就GIS话题带大家一起探讨一下GIS和数据可视化之间的关系。 GIS(地理信息系统)和数据可视化在地理信息科学领域扮演着重要的角色,它们之间密切相关且相互增强。GIS是一种用于采集、…...
Android 13 Media框架(3)- MediaPlayer生命周期
上一节了解了MediaPlayer api的使用,这一节就我们将会了解MediaPlayer的生命周期与api使用细节。 1、MediaPlayer生命周期 MediaPlayer.java 一开始有对生命周期的描述,这里对这些内容进行翻译: MediaPlayer 是线程不安全的,创建…...

[oneAPI] BERT
[oneAPI] BERT BERT训练过程Masked Language Model(MLM)Next Sentence Prediction(NSP)微调 总结基于oneAPI代码 比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Intel DevCloud for oneAPI&…...
F1-score解析
报错:valueError: Target is multiclass but average‘binary’. Please choose another average setting, one of 原因:使用from sklearn.metrics import f1_score多类别计算F1-score时报错,改函数的参数即可,如:f1_s…...

windows11下配置vscode中c/c++环境
本文默认已经下载且安装好vscode,主要是解决环境变量配置以及编译task、launch文件的问题。 自己尝试过许多博客,最后还是通过这种方法配置成功了。 Linux(ubuntu 20.04)配置vscode可以直接跳转到配置task、launch文件,不需要下载mingw与配…...
Max Sum
一、题目 Given a sequence a[1],a[2],a[3]…a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 (-1) 5 4 14. Input The first line of the input contains an integer T(1<T<…...

Field injection is not recommended
文章目录 1. 引言2. 不推荐使用Autowired的原因3. Spring提供了三种主要的依赖注入方式3.1. 构造函数注入(Constructor Injection)3.2. Setter方法注入(Setter Injection)3.3. 字段注入(Field Injection) 4…...

C#字符串占位符替换
using System;namespace myprog {class test{static void Main(string[] args){string str1 string.Format("{0}今年{1}岁,身高{2}cm,月收入{3}元;", "小李", 23, 177, 5000);Console.WriteLine(str1);Console.ReadKey(…...

ChatGPT等人工智能编写文章的内容今后将成为常态
BuzzFeed股价上涨200%可能标志着“转向人工智能”媒体趋势的开始。 周四,一份内部备忘录被华尔街日报透露BuzzFeed正计划使用ChatGPT聊天机器人-风格文本合成技术来自OpenAI,用于创建个性化盘问和将来可能的其他内容。消息传出后,BuzzFeed的…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...