DMFLDR数据载入使用实践

news2024/12/23 22:28:18

1、DMFLDR概述

1.1DMFLDR功能介绍

dmfldr(DM Fast Loader)是 DM 提供的快速数据装载命令行工具。用户通过使用 dmfldr 工具能够把按照一定格式
排序的文本数据以简单、快速、高效的方式载入到 DM 数据库中,或把 DM 数据库中的数据按照一定格式写入文本文件。
DMFLDR体系结构
在这里插入图片描述
当进行数据载入时,dmfldr 客户端接收用户提交的命令与参数,分析控制文件与数据文件,将数据打包发送给服务器端的 dmfldr 模块,由服务器完成数据的真正装载工作。并分析服务器返回的消息,必要时根据用户参数指定生成日志文件与错误数据文件。
当进行数据导出时,dmfldr 客户端接收用户提交的命令与参数,分析控制文件,将用户要求转换成相应消息发送给服务器端的 dmfldr 模块。服务器解析并打包需要导出的数据,发送给 dmfldr 客户端,客户端将数据写入指定的数据文件,必要时根据用户参数指定生成日志文件。

1.2DMFLDR参数

[dmdba@lei2 ~]$ dmfldr help
version: 03134284194-20240703-234060-20108 Pack1
格式: ./dmfldr   KEYWORD=value

例程: ./dmfldr   SYSDBA/SYSDBA CONTROL='/opt/data/fldr.ctl'

USERID 必须是命令行中的第一个参数
字符串类型参数必须以引号封闭

关键字              说明(默认值)
--------------------------------------------------------------------------------
USERID              用户名/口令, 格式:{<username>[/<password>] | /}[@<connect_identifier>][<option>] [<os_auth>]
                    <connect_identifier> : [<svc_name> | host[:port] | <unixsocket_file>]
                    <option> : #{<extend_option>=<value>[,<extend_option>=<value>]...}
                               --此行外层{}是为了封装参数之用,书写时需要保留
                    <os_auth> : AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}
CONTROL             控制文件,字符串类型
LOG                 日志文件,字符串类型 (fldr.log)
BADFILE             错误数据记录文件,字符串类型 (fldr.bad)
SKIP                初始忽略逻辑行数 (0)
LOAD                需要装载的行数 (ALL)
ROWS                提交频次 (50000), DIRECT为FALSE有效
DIRECT              是否使用快速方式装载 (TRUE)
SET_IDENTITY        是否插入自增列 (FALSE)
SORTED              数据是否已按照聚集索引排序 (FALSE)
INDEX_OPTION        索引选项 (1)
                    1 不刷新二级索引,数据按照索引先排序,装载完后再
                    将排序的数据插入索引
                    2 不刷新二级索引,数据装载完成后重建所有二级索引
                    3 刷新二级索引, 数据装载的同时将数据插入二级索引
ERRORS              允许的最大数据错误数 (100)
CHARACTER_CODE      字符编码,字符串类型 (GBK, UTF-8, SINGLE_BYTE, EUC-KR)
MODE                装载方式,字符串类型 IN表示载入,OUT表示载出,
                    OUTORA表示载出ORACLE (IN)
CLIENT_LOB          大字段目录是否在本地 (FALSE)
LOB_DIRECTORY       大字段数据文件存放目录
LOB_FILE_NAME       大字段数据文件名称,仅导出有效 (dmfldr.lob)
BUFFER_NODE_SIZE    读入文件缓冲区的大小 (10MB),有效值范围1~2048
LOG_SIZE            日志信息缓冲区的大小 (1MB),有效值范围1~100
READ_ROWS           工作线程一次最大处理的行数 (100000),最大支持2^26-10000
NULL_MODE           载入时NULL字符串是否处理为NULL
                    载出时空值是否处理为NULL字符串 (FALSE)
NULL_STR            载入时视为NULL值处理的字符串
SEND_NODE_NUMBER    运行时发送节点的个数 (20),有效值范围16~65535
TASK_THREAD_NUMBER  处理用户数据的线程数目,默认与处理器核数量相同,有效值范围1~128
BLDR_NUM            服务器BLDR数目 (64),有效值范围1~1024
BDTA_SIZE           bdta的大小 (5000),有效值范围100~10000
COMPRESS_FLAG       是否压缩bdta (FALSE)
MPP_CLIENT          MPP环境,是否本地分发 (TRUE)
SINGLE_FILE         MPP/DPC环境,是否只生成单个数据文件(FALSE)
LAN_MODE            MPP/DPC环境,是否以内网模式装载数据(FALSE)
UNREP_CHAR_MODE     非法字符处理选项(0),为0时表示跳过该数据行,为1时表示使用(*)替换错误字节
SILENT              是否静默方式装载数据(FALSE)
BLOB_TYPE           BLOB类型字段数据值的实际类型,字符串类型 (HEX_CHAR)
                    HEX表示值为十六进制,HEX_CHAR表示值为十六进制字符类型
                    仅在direct=FALSE有效
OCI_DIRECTORY       OCI动态库所在的目录
DATA                指定数据文件路径
ENABLE_CLASS_TYPE   允许用户导入CLASS类型数据 (FALSE)
FLUSH_FLAG          提交时是否立即刷盘 (FALSE)
IGNORE_BATCH_ERRORS 是否忽略错误数据继续导入 (FALSE)
SINGLE_HLDR_HP      是否使用单个HLDR装载HUGE水平分区表 (TRUE)
EP                  指定需要发送数据的站点序号列表,仅向MPP/DPC环境导入数据时有效
PARALLEL            是否开启并行装载(FALSE)
SQL                 使用自定义查询语句,仅导出模式有效
SQLFILE             自定义查询语句所在文件,仅导出模式有效
TABLE               导入/出表
ROW_SEPERATOR       行分隔符
FIELD_SEPERATOR     列分隔符
COMMIT_OPTION       提交选项(0), 0:每发送一批数据后提交, 1:发送完所有数据后提交
APPEND_OPTION       追加选项(0), 0: 追加方式, 1: 替代方式, 2: 插入方式
COLNAME_HEADING     是否在导出文件头中打印列名(FALSE)
IGNORE_AIMLESS_DATA 是否忽略无目标数据(FALSE)
LOB_AS_VARCHAR      是否将CLOB作为VARCHAR进行导入导出(FALSE)
LOB_AS_VARCHAR_SIZE 将CLOB作为VARCHAR进行导入导出时, lob数据最大大小(10MB)
LOG_LEVEL           记录错误数据信息级别(3), 0: 不记录 1: 只记录到log文件 2: 只记录到bad文件 3: 记录到log和bad文件 4: 错误仅输出到屏幕
FLDR_INI            配置文件路径,字符串类型
RECONN              自动重连次数(0)
RECONN_TIME         自动重连等待时间(5), 单位(s), 有效值范围(1~10000)
WIDTH               设置列数据宽度
SEDF                被替换的字符列表
SEDT                用于替换的字符列表
ESCAPE              转义符
EXPORT_MODE         MPP/DPC环境, 使用sql语句时的导出模式(0), 0: 普通模式 1: 快速模式, LOCAL方式连接
BAD_FILE_MODE       错误数据文件模式(0), 0: 普通模式 1: 纯数据模式
COMPATIBLE_MODE     兼容模式(0), 0: 不做兼容 1: 兼容DB2 2: 兼容MYSQL
PRIORITY_ENCLOSE    DB2模式下, enclose优先级最高
HELP                打印帮助信息

2、DMFLDR使用测试

2.1使用 DATA参数指定数据文件

也可以使用 DATA 参数指定 dmfldr 的数据文件,数据文件路径的优先选择顺序为先控制文件,后参数选项。如果控制文件中数据文件路径指定为‘’,在命令行通过 DATA参数指定数据文件路径,DATA 所指定的文件路径会替换‘’。

2.1.1创建表

[dmdba@lei2 ~]$ disql lei/leileilei

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.368(ms)
disql V8

SQL> CREATE TABLE fldr(C1 INT,C2 INT,C3 DATE);
操作已执行
已用时间: 7.889(毫秒). 执行号:1001.

2.1.2创建数据文件

创建数据文件/home/dmdba/fldr.txt。

[dmdba@lei2 ~]$ vi /home/dmdba/fldr.txt
添加:
1 1|2022-09-06
2 2|2023-09-06
3 3|2024-09-06

2.1.3创建控制文件

创建控制文件/home/dmdba/fldr.ctl

[dmdba@lei2 ~]$ vi /home/dmdba/fldr.ctl
添加:
LOAD DATA
INFILE *
INTO TABLE lei.fldr
FIELDS '|'
(
C1 TERMINATED BY ' ',
C2,
C3 DATE FORMAT 'yyyy-mm-dd'
)

2.1.4dmfldr导入数据

[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr.ctl\' data=\'/home/dmdba/fldr.txt\'
dmfldr V8
控制文件:

加载行数:全部

每次提交服务器行数:50000

跳过行数:0

允许错误数:100

是否直接加载:Yes

是否插入自增列:No

数据是否已按照聚集索引排序:No

字符集:UTF-8



数据文件共1个:
/home/dmdba/fldr.txt

错误文件:fldr.bad

目标表:LEI.FLDR

列名                                                                                                                           包装数据类型   终止
C1                                                                                                                               CHARACTER            WHT
C2                                                                                                                               CHARACTER            |
C3                                                                                                                               yyyy-mm-dd           |

行缓冲区数量: 2
任务线程数量: 1

3行记录已提交

目标表:LEI.FLDR
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。

跳过的逻辑记录总数:0
读取的逻辑记录总数:3
拒绝的逻辑记录总数:0

2.059(ms)已使用

SQL> select * from fldr;

行号     C1          C2          C3        
---------- ----------- ----------- ----------
1          1           1           2022-09-06
2          2           2           2023-09-06
3          3           3           2024-09-06

已用时间: 1.026(毫秒). 执行号:1002.

2.2数据转换与错误数据文件

2.2.1创建表

[dmdba@lei2 ~]$ disql lei/leileilei

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.368(ms)
disql V8

SQL> CREATE TABLE fldr2(C1 INT,C2 INT,C3 DATE);
操作已执行
已用时间: 7.889(毫秒). 执行号:1003.

2.2.2创建数据文件

创建数据文件/home/dmdba/fldr2.txt。

[dmdba@lei2 ~]$ vi /home/dmdba/fldr2.txt
添加:
1 1|2022-09-06
2 2|2023-09-06
3 3|2024-09-06
44|aaaa-bbb-ccc

2.2.3创建控制文件

创建控制文件/home/dmdba/fldr2.ctl

[dmdba@lei2 ~]$ vi /home/dmdba/fldr2.ctl
添加:
LOAD DATA
INFILE '/home/dmdba/fldr2.txt'
INTO TABLE lei.fldr2
FIELDS '|'
(
C1 TERMINATED BY ' ',
C2,
C3 DATE FORMAT 'yyyy-mm-dd'
)

2.2.4dmfldr导入数据

[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr2.ctl\' badfile=\'/home/dmdba/fldr2.bad\'
dmfldr V8
控制文件:

加载行数:全部

每次提交服务器行数:50000

跳过行数:0

允许错误数:100

是否直接加载:Yes

是否插入自增列:No

数据是否已按照聚集索引排序:No

字符集:UTF-8



数据文件共1个:
/home/dmdba/fldr2.txt

错误文件:/home/dmdba/fldr2.bad

目标表:LEI.FLDR2

列名                                                                                                                           包装数据类型   终止
C1                                                                                                                               CHARACTER            WHT
C2                                                                                                                               CHARACTER            |
C3                                                                                                                               yyyy-mm-dd           |

行缓冲区数量: 2
任务线程数量: 1

数据错误
3行记录已提交

目标表:LEI.FLDR2
load success.
失败原因: 数据错误
3 行加载成功。
1 行由于数据错误没有加载。
1 行由于数据格式错误被丢弃。

跳过的逻辑记录总数:0
读取的逻辑记录总数:4
拒绝的逻辑记录总数:1

1.172(ms)已使用

SQL> select * from fldr2;

行号     C1          C2          C3        
---------- ----------- ----------- ----------
1          1           1           2022-09-06
2          2           2           2023-09-06
3          3           3           2024-09-06

已用时间: 0.282(毫秒). 执行号:1005.

[dmdba@lei2 ~]$ cat fldr2.bad 
dmfldr: 2024-09-05 10:22:10 LEI->FLDR2 DMFLDR BAD FILE

dmfldr: 2024-09-05 10:22:10 LEI->FLDR2 44|aaaa-bbb-ccc

2.3大字段数据导出

当 dmfldr 工作在导出模式即 MODE 为 OUT 时,dmfldr 生成大字段对应的数据文件名由 LOB_FILE_NAME 指定,若未指定默认为 dmfldr.lob,文件存放于LOB_DIRECTORY 指定的目录,如果未指定 LOB_DIRECTORY 则存放于指定的导出数据文件同一目录。

2.3.1创建表

[dmdba@lei2 ~]$ disql lei/leileilei

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.368(ms)
disql V8

SQL> CREATE TABLE fldr3(C1 INT,C2 BLOB,C3 CLOB);
操作已执行
已用时间: 7.889(毫秒). 执行号:1006.

SQL> INSERT INTO lei.fldr3 VALUES(1,0XAB121032DE,'abcdefg');
影响行数 1

已用时间: 0.893(毫秒). 执行号:1007.
SQL> INSERT INTO lei.fldr3 VALUES(2,0XAB121032DE,'hijklmn');
影响行数 1

已用时间: 0.393(毫秒). 执行号:1008.
SQL> INSERT INTO lei.fldr3 VALUES(3,0XAB121032DE,'opqrstu');
影响行数 1

已用时间: 0.600(毫秒). 执行号:1009.
SQL> commit;
操作已执行
已用时间: 0.650(毫秒). 执行号:1010.
SQL> select * from fldr3;

行号     C1          C2           C3     
---------- ----------- ------------ -------
1          1           0xAB121032DE abcdefg
2          2           0xAB121032DE hijklmn
3          3           0xAB121032DE opqrstu

已用时间: 0.674(毫秒). 执行号:1011.

2.3.2创建控制文件

创建控制文件/home/dmdba/fldr3.ctl

[dmdba@lei2 ~]$ vi /home/dmdba/fldr3.ctl
添加:
LOAD DATA
INFILE '/home/dmdba/fldr3.txt'
INTO TABLE lei.fldr3
FIELDS '|'
(
C1,
C2,
C3
)

2.3.3dmfldr导出数据

[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr3.ctl\' LOB_DIRECTORY=\'/home/dmdba/\' mode=\'out\'
dmfldr V8
3 rows is load out
export success.
3 行数据已导出
用时:1.565(ms)

[dmdba@lei2 ~]$ cat fldr3.txt
1|dmfldr.lob:0:5|dmfldr.lob:5:7
2|dmfldr.lob:12:5|dmfldr.lob:17:7
3|dmfldr.lob:24:5|dmfldr.lob:29:7
[dmdba@lei2 ~]$ cat dmfldr.lob
defgklmnrstu[dmdba@lei2 ~]$

[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr3.ctl\' LOB_DIRECTORY=\'/home/dmdba/\' LOB_FILE_NAME=\'fldr3.lob\' mode=\'out\'
dmfldr V8
3 rows is load out
export success.
3 行数据已导出
用时:0.999(ms)

[dmdba@lei2 ~]$ cat fldr3.lob 
defgklmnrstu[dmdba@lei2 ~]$ 

2.4DIRECT为TRUE时大字段数据的载入

2.4.1创建表

[dmdba@lei2 ~]$ disql lei/leileilei

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.368(ms)
disql V8

SQL> CREATE TABLE fldr4(C1 INT,C2 BLOB,C3 CLOB);
操作已执行
已用时间: 7.889(毫秒). 执行号:1003.

2.4.2创建数据文件

创建数据文件/home/dmdba/fldr4.txt。

[dmdba@lei2 ~]$ vi /home/dmdba/fldr4.txt
添加:
1|testblob.txt:0:10|testclob.txt:0:10
2|testblob.txt:10:20|testclob.txt:10:20
3|testblob.txt:20:30|testclob.txt:20:30
[dmdba@lei2 ~]$ vi testblob.txt
添加:
1|testblobtestblobtestblobtestblob1|testblobtestblobtestblobtestblob1
2|testblobtestblobtestblobtestblob2|testblobtestblobtestblobtestblob2
3|testblobtestblobtestblobtestblob3|testblobtestblobtestblobtestblob3
[dmdba@lei2 ~]$ vi testclob.txt
添加:
1|testclobtestclobtestclobtestclob1|testclobtestclobtestclobtestclob1
2|testclobtestclobtestclobtestclob2|testclobtestclobtestclobtestclob2
3|testclobtestclobtestclobtestclob3|testclobtestclobtestclobtestclob3

2.4.3创建控制文件

创建控制文件/home/dmdba/fldr4.ctl

[dmdba@lei2 ~]$ vi /home/dmdba/fldr4.ctl
添加:
OPTIONS
(
SKIP = 0
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE '/home/dmdba/fldr4.txt'
BADFILE '/home/dmdba/fldr4.bad'
INTO TABLE lei.fldr4
FIELDS '|'
(
C1,
C2,
C3
)

2.4.4dmfldr导入数据

[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236  control=\'/home/dmdba/fldr4.ctl\' LOB_DIRECTORY=\'/home/dmdba/\'  LOG=\'/home/dmdba/dmfldr_fldr4.log\'
dmfldr V8
控制文件:

加载行数:全部

每次提交服务器行数:50000

跳过行数:0

允许错误数:100

是否直接加载:Yes

是否插入自增列:No

数据是否已按照聚集索引排序:No

字符集:UTF-8



数据文件共1个:
/home/dmdba/fldr4.txt

错误文件:/home/dmdba/fldr4.bad

目标表:LEI.FLDR4

列名                                                                                                                           包装数据类型   终止
C1                                                                                                                               CHARACTER            |
C2                                                                                                                               CHARACTER            |
C3                                                                                                                               CHARACTER            |

行缓冲区数量: 2
任务线程数量: 1

3行记录已提交

目标表:LEI.FLDR4
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。

跳过的逻辑记录总数:0
读取的逻辑记录总数:3
拒绝的逻辑记录总数:0

0.940(ms)已使用
SQL> select * from fldr4;

行号     C1          C2                                                             C3                            
---------- ----------- -------------------------------------------------------------- ------------------------------
1          1           0x317C74657374626C6F62                                         1|testclob
2          2           0x74657374626C6F6274657374626C6F6274657374                     testclobtestclobtest
3          3           0x7374626C6F6274657374626C6F62317C74657374626C6F6274657374626C stclobtestclob1|testclobtestcl

已用时间: 0.606(毫秒). 执行号:1013.

2.5DIRECT为FALSE时大字段数据的载入

2.5.1创建表

[dmdba@lei2 ~]$ disql lei/leileilei

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.368(ms)
disql V8

SQL> CREATE TABLE fldr5(C1 INT,C2 BLOB,C3 CLOB);
操作已执行
已用时间: 7.889(毫秒). 执行号:1003.

2.5.2创建数据文件

创建数据文件/home/dmdba/fldr5.txt。

[dmdba@lei2 ~]$ vi /home/dmdba/fldr5.txt
添加:
1|0x12d3c8a7|abcdefg
2|0x12a4cbac|hijlkmn
3|0x22d3c8b3|adefhjd

2.5.3创建控制文件

创建控制文件/home/dmdba/fldr5.ctl

[dmdba@lei2 ~]$ vi /home/dmdba/fldr5.ctl
添加:
OPTIONS
(
SKIP = 0
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE '/home/dmdba/fldr4.txt'
BADFILE '/home/dmdba/fldr4.bad'
INTO TABLE lei.fldr4
FIELDS '|'
(
C1,
C2,
C3
)

2.5.4dmfldr导入数据

[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr5.ctl\' LOG=\'/home/dmdba/dmfldr_fldr5.log\' direct=false blob_type=\'hex_char\'
dmfldr V8
控制文件:

加载行数:全部

每次提交服务器行数:50000

跳过行数:0

允许错误数:100

是否直接加载:No

是否插入自增列:No

数据是否已按照聚集索引排序:No

字符集:UTF-8



数据文件共1个:
/home/dmdba/fldr5.txt

错误文件:/home/dmdba/fldr5.bad

目标表:LEI.FLDR5

列名                                                                                                                           包装数据类型   终止
C1                                                                                                                               CHARACTER            |
C2                                                                                                                               CHARACTER            |
C3                                                                                                                               CHARACTER            |


3 rows processed.

目标表:LEI.FLDR5
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。

跳过的逻辑记录总数:0
读取的逻辑记录总数:3
拒绝的逻辑记录总数:0

0.766(ms)已使用

SQL> select * from fldr5;

行号     C1          C2         C3     
---------- ----------- ---------- -------
1          1           0x12D3C8A7 abcdefg
2          2           0x12A4CBAC hijlkmn
3          3           0x22D3C8B3 adefhjd

已用时间: 0.636(毫秒). 执行号:1015.

SQL> truncate table fldr5;
操作已执行
已用时间: 11.350(毫秒). 执行号:1016.

[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr5.ctl\' LOG=\'/home/dmdba/dmfldr_fldr5.log\' direct=false blob_type=\'hex\'
dmfldr V8
控制文件:

加载行数:全部

每次提交服务器行数:50000

跳过行数:0

允许错误数:100

是否直接加载:No

是否插入自增列:No

数据是否已按照聚集索引排序:No

字符集:UTF-8



数据文件共1个:
/home/dmdba/fldr5.txt

错误文件:/home/dmdba/fldr5.bad

目标表:LEI.FLDR5

列名                                                                                                                           包装数据类型   终止
C1                                                                                                                               CHARACTER            |
C2                                                                                                                               CHARACTER            |
C3                                                                                                                               CHARACTER            |


3 rows processed.

目标表:LEI.FLDR5
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。

跳过的逻辑记录总数:0
读取的逻辑记录总数:3
拒绝的逻辑记录总数:0

0.578(ms)已使用

SQL> select * from fldr5;

行号     C1          C2                     C3     
---------- ----------- ---------------------- -------
1          1           0x30783132643363386137 abcdefg
2          2           0x30783132613463626163 hijlkmn
3          3           0x30783232643363386233 adefhjd

已用时间: 0.332(毫秒). 执行号:1017.

2.6自增列装载

1.当 DIRECT 参数为 FALSE 时, dmfldr 将把从数据文件中读取的自增列值作为目标值插入数据库表中,用户应当保证每一行的自增列的值符合自增列的规则,否则将造成数据混乱。
2.当 DIRECT 参数为 TRUE 时, dmfldr 提供了 SET_IDENTITY 参数(默认为 FALSE)对数据载入时自增列的处理进行设置:
① 如果指定 SET_IDENTITY 选项值为 TRUE,则 dmfldr 将把从数据文件中读取的自增列值作为目标值插入数据库表中,用户应当保证每一行的自增列的值符合自增列的规则,否则将造成数据混乱;
② 如果 SET_IDENTITY 选项值设置为 FALSE,则 dmfldr 将忽略数据文件中对应自增列的值,服务器将根据自增列定义和表中已有数据自动生成自增列的值插入每一行的对应列。

2.6.1创建表

[dmdba@lei2 ~]$ disql lei/leileilei

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.368(ms)
disql V8

SQL> CREATE TABLE fldr6(C1 INT IDENTITY(1,1),C2 VARCHAR);
操作已执行
已用时间: 2.010(毫秒). 执行号:1018.
SQL> INSERT INTO  fldr6(C2) VALUES('a');
影响行数 1

已用时间: 0.734(毫秒). 执行号:1019.
SQL> INSERT INTO  fldr6(C2) VALUES('b');
影响行数 1

已用时间: 0.464(毫秒). 执行号:1020.
SQL> COMMIT;
操作已执行
已用时间: 0.679(毫秒). 执行号:1021.
SQL> select * from fldr6;

行号     C1          C2
---------- ----------- --
1          1           a
2          2           b

已用时间: 0.625(毫秒). 执行号:1022.

2.6.2创建数据文件

创建数据文件/home/dmdba/fldr6.txt。

[dmdba@lei2 ~]$ vi /home/dmdba/fldr6.txt
添加:
2|c
3|d
4|e

2.6.3创建控制文件

创建控制文件/home/dmdba/fldr6.ctl

[dmdba@lei2 ~]$ vi /home/dmdba/fldr6.ctl
添加:
OPTIONS
(
SKIP = 0
ROWS = 50000
INDEX_OPTION = 2
DIRECT=TRUE
SET_IDENTITY=FALSE
)
LOAD DATA
INFILE '/home/dmdba/fldr6.txt'
BADFILE '/home/dmdba/fldr6.bad'
INTO TABLE lei.fldr6
FIELDS '|'
(C1,
C2
)

2.6.4dmfldr导入数据

[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr6.ctl\' LOG=\'/home/dmdba/dmfldr_fldr6.log\'
dmfldr V8
控制文件:

加载行数:全部

每次提交服务器行数:50000

跳过行数:0

允许错误数:100

是否直接加载:Yes

是否插入自增列:No

数据是否已按照聚集索引排序:No

字符集:UTF-8



数据文件共1个:
/home/dmdba/fldr6.txt

错误文件:/home/dmdba/fldr6.bad

目标表:LEI.FLDR6

列名                                                                                                                           包装数据类型   终止
C1                                                                                                                               CHARACTER            |
C2                                                                                                                               CHARACTER            |

行缓冲区数量: 2
任务线程数量: 1

3行记录已提交

目标表:LEI.FLDR6
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。

跳过的逻辑记录总数:0
读取的逻辑记录总数:3
拒绝的逻辑记录总数:0

0.950(ms)已使用

SQL> select * from fldr6;

行号     C1          C2
---------- ----------- --
1          1           a
2          2           b
3          3           c
4          4           d
5          5           e

已用时间: 0.288(毫秒). 执行号:1023.

SQL> delete from fldr6 where c1>2;
影响行数 3

已用时间: 0.822(毫秒). 执行号:1024.
SQL> commit;
操作已执行
已用时间: 0.676(毫秒). 执行号:1025.
SQL> select * from fldr6;

行号     C1          C2
---------- ----------- --
1          1           a
2          2           b

已用时间: 0.282(毫秒). 执行号:1026.

[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr6.ctl\' LOG=\'/home/dmdba/dmfldr_fldr6_01.log\' DIRECT=TRUE SET_IDENTITY=TRUE
dmfldr V8
控制文件:

加载行数:全部

每次提交服务器行数:50000

跳过行数:0

允许错误数:100

是否直接加载:Yes

是否插入自增列:Yes

数据是否已按照聚集索引排序:No

字符集:UTF-8



数据文件共1个:
/home/dmdba/fldr6.txt

错误文件:/home/dmdba/fldr6.bad

目标表:LEI.FLDR6

列名                                                                                                                           包装数据类型   终止
C1                                                                                                                               CHARACTER            |
C2                                                                                                                               CHARACTER            |

行缓冲区数量: 2
任务线程数量: 1

3行记录已提交

目标表:LEI.FLDR6
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。

跳过的逻辑记录总数:0
读取的逻辑记录总数:3
拒绝的逻辑记录总数:0

0.891(ms)已使用

SQL> select * from fldr6;

行号     C1          C2
---------- ----------- --
1          1           a
2          2           b
3          2           c
4          3           d
5          4           e

已用时间: 0.296(毫秒). 执行号:1027.

更多内容请参考:https://eco.dameng.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2231534.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络(Ⅵ)应用层原理

一些网络应用的例子: E-mail Internaet电话 Web 电子支付 文本信息 搜索 P2P文件共享 流媒体 即时通讯 实时电视会议 .... .... 创建一个网络应用&#xff1a; 1.编程 2.在不同的端系统上运行。 网络应用的体系架构 可能的应用架构 1.客户-服…

《使用Gin框架构建分布式应用》阅读笔记:p393-p437

《用Gin框架构建分布式应用》学习第17天&#xff0c;p393-p437总结&#xff0c;总45页。 一、技术总结 1.Prometheus Prometheus放在代码里面使用&#xff0c;还是第一次见。在本人实际的工作中未看到这种用法。 2.Grafana Grafana用于被监控数据的可视化。 3.Telegraf …

【动手学强化学习】part7-Actor-Critic算法

阐述、总结【动手学强化学习】章节内容的学习情况&#xff0c;复现并理解代码。 文章目录 一、算法背景1.1 算法目标1.2 存在问题1.3 解决方法 二、Actor-Critic算法2.1 必要说明 优势函数 2.2 伪代码 算法流程简述 2.3 算法代码2.4 运行结果 结果分析 2.5 算法流程说明 初始化…

MySQL【二】

查询列 SELECT [ALL | DISTINCT ] * | 列名1[,……列名n] FROM 表名; 查询所有选课学生的学号&#xff0c;结果去除重复值 select distinct sno from sc; 选择行 查询满足条件的数据集 SELECT 字段列表 FROM 表名 WHERE 查询条件 查询不属于数学系或外国语系的学生全部信息 …

ElasticSearch - Bucket Selector使用指南

文章目录 官方文档Bucket Selector1. 定义2. 工作原理3. 使用场景与示例使用场景官方案例示例2 4. 注意事项5. 总结 官方文档 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html Bucket Selector https://www.elastic.co/guide/en/…

“死鱼眼”,不存在的,一个提词小技巧,拯救的眼神——将内容说给用户,而非读给用户!

视频录制时&#xff0c;死鱼眼问题常见 即便内容再好&#xff0c;眼神死板也会减分 痛点真痛&#xff1a;拍视频时容易紧张 面对镜头&#xff0c;许多人难免紧张 神情僵硬&#xff0c;眼神无光&#xff0c;甚至忘词 这不仅影响表现&#xff0c;还让人难以专注 忘我场景&#x…

PyQt5实战——多脚本集合包,UI以及工程布局(二)

个人博客&#xff1a;苏三有春的博客 系列往期&#xff1a; PyQt5实战——多脚本集合包&#xff0c;前言与环境配置&#xff08;一&#xff09; 布局 2.1 UI页面布局 整体框架分为分为三个部分&#xff0c;垂直分布。 第一个部分为功能选择按钮&#xff08;如UTF-8转换&#…

《Python网络安全项目实战》项目2 Python基础练习_总复习(1)

《Python网络安全项目实战》项目2 Python基础练习 总复习&#xff08;1&#xff09; 班级&#xff1a; 姓名&#xff1a; 实训成绩&#xff1a; 任务单成绩 &#xff1a; 输入用户名密码并将其输出打印。 userName _____________________ passWord ______________________ #输…

数组排序简介-基数排序(Radix Sort)

基本思想 将整数按位数切割成不同的数字&#xff0c;然后从低位开始&#xff0c;依次到高位&#xff0c;逐位进行排序&#xff0c;从而达到排序的目的。 算法步骤 基数排序算法可以采用「最低位优先法&#xff08;Least Significant Digit First&#xff09;」或者「最高位优先…

LangChain学习之路

何谓 LangChain&#xff1f;释放大语言模型潜能的利器 作为一种专为开发基于语言模型的应用而设计的框架&#xff0c;通过LangChain&#xff0c;我们不仅可以通过API调用如 ChatGPT、GPT-4、Llama 2 等大型语言模型&#xff0c;还可以实现更高级的功能。 我们相信&#xff0c…

二:Linux学习笔记(第一阶段)-- Linux命令

目录 Linux注意事项&#xff1a; Linux目录 Linux系统基础命令 1. 文件和目录操作 2. 文件查看和编辑 3. 文件权限和所有权 4. 系统信息 5. 网络命令 6. 文件查找 7. 压缩和解压缩 8. 系统管理 Linux注意事项&#xff1a; 严格区分大小写一切皆文件windows下的程序不…

嵌入式硬件重点(四)常用信号处理、放大电路、运算放大器(运放)基础篇

引言&#xff1a;在嵌入式硬件设计中&#xff0c;信号处理和放大电路是至关重要的组成部分。它们不仅影响系统的性能&#xff0c;还直接关系到数据的准确性和可靠性。随着嵌入式系统的广泛应用&#xff0c;对各种传感器和外部设备的信号进行有效处理显得尤为重要。 运算放大器&…

3D Gaussian Splatting代码详解(二):模型构建

3 模型构建 gaussians GaussianModel(dataset.sh_degree) 3.1 初始化函数 __init__ 构造函数 构造函数 __init__ 的主要作用是初始化 3D 高斯模型的各项参数和激活函数&#xff0c;用于生成 3D 空间中的高斯表示。 初始化球谐函数的参数&#xff1a; self.active_sh_degre…

自由学习记录(18)

动画事件的碰撞器触发 Physics 类的常用方法 RaycastHit hit; if (Physics.Raycast(origin, direction, out hit, maxDistance)) {Debug.Log("Hit: " hit.collider.name); } Physics.Raycast&#xff1a;从指定点向某个方向发射射线&#xff0c;检测是否与碰撞体…

[FE] React 初窥门径(四):React 组件的加载过程(render 阶段)

1. 回顾 前几篇文章中&#xff0c;我们采用了 VSCode 插件 CodeTour 来记录代码的执行过程&#xff0c; 并把相关的数据 .tour/ 放到了 github: thzt/react-tour 中。 截止到本文为之&#xff0c;我们总共记录了这些 code-tour&#xff0c; .tour/ ├── 2. 构建过程.tour ├─…

java毕业设计之基于Bootstrap的常州地方旅游管理系统的设计与实现(springboot)

项目简介 基于Bootstrap的常州地方旅游管理系统的设计与实现有下功能&#xff1a; 基于Bootstrap的常州地方旅游管理系统的设计与实现的主要使用者分为用户功能模块和管理员功能模块两大部分&#xff0c;用户可查看景点信息、景点资讯等&#xff0c;注册登录后可进行景点订票…

单链表OJ题(3):合并两个有序链表、链表分割、链表的回文结构

目录 一、合并两个有序链表 二、链表分割 三、链表的回文结构 u解题的总体思路&#xff1a; 合并两个有序链表&#xff1a;首先创建新链表的头节点&#xff08;哨兵位&#xff1a;本质上是占位子&#xff09;&#xff0c;为了减少一些判断情况&#xff0c;简化操作。然后我们…

为数据集而生的 SQL 控制台

随着数据集的使用量急剧增加&#xff0c;Hugging Face 社区已经变成了众多数据集默认存放的仓库。每月&#xff0c;海量数据集被上传到社区&#xff0c;这些数据集亟需有效的查询、过滤和发现。 Dataset Monthly Creations 每个月在 Hugging Face Hub 创建的数据集 我们现在非常…

简易了解Pytorch中的@ 和 * 运算符(附Demo)

目录 1. 基本知识2. 3. * 1. 基本知识 在 PyTorch 中&#xff0c; 和 * 运算符用于不同类型的数学运算&#xff0c;具体是矩阵乘法和逐元素乘法 基本知识 运算符功能适用场景示例矩阵乘法&#xff08;或点乘&#xff09;用于执行线性代数中的矩阵乘法C A B&#xff0c;其中…

JavaScript知识点梳理及案例实践

1. Date对象 创建Date对象 //方法1&#xff1a;不指定参数 var nowd1new Date(); console.log(nowd1.toLocaleString( )); //方法2&#xff1a;参数为日期字符串 var d2new Date("2004/3/20 11:12"); console.log(d2.toLocaleString( )); var d3new Date("04/…