dmfldr 入门

本章简单介绍如何启动 dmfldr 和 dmfldr 支持的参数简介。通过阅读本章,读者可以了解 dmfldr 通过各参数能提供的各项功能,不过要想熟练灵活地使用 dmfldr 还需要继续阅读下一章。

2.1 启动 dmfldr

安装好 DM 数据库管理系统后,在安装目录的“bin”子目录下可找到 dmfldr 执行文件。

启动操作系统的命令行窗口,进入“dmfldr”所在目录,可以准备启动 dmfldr 工具了。

dmfldr 的使用必须指定必要的参数,否则工具会报错“无效的参数个数”并退出。为 dmfldr 指定参数的格式为:

dmfldr keyword=value [keyword=value ...]

例如:

dmfldr USERID=SYSDBA/SYSDBA CONTROL='c:\fldr.ctl'

如例子所示,USERID 和 CONTROL 是启动 dmfldr 必须要指定的参数,且 USERID 必须是第一个参数,CONTROL 必须是第二个参数。

2.2 查看 dmfldr 参数

dmfldr 使用较为灵活,参数较多,用户可以使用“dmfldr help”查看各参数的简单信息。

dmfldr help

格式: DMFLDR KEYWORD=value

例程: DMFLDR SYSDBA/SYSDBA CONTROL='c:\fldr.ctl'

USERID 必须是命令行中的第一个参数

CONTROL 必须是命令行中的第二个参数

字符串类型参数必须以引号封闭

关键字 说明(默认值)

-----------------------------------------------------------------------------

USERID 				数据库的连接信息

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, GB18030,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 	读入文件缓冲区的大小 (10),有效值范围1~2048

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环境,是否只生成单个数据文件(FALSE)

LAN_MODE 			MPP环境,是否以内网模式装载数据(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水平分区表 (FALSE)

EP 					指定需要发送数据的站点序号列表,仅向MPP环境导入数据时有效

PARALLEL			是否开启并行装载(FALSE)

SQL 				使用自定义查询语句,仅导出模式有效

HELP 				打印帮助信息

2.3 dmfldr参数简介

注意

USERID必须是第一个参数,CONTROL必须是第二个参数,这两个参数都不能省略;其余参数均为可选参数,可以不指定,指定时也无顺序要求。

  • USERID

USERID 用于指定数据库的连接信息。必选参数,且必须位于参数位置的第一个。

语法如下:

{{<username>[/<password>]} | /}[@<connect_identifier>][] [<os_auth>] <connect_identifier> ::=<svc_name> | {<host>[:<port>]} | <unixsocket_file>

<option>::= ##{ <exetend_option>=<value>{,<extend_option>=<value>} } --此行外层{}为了封装参数之用,需要出现在语法中

<os_auth>::= AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}

{{*<*USERNAME>[/*<*password>]} | /}:*<*username>[/*<*password>]为用户名和密码。普通登录方式时用户名必写,密码缺省为SYSDBA。/表示采用操作系统身份验证方式登录,此时无需指定用户名和密码,即使指定也会被忽略。

<svc_name>:服务名。

*<*host>[:*<*port>]:服务器IP地址和端口号。缺省情况下默认为本地服务器和端口号 LOCALHOST:5236。当服务器为本机时,SERVER:PORT 可直接写 LOCALHOST。当连接其他服务器时,SERVER:PORT 需写上 IP 地址和 PORTNUM,例如:192.168.0.248:8888。

<unixsocket_file>:专门用于在LINUX系统中,当服务器与客户端之间使用UNIXSOCETUNIX-IPC方式通信时,指定客户端连接的UNIXSOCKET路径文件名。必须和inet_type=UNIXSOCKET同时使用。例如:

./dmfldr SYSDBA/SYSDBA@/home/test/foo.sock##{inet_type=UNIXSOCKET} control=\'/home/test/dmfldr_test.ctrl\'

*<*option>为扩展选项,用法为 <exetend_option>=*<*value>。所有 value 值不能包含空格,不能包含特殊的符号,如引号等。书写扩展选项时需要用引号##"{ }"进行封装,例如:##"{inet_type=tcp,mpp_type=local}"。

现支持的扩展选项如下:

extend_option value
mpp_type MPP登录属性,此属性的设置对非MPP系统没有影响。取值GLOBAL和LOCAL,默认为GLOBAL。GLOBAL表示MPP环境下建立的会话为全局会话,对数据库的导入导出操作在所有节点进行;LOCAL表示MPP环境下建立的会话为本地会话,对数据库的导入导出操作只在本地节点进行
inet_type 网络通信协议类型。取值UDP/TCP/IPC/RDMA/UNIXSOCKET。缺省为TCP
ssl_path 通信加密的SSL数字证书路径,缺省为不使用加密。数字证书路径由用户自己创建,将相应的证书需放入该文件夹中。其中服务器证书必须与 dmserver 目录同级,客户端目录可以任意设置
ssl_pwd 通信加密的SSL数字证书密码。和ssl_path一起使用

例如,一个包含扩展选项的、完整的例子。

./dmfldr SYSDBA/SYSDBA@192.168.1.64:5236##"{mpp_type=local,inet_type=tcp}" control=\'/home/test/dmfldr_test.ctrl\' log=\'/home/test/log/fldr.log\'

SSLPATH@SSLPWD:通信加密的SSL数字证书路径和密码,缺省为不使用加密。数字证书路径由用户自己创建,将相应的证书需放入该文件夹中。其中服务器证书必须与 dmserver 目录同级,客户端目录可以任意设置。

AS <SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO>:操作系统身份验证。用户可以通过将操作系统用户加入到操作系统的 dmdba|dmsso|dmauditor 用户组来使用操作系统用户登录数据库,分别对应数据库的 SYSDBA|SYSSSO|SYSAUDITOR 用户。还可以通过将操作系统用户加入到操作系统的 dmusers 用户组来使用操作系统用户登录数据库,对应数据库的同名用户。AUTO 表示按顺序自动匹配数据库用户类型。操作系统身份验证无需输入用户名和密码,若输入用户名和密码将会被忽略。操作系统身份验证的其他说明可参考《DM8 安全管理》2.3.1节。

  • CONTROL

控制文件的路径,字符串类型。控制文件用于指定数据文件中数据的格式,在数据载入时,dmfldr 根据控制文件指定的格式来解析数据文件;导出数据时,dmfldr 也会根据控制文件指定的列分隔符、行分隔符等生成数据文件。控制文件中还可以指定其他的一些dmfldr参数值。对控制文件格式的详细介绍见下一章。

此参数为必选参数且必须位于参数位置的第二个。

  • LOG

dmfldr 的日志文件路径,字符串类型。默认日志文件名为 fldr.log。日志文件记录了 dmfldr 运行过程中的工作信息、错误信息以及统计信息。

用户也可以通过设置控制文件中的 OPTIONS 选项来指定日志路径,参数值的优先选择顺序为先 OPTIONS 选项,后参数选项。

此参数为可选参数。

  • NULL_STR

指定数据文件中 NULL 值的表示字符串,字符串类型,默认忽略此参数。

若设置了 NULL_STR,则此参数值将成为数据文件中 NULL 值的唯一表示方式。NULL_STR 区分字符串大小写,并且长度不允许超过 128 个字节。

用户可以通过控制文件中的 OPTIONS 选项来设置 NULL_STR 的值,参数值的优先顺序为先 OPTIONS 选项,后参数选项。

此参数为可选参数。

  • BADFILE

记录错误数据的文件路径,字符串类型。默认的错误文件名为fldr.bad。文件记录的信息为数据文件中存在格式错误的行数据以及转换出错的行数据。

用户也可以通过设置控制文件中的OPTIONS选项来指定错误数据文件的路径,同时也可以在控制文件的 LOAD 节点中指定错误数据文件的路径。BADFILE 选项的最终值的优先选择顺序为 LOAD 节点选项,OPTIONS 选项,参数选项,用户可以同时对三种设置方式中的一个或多个设置,但最终的值只取一个。

此参数为可选参数,作用于 MODE 为 IN 的情况下,当 MODE 为 OUT 时无效。

  • SKIP

跳过数据文件起始的逻辑行数,整型数值。默认的跳过起始行数为 0 行。如果用户指定了多个文件,且起始文件中的行数不足 SKIP 所指定的行数,则 dmfldr 工具会扫描下一个文件直至累加的行数等于 SKIP 所设置的行数或者所有文件都已扫描结束。

用户也可以通过设置控制文件中的 OPTIONS 选项来指定 SKIP 参数,参数值的优先选择顺序为先 OPTIONS 选项,后参数选项。

  • LOAD

装载的最大行数,整型数值。默认的最大装载行数为数据文件中的所有行数。LOAD 指定的值不包括 SKIP 指定的跳过的行数。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 LOAD 的值,参数值的优先选择顺序为先 OPTIONS 选项,后参数选项。

  • ROWS

每次提交的行数,整形数值。默认的提交行数为 50000 行。提交行数的值表示提交到服务器的行数,并不一定代表按照数据文件中的数据顺序的行数。用户可以根据实际情况调整每次提交的行数,以达到性能的最佳点。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 ROWS 值,参数值的优先选择顺序为先 OPTIONS 选项,后参数选项。

此参数为可选参数,作用于 MODE 为 IN 且 DIRECT 为 FALSE 的情况下,其他情况下无效。

  • DIRECT

数据装载方式,布尔值。默认为 TRUE。DIRECT 指定了装载的方式,当为 TRUE 时,dmfldr 选择快速的载入模式,通过数据的转换和数据的封装直接对B树进行操作,省去了普通插入方式下各个操作符之间的跳转,提升了装载的效率,但对于约束的检查等由用户保证,dmfldr 将不处理有约束冲突的数据。当为 FALSE 时,dmfldr 选择普通的插入方式装载数据,可以保证数据的正确性和约束的有效性,效率比前者要低。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 DIRECT 值,参数值的优先选择顺序为先 OPTIONS 选项,后参数选项。

此参数为可选参数,作用于 MODE 为 IN 的情况下,当 MODE 为 OUT 时无效。

  • SET_IDENTITY

设置自增列选项,布尔值。默认为 FALSE。如果指定 SET_IDENTITY 选项值为 TRUE,则dmfldr将把从数据文件中读取的自增列值作为目标值插入数据库表中,用户应当保证每一行的自增列的值符合自增列的规则。如果SET_IDENTITY选项值设置为 FALSE,则 dmfldr 将忽略数据文件中对应自增列的值,服务器将自动生成自增列的值插入每一行的对应列。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 SET_IDENTITY 的值,参数值的优先选择顺序为先 OPTIONS 选项,后参数选项。

此参数为可选参数,作用于 MODE 为 IN 且 DIRECT 为 TRUE 的情况下,当 MODE 为 OUT 或 DIRECT 为 FALSE 时无效。

  • SORTED

数据是否已经按照聚集索引排序,布尔值。默认为 FALSE。如果设置为TRUE,则用户必须保证数据已按照聚集索引排序完成,并且如果表中存在数据,需要插入的数据索引值要比表中数据的索引值大,服务器在做插入操作时顺序进行插入。如果设置为 FALSE,则服务器对于每条记录进行定位插入。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 SORTED 的值,参数值的优先选择顺序为先 OPTIONS 选项,后参数选项。

此参数为可选参数,作用于 MODE 为 IN 且 DIRECT 为 TRUE 的情况下,对于其他情况此参数无效。

  • INDEX_OPTION

索引的设置选项,整形数值。默认为 1。INDEX_OPTION 的可选项有 1、2 和 3。1代表服务器装载数据时先不刷新二级索引,而是将新数据按照索引预先排序,在装载完成后,再将排好序的数据插入索引;2代表服务器在快速装载过程中不刷新二级索引数据,只在装载完成时重建所有二级索引;3 代表服务器使用追加模式来进行二级索引的插入,在数据装载的过程中,同时进行二级索引的插入。

用户也可以通过设置控制文件中的OPTIONS选项来设置INDEX_OPTION的值,参数值的优先选择顺序为线OPTIONS选项,后参数选项。

此参数为可选参数,作用于MODE为IN且DIRECT为TRUE的情况下,对于其他情况此参数无效。

  • ERRORS

最大的容错个数,整形数值。取值范围为 [0,4294967295],默认为 100。当dmfldr在插入过程中出现错误的个数超过了 ERRORS 所设置的数目,则 dmfldr 会停止载入,当前时间点的所有正确数据将会被提交到服务器。如果载入过程中不允许出现错误则可以设置 ERRORS 为 0,如果允许所有的错误出现,则可以设置 ERRORS 为一个非常大的数。ERRORS 所统计的错误包含在数据转换和数据插入过程中所产生的数据错误。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 ERRORS 的值,参数值的优先选择顺序为先 OPTIONS 选项,后参数选项。

此参数为可选参数,作用于 MODE 为 IN 的情况下,当 MODE 为 OUT 时无效。

  • CHARACTER_CODE

数据文件中数据的编码格式,字符串类型。默认为 GBK。CHARACTER_CODE的可选项有GBK、GB18080、UTF-8、SINGLE_BYTE 和 EUC-KR 五种:GBK 和 GB18030 对应中文编码;UTF-8 对应 UTF-8 国际编码;SINGLE_BYTE 对应单字节字符编码;EUC-KR 对应韩文字符集。

在 MODE 为 IN 的情况下,指定编码格式为 SINGLE_BYTE 时,dmfldr将不做字符完整性检查,按单字节顺序读取每个字符。指定编码格式为 GBK、GB18030 或 UTF-8 时,dmfldr 将对每一个字符做字符的完整性检查,确保数据的正确性。

用户在使用 dmfldr 时可以根据不同的数据文件调整编码的格式确保装载的正确性,同时如果可以确保数据文件中的数据为单字节字符,则指定 SINGLE_BYTE 的载入效率将优于指定其他字符集的情况。

当 MODE 为非 IN 时,不支持 SINGLE_BYTE。

用户也可以通过指定控制文件中的 OPTIONS 选项来设置 CHARACTER_CODE 的值,参数值的优先选择顺序为先 OPTIONS 选项,后参数选项。

  • MODE

dmfldr 的装载模式,字符串类型。默认值为 IN。MODE 的可选项有 IN、OUT 和 OUTORA 三种。

IN模式指从数据文件中将数据装载入数据库,这种模式下控制文件的格式对应为数据文件中现有数据的格式;OUT模式指从数据库中将数据导出到数据文件,这种模式下控制文件所指定的格式为数据存放在数据文件中的格式。需要说明的是在 OUT 模式下,如果指定了多个数据文件,则 dmfldr 最终只会将数据写入第一个数据文件。视图对象只支持导出,不支持导入。

OUT 模式下的控制文件与IN模式下的控制文件格式相同,用户可以通过使用同一个文件进行载入和导出数据。

OUTORA 模式表示导出 ORACLE 表的数据,此模式下暂不支持带有大字段表的导出。

用户也可以通过指定控制文件中的OPTIONS选项来设置MODE的值,参数值的优先选择顺序为先OPTIONS选项,后参数选项。

  • CLIENT_LOB

指明 LOB_DIRECTORY 表示的目录是否是客户端本地目录,布尔类型,默认值为 FALSE。

CLIENT_LOB 仅在 MODE 为 IN 且 DIRECT 为 TRUE 时有效,指明在载入大字段对象数据时,LOB_DIRECTORY 参数指定的目录是否是客户端本地目录。若为 TRUE,表示目录为客户端本地目录;若为 FALSE,表示目录为 DM 服务器所在主库的目录。

  • LOB_DIRECTORY

指明 dmfldr 使用的大字段数据存放的目录,字符串类型。

当 MODE 为 OUT 时,dmfldr 生成大字段对应的数据文件,文件名由 LOB_FILE_NAME 指定,并存放于 LOB_DIRECTORY 指定的目录,如果未指定 LOB_DIRECTORY 则存放于指定的导出数据文件同一目录。对于 MODE 为 OUT 的情况,此参数为可选参数。

当 MODE 为 IN 且 DIRECT 为 TRUE 时,此时数据载入若涉及到大字段对象,需要用户指定大字段数据文件。若 CLIENT_LOB为TRUE,LOB_DIRECTORY 应指定大字段数据文件所在的客户端本地目录;若 CLIENT_LOB 为 FALSE,用户必须先把相关文件传送到 DM 服务器所在主库,然后使用 LOB_DIRECTORY 指明存放目录。此时此参数为必选参数。

当 MODE 为 IN 且 DIRECT 为 FALSE 时,此参数无效。

用户也可以通过指定控制文件中的 OPTIONS 选项来设置 LOB_DIRECTORY 的值,参数值的优先顺序为先 OPTIONS 选项,后参数选项。

  • LOB_FILE_NAME

指明 dmfldr 导出大字段数据的文件名,字符串类型,默认为 dmfldr.lob。

当 MODE 为 OUT 时,dmfldr生成大字段对应的数据文件名由 LOB_FILE_NAME 指定,若未指定默认为 dmfldr.lob,文件存放于 LOB_DIRECTORY 指定的目录。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 LOB_FILE_NAME 的值,参数值的优先选择顺序为先 OPTIONS 选项,后参数选项。

此参数为可选参数,作用于 MODE 为 OUT 的情况下,当 MODE 为 IN 时无效。

  • BLOB_TYPE

指定 BLOB 数据值的实际类型,字符串类型。可选项为 HEX 表示值为十六进制,HEX_CHAR 表示值为十六进制字符,默认为 HEX_CHAR。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 BLOB_TYPE 的值,参数值的优先顺序为先 OPTIONS 选项,后参数选项。

此参数为可选参数,只在DIRECT参数为FALSE的情况下有效。

  • BUFFER_NODE_SIZE

指定读取文件缓冲区页大小,整数类型,单位为 MB,范围为 1~2048,默认为 10。

BUFFER_NODE_SIZE 的值越大,缓冲区的页越大,每次读取的数据就越多,每次发送到服务器的数据也就越多,效率越高。但其大小受 dmfldr 客户端内存大小限制。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 BUFFER_NODE_SIZE 的值,参数值的优先顺序为先 OPTIONS 选项,后参数选项。

  • READ_ROWS

指定读取缓冲区每次读取的最大行数,整数类型,范围为 0~(226-10000)默认为100000。

在某些情况下,1MB 的 BUFFER_NODE_SIZE 读入的数据行数很大,而后续操作处理不了这么大的行数,此时可以用 READ_ROWS 来限制处理的行数。dmfldr 取 READ_ROWS 和 BUFFER_NODE_SIZE 中较小的值作为一次处理的行数。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 READ_ROWS 的值,参数值的优先顺序为先 OPTIONS 选项,后参数选项。

  • NULL_MODE

指定载入和导出数据时对NULL字符串和空值的处理方式,布尔类型,默认为 FALSE。

若 NULL_MODE 为 TRUE,数据载入时将 NULL 字符串处理为空值,数据导出时则空值处理为 NULL 字符串;若设置为 FALSE,数据载入时将 NULL 字符串处理为字符串,数据导出时将空值处理为空串。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 NULL_MODE 的值,参数值的优先顺序为先 OPTIONS 选项,后参数选项。

  • SEND_NODE_NUMBER

指定 dmfldr 在数据载入时发送节点的个数,整数类型,范围为 16~65535,默认有 20 个数据节点。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 SEND_NODE_NUMBER 的值,参数值的优先顺序为先 OPTIONS 选项,后参数选项。

此参数为可选参数,只在 MODE 为 IN 的情况下有效。

  • TASK_THREAD_NUMBER

指定 dmfldr 在数据载入时处理用户数据的线程数目,整数类型,范围为 1~128。默认情况下,dmfldr 将该参数值设为系统 CPU 的个数,但无论设定值是多少,dmfldr 至少会创建 2 个任务线程。在多核 CPU 环境下,增大 TASK_THREAD_NUMBER 值可以提升 dmfldr 装载性能。

注意

在导出模式下,当TASK_THREAD_NUMBER设置为大于16而小于128时,dmfldr不会报错,但会将TASK_THREAD_NUMBER自动置为16。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 TASK_THREAD_NUMBER 的值,参数值的优先顺序为先 OPTIONS 选项,后参数选项。

  • BLDR_NUM

水平分区表装载时,指定服务器 BLDR 的最大个数,整数类型,范围为 1~1024,默认为 64。

服务器的 BLDR 保存水平分区子表相关信息,BLDR_NUM 的设置也就指定了服务器能同时载入的水平分区子表的个数。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 BLDR_NUM 的值,参数值的优先顺序为先 OPTIONS 选项,后参数选项。

此参数为可选参数,作用于 MODE 为 IN 的情况下,当 MODE 为 OUT 时无效。

  • BDTA_SIZE

BDTA(Batch DaTA)的大小,整数类型,范围为100~10000,默认为 5000。

BDTA代表DM数据库批量数据处理机制中一个批量,在内存、CPU 允许的条件下,增大 BDTA_SIZE 能加快装载速度;在网络是装载性能瓶颈时,增大 BDTA_SIZE 影响不大。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 BDTA_SIZE 的值,参数值的优先顺序为先 OPTIONS 选项,后参数选项。

此参数为可选参数,作用于 MODE 为 IN 的情况下,当 MODE 为 OUT 时无效。

  • COMPRESS_FLAG

指定是否压缩 BDTA,布尔类型,默认为 FALSE。

压缩 BDTA 能节省网络带宽,但同时也会加重 CPU 的负担,用户应根据具体应用情况考虑是否制定压缩。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 COMPRESS_FLAG 的值,参数值的优先顺序为先 OPTIONS 选项,后参数选项。

  • MPP_CLIENT

指定当服务器环境为 MPP 环境时 dmfldr 的数据装载模式,布尔类型,默认为 TRUE。

当服务器环境为 MPP 环境时,若 MPP_CLIENT为TRUE,为客户端分发模式,数据在 dmfldr 客户端分发好后直接往指定站点发送数据;若MPP_CLIENT为FALSE,为本地分发模式,dmfldr 客户端将数据全部发往连接的 MPP EP 站点。

MPP环境下要配置 dmmal.ini 文件中的 MAL_INST_HOST 和 MAL_INST_PORT 参数。

用户也可以通过设置控制文件中的 OPTIONS 选项来设置 MPP_CLIENT 的值,参数值的优先顺序为先 OPTIONS 选项,后参数选项。

此参数只有当服务器环境为 MPP 环境时才有效。

  • SINGLE_FILE

指定当服务器环境为 MPP 环境时,dmfldr 的导出数据文件是否为单个文件,布尔类型,默认为 FALSE。

此参数只在 MPP 环境下且 MODE 为 OUT 时有效。参数值为 TRUE 表示仅生成一个数据导出文件,MPP 各个站点的数据将导出到同一个数据文件;值为FALSE表示可以生成多个数据文件,每一个 MPP 站点都有专门的数据文件接收该站点的数据。

用户也可以通过设置控制文件中的 OPTION 选项来设置 SINGLE_FILE 的值,参数值的优先顺序为先 OPTION 选项,后参数选项。

  • LAN_MODE

指定当服务器环境为 MPP 环境时,dmfldr导入/导出数据是否使用局域网,布尔类型,默认为 FALSE。

此参数只在 MPP 环境下有效。值为 TRUE 表示使用局域网,此时服务器的 MAL 系统必须配置了局域网 IP,否则dmfldr依然采用服务器对外服务的外网 IP;值为 FALSE 表示不使用局域网。

用户也可以通过设置控制文件中的 OPTION 选项来设置LAN_MODE的值,参数值的优先顺序为先 OPTION 选项,后参数选项。

  • UNREP_CHAR_MODE

指定是否将不完整的字符用“*”替换。1是,0否,默认为0。

设置为1时,dmfldr装载过程中遇到包含不完整字符的数据时,将用"*"替换不完整的字符;为0时,该行数据可能会被丢弃。

用户可以通过设置控制文件中的OPTIONS选项来设置UNREP_CHAR_MODE的值,参数值的优先顺序为先OPTIONS选项,后参数选项。

  • SILENT

指定是否以静默方式进行数据装载,布尔类型,默认为FALSE。

当设置为TRUE时,dmfldr装载过程中将忽略反馈式的消息,例如装载进度提示信息、错误信息等,但仍然会在装载的开始和结束阶段打印一些静态/统计信息。静默方式只作于客户端的屏幕打印,dmfldr日志依然会完整地记录装载过程中的详细信息。

用户可以通过设置控制文件中的OPTIONS选项来设置SILENT的值,参数值的优先顺序为先OPTIONS选项,后参数选项

  • OCI_DIRECTORY

指定ORACLE OCI动态库所在的目录,字符串类型。

该参数与MODE参数配合使用,当MODE指定为OUTORA时,使用OCI_DIRECTORY指定OCI的动态库来构建导出环境。

用户也可以通过设置控制文件中的OPTIONS选项来设置OCI_DIRECTORY的值,参数值的优先顺序为先OPTIONS选项,后参数选项。

  • DATA

指定数据文件路径,字符串类型。

一般情况下数据文件路径在控制文件中指定。DATA参数值的优先顺序为先控制文件,后参数选项。如果控制文件中数据文件路径指定为‘*’,在命令行通过DATA参数指定数据文件路径,DATA所指定的文件路径会替换‘*’。

  • ENABLE_CLASS_TYPE

指定是否以BLOB方式载入或导出CLASS类型列数据,布尔类型,默认为FALSE。

CLASS类型是DM数据库服务器内部实现的数据类型,实际以BLOB类型存储。如果通过交互式工具或DM提供的接口等正常途径创建的CLASS类型数据,内部会转换成BLOB存储。而通过dmfldr直接导CLASS数据,没有进行转换,有可能出现载入的大对象数据无法转换成对应的CLASS类型。因此,当将ENAME_CLASS_TYPE设为TRUE时,用户要保证对应的BLOB数据能正确转换成对应的CLASS类型。

用户也可以通过设置控制文件中的OPTIONS选项来设置ENAME_CLASS_TYPE的值,参数值的优先顺序为先OPTIONS选项,后参数选项。

  • FLUSH_FLAG

指定提交数据时服务器的处理方式,布尔类型,默认为FALSE。

该参数用于dmfldr向服务器发送commit请求时,是否要求服务器提供可靠的服务响应,若设置为TRUE,则服务器会等数据写入磁盘后才将响应结果返回给dmfldr,此种方式会降低数据装载的效率,但提供可靠的服务,不存在数据丢失的情况;若为FALSE,则服务器在确认数据正确无误后便将响应结果返回,随后再写入磁盘,此种方式装载效率高,但若遇到掉电、机器故障、服务器崩溃等灾难性情况下,有可能会导致数据来不及写入磁盘而导致数据丢失。

用户可以通过设置控制文件中的OPTIONS选项来设置FLUSH_FLAG的值,参数选项优先顺序为OPTIONS选项,后参数选项。

此参数为可选参数,作用于MODE为IN的情况下,当MODE为OUT时无效。

  • SINGLE_HLDR_HP

是否使用单个HLDR装载HUGE水平分区表主表。取值TRUE或FALSE,默认值为FALSE。TRUE表示使用单个HLDR装载HUGE水平分区表主表。FALSE表示装载涉及到的每个叶子子表都各使用一个HLDR。

HLDR是服务器端装载HUGE表时用到的处理装置。SINGLE_HLDR_HP的设置相当于指定了服务器装载HUGE水平分区主表时可以使用资源的模式。

TRUE的方式更节约空间,FALSE的方式装载速度更快,用户需要根据自己得需要权衡哪种方式更适合自己。

  • IGNORE_BATCH_ERRORS

指定用户在数据装载过程中遇到数据错误时,是否忽略错误继续装载,还是报错返回,布尔类型,默认为FALSE。

该参数只在DIRECT为FALSE时有效。在普通数据装载方式下,以绑定插入的方式向服务器发送数据,服务器检查IGNORE_BATCH_ERRORS参数,发现为TRUE时,将处理所有接受到的数据,如果有不合要求的数据,服务器保存该数据的错误信息,直到当前批次所有数据处理完毕后,再将执行的结果返回dmfldr,dmfldr根据服务器返回的错误信息向错误数据文件写入错误数据。当IGNORE_BATCH_ERRORS参数值为FALSE时,服务器一旦遇到不合要求的数据,则终止当前批次数据的装载,向dmfldr返回错误信息,dmfldr则直接废弃当前批次的所有数据。

用户可以通过设置控制文件中的OPTIONS选项来设置IGNORE_BATCH_ERRORS的值,参数选项优先顺序为OPTIONS选项,后参数选项。

此参数为可选参数,作用于MODE为IN且DIRECT为FALSE的情况下,当MODE为OUT时无效。

  • EP

指定dmfldr只能向指定的MPP站点发送数据,对于其他站点的数据直接丢弃。

该参数仅在MPP环境有效,dmfldr只能向EP指定的站点上的表上锁并发送数据,其他站点的表操作与其无关。需要注意的是,指定EP方式对于随机分布表无效,并且dmfldr当前连接站点的数据发送不能由其他dmfldr客户端发送,换言之,客户端A连接EP1,客户端B连接EP2,那么EP1的表数据只能有A来发送,不能由B发送,否则会导致锁等待或锁超时错误。

用户可以通过设置控制文件中的OPTIONS选项来设置EP的值,参数选项优先顺序为OPTIONS选项,后参数选项。

此参数为可选参数,在MODE为IN且direct为TRUE的情况下有效。

  • PARALLEL

dmfldr向服务器导入数据时,是否开启并行模式。

开启并行参数后,可以运行多个用户同时向同一张表装载数据,此模式可以充分利用客户端的数据处理能力,服务器接收到各个客户端发送过来的数据后,再进行统一的数据处理和刷盘。若存在以下情况,并行参数不可开启:

  1. 装载表存在二级索引;
  2. 装载表没有自定义的聚集索引;
  3. 装载表开启了逻辑日志或者高级日志;
  4. 装载表为列存储表(HUGE表)。

用户可以通过设置控制文件中的OPTIONS选项来设置PARALLEL的值,参数选项优先顺序为OPTIONS选项,后参数选项。

此参数为可选参数,在MODE为IN且direct为TRUE的情况下有效。

  • SQL

用户指定SQL查询语句,用于导出自定义查询结果数据,仅导出模式有效。

自定义SQL查询语句会将SQL语句发送到服务器进行分析执行,若发现SQL语句不是查询语句,dmfldr将报错返回。SQL语句可以实现用户的个性化数据导出需要,可以选择需要导出的列,需要过滤的结果。

用户可在控制文件中设置此参数值,命令行中难以正确设置此参数,因为一般SQL语句中都含有空格,而命令行解析参数是以空格作为分隔符的,因此完整的SQL语句可能会被错误的分割。

此参数为可选参数,在MODE为OUT的情况下有效。

  • HELP

获取帮助信息。

微信扫码
分享文档
扫一扫
联系客服