必须指定的参数:
USERID
=SYSDBA/SYSDBA@localhost:5236##
“
{mpp_type=local,inet_type=tcp}
”
可选参数:
CONTROL
=\’/home/opt/a.txt\’
(注意转义)
LOG=\’/path/path/xxx.log\’
NULL_STR=\’it is Null\’
SKIP=1
LOAD=100000
(最大行数,不设置就是全部)
CHARACTER_CODE=GBK
、
GBK18030
、
UTF-8
、
EUC_KR
、
SINGLE_BYTE
(导入不支持
single_byte
)
MODE
=IN
、
OUT
、
OUTORA
(导出
oracle
表,不支持大字段)、
LOCAL_FILE
(导入时不发送数
据,在本地写文件)
LOB_DIRECTORY=
目录(导出,或导入且
DIRECT=TRUE
时生效,指定大字段目录)
BLOB_TYPE=HEX
、
HEX_CHAR
(
DIRECT=FALSE
才生效)
BUFFER_NODE_SIZE=1024
(
MB
,默认
10
,读取文件缓冲区页大小)
LOG_SIZE=50
(
MB
,默认
1
,日志系统缓冲区节点大小)
READ_ROWS=100000
(每次读取的最大行数,默认
100000
,最大
2^26-10000
)
NULL_MODE=TRUE
(默认
FALSE
,
true
时,载入
NULL
处理为空,导出空值处理为
NULL
false
时,载入
NULL
处理为字符串,导出空值处理为空串)
TASK_THREAD_NUMBER=16
(处理用户数据的线程数,
1-128
,系统默认至少创建两个)
COMPRESS_FLAG=TRUE
(默认
FALSE
,是否压缩
BDTA
)
SILENT=TRUE
(默认
FASLE
,,指定是否静默装载)
OCI_DIRECTORY=
目录(
MODE
为
OUTORA
时才生效,指定
oracle oci
动态库目录)
DATA=
目录(数据文件目录;此参数优先级高于控制文件中指定的目录)
ENABLE_CLASS_TYPE=TRUE
(默认
FASLE
,制定是否以
BLOB
方式载入或导出
CLASS
类列数据)
SINGLE_HLDR=TRUE
(默认
FASLE
,是否使用单个
hldr
装载
huge
水平分区表)
TABLE=(
模式名
.)
表名(指定导入或导出的表名,指定了
SQL
或
SQLFILE
时无效)
ROW_SEPERATOR=
(长度小于
128
,指定行分隔符)
FILELD_SEPERATOR=
(长度小于
255
,指定列分隔符)
APPEND_OPTION=
(默认
0
,追加模式,可取值:
0
:
append
追加新纪录
1
:
replace
清空表再插入新纪录
2
:
insert
插入记录到空表,表非空报错)
LOB_AS_VARCHAR=TRUE
(默认
FASLE
,导入或导出时是否将
clob
视作
varchar
)
LOB_AS_VARCHAR_SIZE=10
(
MB
,
1-20
,默认
10
,
lob_as_varchar
为
true
时生效,视作
varchar
时
lob
数据的最大大小)
LOG_LEVEL=
(默认
3
,记录错误信息的级别,错误信息在
.log
,错误数据在
.bad
可选值:
0
:不记录错误信息和错误数据
1
:记录错误信息
2
:记录错误数据
3
:记录错误信息和错误数据
4
:仅输出到屏幕)
FLDR_INI
=
目录(
dmfldr.ini
路径,可在其中指定除
USERID
、
CONTROL
、
HELP
外的参数;此时
不考虑转义)
SEDF=\’b0x20\’
(指定被替换的字符列表,和
SEDT
一同使用,且一一对应)
SEDT
=\'zx\'
(指定用于替换的字符列表,和
SEDF
一同使用,且一一对应)
ESCAPE
=\'*\'
(指定转义字符,只能指定一个,导入时两个转义字符转换为一个,导出时反
之)
DB2_MODE=TRUE
(默认
FALSE
,
DB2
兼容模式)
PRIORITY_ENCLOSE=TRUE
(默认
FALSE
,
DB2
兼容模式下封闭符优先级是否高于行分割符,
DB2_MODE
开启才生效)
导入时生效:
BADFILE=\’/path/path/xxx.bad\’
ROWS=30000
(
DIRECT=FALSE
才生效,每次提交行数,默认
50000
)
DIRECT=FALSE
(默认
TRUE
,不检查约束直接对
b
树操作,
false
反之)
SET_IDENTITY=TRUE
(
DIRECT=TRUE
才生效,默认
FALSE
,不读取自增列,大多数情况下
FALSE
才是想要得到的效果)
SORTED=TRUE
(
DIRECT=TRUE
才生效,默认
FALSE
,声明数据已有序)
INDEX_OPTION=1/2/3
(
DIRECT=TRUE
才生效;
1
:装载时预排序,装载完成后刷新二级索引
2
:装载时不操作,装载完成后重建二级索引
3
:边装载边进行二级索引插入)
ERRORS=99999999
(最大容错数,默认
100
)
CLIENT_LOB=TRUE
(
DIRECT=TRUE
才生效,默认
FALSE
,声明大字段目录是否在客户端本地)
SEND_NODE_NUMBER=16
(发送节点的个数,默认
20,16-65535
)
BLDR_NUM=64
(
1-1024
,水平分区表子表同时最大装载数)
BDTA_SIZE=5000
(
100-10000
,装载批量)
FLUSH_FLAG=TRUE
(默认
FALSE
,指定提交数据时服务器是否需要提供可靠响应)
IGNORE_BATCH_ERRORS=TRUE
(默认
FALSE
,
DIRECT
为
FALSE
才生效,是否忽略错误并继续)
PARALLEL=TRUE
(
DIRET
为
TRUE
才生效,开启并行模式,无法开启并行的情况:
存在二级索引、没有自定义的聚簇索引、开启了逻辑日志或高级日志、装载表是
huge
表)
COMMIT_OPTION=1
(默认
0
,是否全部装载完后再提交)
IGNORE_AIMLESS_DATA=TRUE
(默认
FALSE
,忽略未找到对应分区的分区表数据)
RECONN=0
(默认
0
,最大
2^65535
,自动重连次数)
RECONN_TIME=5
(单位秒,默认
5
,
1-10000
,自动重连等待时间,
RECONN
不为
0
时才生效)
导出时生效:
LOB_FILE_NAME=xxx.lob
(导出大字段的文件名,位置用
LOB_DIRECTORY
指定)
SQL=”
语句
”
(导出自定义查询结果数据,语句打双引号)
SQLFILE=
目录(导出自定义结果的
sql
文件目录)
COLNAME_HEADING=TRUE
(默认
FALSE
,在导出文件中是否打印列名)
WIDTH=
12:30:10
(强制指定导出列数据宽度,每列间冒号隔开,从第一列起算,后续列依次)
MPP
专用参数:
MPP_CLIENT=FALSE
(默认
TRUE
,客户端分发模式,
false
本地分发模式)
SIGLE_FILE=TRUE
(默认
FALSE
,
DPC
也适用,导出才生效,指定导出文件是否为单个文件)
LAN_MODE=TRUE
(默认
FASLE
,
DPC
也适用,指定导入
/
导出数据是否使用局域网)
EP=(1,3,4)
(导入时且
DIRECT
为
TRUE
时才生效,
DPC
也适用,指定发送数据的站点)
Dmfldr.ini
文件格式:
OPTIONS(
MODE=’OUT’
SQL=”select * from dmhr.department;”
LOG=’/home/test/xxx.log’
DATA=’/home/test/aaa.txt’
)
Control 文件格式参考:
OPTIONS
(
SKIP=0
ROWS=50000
DIRECT=TRUE
INDEX_OPTION=2
)
LOAD DATA
INFILE ‘/opt/xxx/xxx.txt’ STR X ‘0A’ #
换行符,
0A
时
\n
,
0D0A
时
\r\n
BADFILE ‘/opt/data/xxx.bad’
INTO TABLE schema.table
FIELDS ‘|’
(
F1,
F2 DATE FORMAT ‘YYYY-MM-DD’,
F3 NULL, #
此列置空,忽略文件中数据
F4 “trim()”, #
去列前后空格
F5 TERMINATED BY WHITESPACE #
为此列指定列间分隔符为空格
whitespace
)
Dmfldr 性能相关参数:
BUFFER_NODE_SIZE
:读取文件缓冲区页大小,单词读取量大效率高,受内存限制
READ_ROWS
:单次读取行数过大时,可用
read_rows
限制,
fldr
会取二者间最小值
SEND_NODE_NUMBER
:发送节点个数,受内存限制
TSASK_THREAD_NUMBER
:载入处理数据线程数,
cpu
大于
8
核时刻设置大
BLDR_NUM
:水平分区表最大同时装载子表数,受内存限制
BDTA_SIZE
:处理批量,受内存、
cpu
限制,受网络影响小
INDEX_OPTION
:二级索引处理策略
载入前表中已有较多数据,设为
1
(不刷新而预排序)
载入前没有或很少数据,设为
2
(不刷新而重建)
原有数据量远大于插入数据量,设为
3
(边插入边更新)
Dmfldr 使用限制:
不能装载数据的表有:
临时表或外部表、
系统表、
带有位图索引的表、
带有函数索引的表、
带有全文索引的表、
DCP
代理、
DPC
下,带有全局索引的表
约束与报错:
非空:报错,不插入
聚簇:报错,不插入
唯一:报错,插入(唯一约束仍有效,关联的唯一索引将失效)
外键:不报错,插入
Check
:不报错,插入
达梦在线服务平台:
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台