达梦数据库 DMFLDR的使用

news2024/11/15 4:36:50

达梦的DMFLDR使用

  • 1.背景
  • 2.要求
  • 3.实验步骤
    • 3.1 参数简介
    • 3.2 控制文件
    • 3.3 数据文件编写
    • 3.4 创建表
    • 3.5 执行装载程序
    • 3.6 查看运行结果
    • 3.7 数据导出控制文件编写
    • 3.8 数据导出命令
    • 3.9 行列分隔符
  • 4.实验结论

1.背景

用户通过使用快速装载工具能够把按照一定格式排序的文本数据以简单、快速、高效的方式载入到 DM 数据库中,或把 DM 数据库中的数据按照一定格式载出到文本文件中。

2.要求

DMFLDR的学习,导出和导入的方法,快速配置方式,如何应用以及设计行列分隔符,通过举例和总结的方式提供学习报告。

3.实验步骤

3.1 参数简介

./dmfldr help
./dmfldr help
version: 03134284175-20240204-217741-10000
格式: ./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              转义符
DB2_MODE            兼容DB2模式
PRIORITY_ENCLOSE    DB2模式下, enclose优先级最高
EXPORT_MODE         MPP/DPC环境, 使用sql语句时的导出模式(0), 0: 普通模式 1: 快速模式, LOCAL方式连接
BAD_FILE_MODE       错误数据文件模式(0), 0: 普通模式 1: 纯数据模式
HELP                打印帮助信息

3.2 控制文件

控制文件 CONTROL 是启动 dmfldr 必须要指定的参数,用于指定数据文件中数据的格式。在数据载入时,dmfldr 根据控制文件指定的格式来解析数据文件;导出数据时,dmfldr 也会根据控制文件指定的列分隔符、行分隔符等生成数据文件。
dmfldr 控制文件的语法如下所示

[OPTIONS(
<id>=<value>
……
        )]
LOAD [DATA]
INFILE < <file_option>|<directory_option> >
[BADFILE <path_name>]
[APPEND|REPLACE|INSERT]
<into_table_clause>
<id> ::=参数
<value> ::=值
<file_option> ::= [LIST] <path_name> [<row_term_option>] [,<path_name>
[<row_term_option>]]
<directory_option> ::= DIRECTORY <path_name> [<row_term_option>]
<path_name> ::=文件地址
<row_term_option> ::=STR [X] <delimiter>
<into_table_clause> ::= <into_table_single>{<into_table_single>}
<into_table_single> ::=INTO TABLE [<schema>.]<tablename>
                        [EP <ep_option>]
                        [WHEN <field_conditions>]
                        [FIELDS [TERMINATED BY] [X] <delimiter>]
                        [<enclosed_option>]
                        [TRAILING NULLCOLS]
                        [<coldef_option>]
<schema> ::=模式名
<tablename> ::=表名
<ep_option> ::=(<ep_list>)
<ep_list> ::=整型数字列表,以逗号分隔
<field_conditions> ::= <field_condition>{ AND <field_condition>}
<field_condition> ::= [(] <cmp_exp><cmp_ops><cmp_data>[)]
<cmp_exp> ::= <colid> | (p1:p2)
<cmp_ops> ::= = | <> | !=
<cmp_data> ::= [X] '<字符串常量>' | BLANKS | WHITESPACE
<delimiter> ::= '<字符串常量>'
<coldef_option> ::= (<col_def>{ ,<col_def>})
<col_def> ::= <col_id> [FILLER][<property_option>][<dtype_option>][<fmt_option>][<term_option>][<enclosed_option>][<constant_option>][<fun_option>]
<col_id> ::= 列名
<property_option> ::= <position_option> | NULL
<position_option> ::= position(p1:p2) | position(p1) | position(*)
<dtype_option> ::= DATE | CHAR
<fmt_option> ::= FORMAT '<日期格式>'
<term_option> ::= TERMINATED [BY] <wx_option>
<wx_option> ::= WHITESPACE|[X] <delimiter>
<enclosed_option> ::= [OPTIONALLY] ENCLOSE [BY] [X] <delimiter>
<constant_option> ::= CONSTANT "<常量>"
<fun_option> ::= "<函数>"

3.3 数据文件编写

dep.txt

1|dep1|11|121
2|dep2|12|122
3|dep3|13|123
4|dep4|14|124
5|dep5|15|125
6|dep6|16|126
7|dep7|17|127
8|dep8|18|128
9|dep9|19|129

3.4 创建表

create table DEPARTMENTS
(
DEPARTMENT_ID  DEC(4) not null,
DEPARTMENT_NAME VARCHAR(30) not null,
MANAGER_ID      DEC(6),
LOCATION_ID    DEC(4),
constraint pk_dep primary key(DEPARTMENT_ID))

3.5 执行装载程序

dmfldr.exe userid=SYSDBA/SYSDBA@localhost:5236 control='D:\dmdbms\dmfldr\dep.ctl'

在这里插入图片描述

3.6 查看运行结果

在这里插入图片描述

3.7 数据导出控制文件编写

dep_out.ctl

OPTIONS
(
SKIP = 0
ROWS = 50000
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE 'D:\dmdbms\dmfldr\dep_out.txt'
INTO TABLE DEPARTMENTS
FIELDS '|'
(
DEPARTMENT_ID,
DEPARTMENT_NAME,
MANAGER_ID,
LOCATION_ID
)

3.8 数据导出命令

dmfldr.exe userid=SYSDBA/SYSDBA@localhost:5236 control='D:\dmdbms\dmfldr\dep_out.ctl' mode='out'

在这里插入图片描述
在这里插入图片描述

3.9 行列分隔符

dmfldr参数中,ROW_SEPERATOR 行分隔符,FIELD_SEPERATOR 列分隔符,在数据载入时,dmfldr根据控制文件指定的格式来解析数据文件;导出数据时,dmfldr也会根据控制文件指定的列分隔符、行分隔符等生成数据文件。控制文件中还可以指定其他的一些dmfldr参数值。缺省列分隔符是|,行分隔符是回车。
ROW_SEPERATOR
指定行分隔符,分隔符额外指定 X 表示十六进制的分隔符,长度应小于 128。可选参数。
FIELD_SEPERATOR
指定列分隔符,分隔符额外指定 X 表示十六进制的分隔符,长度应小于 255。可选参数。
例如使用 FIELD_SEPERATOR 参数指定分隔符

dmfldr参数中,ROW_SEPERATOR 行分隔符,FIELD_SEPERATOR 列分隔符,在数据载入时,dmfldr根据控制文件指定的格式来解析数据文件;导出数据时,dmfldr也会根据控制文件指定的列分隔符、行分隔符等生成数据文件。控制文件中还可以指定其他的一些dmfldr参数值。缺省列分隔符是|,行分隔符是回车。
ROW_SEPERATOR
指定行分隔符,分隔符额外指定 X 表示十六进制的分隔符,长度应小于 128。可选参数。
FIELD_SEPERATOR
指定列分隔符,分隔符额外指定 X 表示十六进制的分隔符,长度应小于 255。可选参数。
例如使用 FIELD_SEPERATOR 参数指定分隔符

4.实验结论

在软硬件资源充裕的情景下,首选 dmfldr 工具,dmfldr 在一台机器上启动即可,独立完成快速装载任务,简单高效。
当进行数据载入时,dmfldr 客户端接收用户提交的命令与参数,分析控制文件与数据文件,将数据打包发送给服务器端的 dmfldr 模块,由 dmfldr 模块完成数据的真正装载工作。并分析服务器返回的消息,必要时根据用户参数指定生成日志文件与错误数据文件。
当进行数据载出时,dmfldr 客户端接收用户提交的命令与参数,分析控制文件,将用户要求转换成相应消息发送给服务器端的 dmfldr 模块。dmfldr 模块解析并打包需要导出的数据,发送给 dmfldr 客户端,客户端将数据写入指定的数据文件,必要时根据用户参数指定生成日志文件。

达梦社区地址 https://eco.dameng.com

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

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

相关文章

门店收银系统源码+同城即时零售多商户入驻商城源码

一、我们为什么要开发这个系统&#xff1f; 1. 商户经营现状 “腰尾部”商户&#xff0c;无小程序运营能力&#xff1b;自营私域商城流量渠道单一&#xff1b;无法和线下收银台打通&#xff0c;库存不同步&#xff0c;商品不同步&#xff0c;订单不同步&#xff1b; 2.平台服…

SpringBoot-application.properties为对象赋值

简单对象赋值 第一种方式 首先让该Bean交由Spring管理,然后加上ConfigurationProperties(prefix"前缀") <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId>&l…

PCIe学习笔记(19)

TLP Prefix&#xff08;前缀&#xff09;规则 以下规则适用于任何包含TLP Prefix的TLP: •对于任何TLP, TLP第0字节的Fmt[2:0]字段值为100b表示存在TLP Prefix, Type[4]位表示TLP Prefix的类型。 ◦Type[4]位的值为0b表示存在Local TLP Prefix ◦Type[4]位的值为1b表示存在…

一、Matlab基础

文章目录 一、Matlab界面二、Matlab窗口常用命令三、Matlab的数据类型3.1 数值类型3.2 字符和字符串3.3 逻辑类型3.4 函数句柄3.5 结构类型3.6 细胞数组 四、Matlab的运算符4.1 算术运算符4.2 关系运算符4.3 逻辑运算4.4 运算符优先级 五、Matlab的矩阵5.1 矩阵的建立5.2 矩阵的…

解决vscode连接远程服务器时一直要求输入密码的问题

今天在用vscode连接我的Linux服务器时&#xff0c;输入密码后并没有成功登录&#xff0c;而是不断的弹出密码输入框。如果有遇到相同问题的同学可以试试下面的方法 1.点击查看&#xff0c;打开命令面板 2.终止服务器 选中自己的服务器&#xff0c;然后会让你输入密码 3.重新登…

sqlserver一列转多行

文章目录 sqlserver一列转多行建表插入数据方式一方式二 sqlserver一列转多行 建表 CREATE TABLE [dbo].[MM_T_MATER]([fbillno] [NVARCHAR](50) NOT NULL,[fid] [INT] NOT NULL,[FCREATEDATE] [DATETIME] NOT NULL,[FDATE] [DATETIME] NOT NULL,[FPURCHASEORGID] [INT] NOT …

leetcode70_爬楼梯

思路 动态规划 爬到第n阶楼梯的方法数为&#xff1a;第n-1阶楼梯的方法数 第n-2阶楼梯的方法数 func climbStairs(n int) int {if n < 2 {return 1}dp : make([]int, n1)dp[1] 1dp[2] 2for i:3; i<n; i {dp[i] dp[i-1] dp[i-2]}return dp[n] }

C++分析哈希表

目录 哈希表 哈希表介绍 哈希表的数据插入和查找原理 哈希表的存放方法 开散列解决哈希冲突 思路 代码设计 结构设计 数据插入 数据查找 数据删除 闭散列解决哈希冲突 思路 代码设计 结构设计 数据插入 数据查找 数据删除 析构函数设计 比较key相等以及key…

Firefox滚动条在Win10和Win11下表现不一致问题?

文章目录 前言总结解决方法 前言 最近在写页面的时候发现一个非常有意思的事。Firefox滚动条在Win10和Win11下表现居然不一致。在网上几经查找资料&#xff0c; 终于找到原因所在。总结成下面的文章&#xff0c;加深印象也防止下次遇到。 总结 参考文章&#xff1a; Firefox…

淘宝天猫优惠券领取入口直达口令是什么?

词令是一款关键词口令直达工具&#xff1b;打开词令&#xff0c;输入口令「tb88」&#xff0c;搜索直达口令关联的目标淘宝优惠券领取入口。领取成功后&#xff0c;在下单购买默认使用领到的店铺优惠券享受券后价优惠。下面为您准备了图文教程 淘宝优惠券领取入口直达口令是什…

突破视觉界限:单目深度估计算法,智能无人系统的新视角

今天&#xff0c;为大家介绍一项新的SpireCV视觉感知技术——单目深度估计算法&#xff08;MDE, Monocular Depth Estimation&#xff09;。 什么是单目深度估计算法&#xff1f; 简单来说&#xff0c;单目深度估计是指通过单个摄像头获取的图像来估计场景中物体的深度信息。相…

打破老美垄断,潘展乐商业价值起飞

文&#xff5c;琥珀食酒社 作者 | 积溪 奥运会上的潘展乐 真是牛逼坏了 拿下男子100米自由游金牌 打破欧美长达近百年垄断 搞定男子4x100米混合泳金牌 终结了美国在这项目上 10年不败的神话 比赛前 美国选手对他爱答不理 招呼都不打 比赛后美国选手想套热乎 潘展乐…

【鸿蒙开发基础学习】UIAbility 组件启动模式

UIAbility 组件启动模式 UIAbility 的启动模式是指 UIAbility 实例在启动时的不同呈现状态。针对不同的业务场景&#xff0c;系统提供了三种启动模式&#xff1a; singleton&#xff08;单实例模式&#xff09;multiton&#xff08;多实例模式&#xff09;specified&#xff…

WordPress网站克隆:用户指南

在这个数字化时代&#xff0c;拥有自己的网站已经非常普遍了。不管是个人博客还是企业官网&#xff0c;WordPress都提供了便捷的建站方式。但是&#xff0c;有时候我们需要复制一个现有的网站&#xff0c;无论是为了测试新功能还是迁移到新服务器。那么&#xff0c;如何克隆一个…

2024年新能源汽车市场保有量创新高

2024年新能源汽车市场大爆发&#xff1a;渗透率飙升&#xff0c;保有量创新高&#xff0c;充电桩建设驶入快车道 随着2024年新能源汽车市场的持续繁荣&#xff0c;一场前所未有的绿色革命正在全球范围内加速推进。这一年&#xff0c;新能源汽车的渗透率不仅实现了质的飞跃&…

微软超高危漏洞“狂躁许可”安全通告,亚信安全ForCloud快速响应

今日&#xff0c;亚信安全CERT监控到安全社区研究人员发布安全通告&#xff0c;披露了微软“狂躁许可”漏洞(CVE-2024-38077)。该漏洞由于windows系统的远程桌面授权服务存在边界错误而导致。攻击者可以发送其精心制作的数据传递给应用程序&#xff0c;这可能引发基于堆的缓冲区…

Element学习(axios异步加载数据、案例操作)(5)

1、这次学习的是上次还未完成好的恶element案例&#xff0c;对列表数据的异步加载&#xff0c;并渲染展示。 ——>axios来发送异步请求 &#xff08;1&#xff09; &#xff08;2&#xff09;在vue当中安装axios &#xff08;注意在当前的项目目录&#xff0c;并且安装完之后…

JAVA—异常

认识异常&#xff0c;学会从报错信息中发现问题&#xff0c;解决问题。并学会构建自定义异常&#xff0c;提醒编程时注意 目录 1.认识异常 2.自定义异常 1.自定义运行时异常 2.自定义编译时异常 3.异常的处理 1.认识异常 异常就是代表程序出现的问题&#xff0c;用来查询B…

海思开发套件体验记录

DAY_01&#xff1a; 前一段时间&#xff0c;仰仗工作室的支持&#xff0c;有幸参加了华为海思社区举办的首批入选星闪开发者体验官活动&#xff01;&#xff01;&#xff01; 今天收到海思官方寄过来的海思星闪派开发套件啦&#xff01;&#xff0c;很开心&#xff0c;非常感谢…

VScode找python环境 (conda)

第一步 CtrlshiftP 第二步 框框里输入&#xff1a;Python:Select Interpreter