使用CPYFRMIMPF把以del格式的大数据拷贝到IBM i上的方法

文章结合作者的工作需求,以在 IBM i 上的性能">测试数据拷贝为例,探讨了使用 CPYFRMIMPF 把以 del 格式的大数据拷贝到 IBMi 上的方法,并对 LOB 数据的处理、提高拷贝效率等问题进行了探讨。

IBM i(以前称作 OS400,i5 OS 等)是一个集成性操作系统,其最大的特点就是系统自身内嵌了数据库 DB2。操作系统本身使用到了 DB2 一些功能和特性,而 DB2 也用到了系统本身的底层功能。正因为操作系统与数据库的这种紧密耦合关系,使得 IBM i 在零售领域、金融领域等具有很好的表现。

作者在实际工作过程中,需要搭建客户的模拟数据环境及购物场景,即测试环境需要包含大量的产品、促销等信息,然后模拟大量用户并发的访问商店以及购物,进而进行性能测试工作。其中模拟数据的载入是性能测试的前提条件。测试数据由专门的工具生成,数据本身可以导出为 SQL 文件或者 DEL 文件的格式。SQL 文件可以直接通过 db2 -tf 的方式导入到数据库当中,但是处理效率低下,需要花费较多的时间导入测试数据;DEL 文件格式的数据具有较好的处理效率,在 DB2 LUW 版本当中,可以使用类似于如清单 1 的命令将数据拷贝到数据库当中:

清单 1. 使用 LOAD 命令导入数据

load from PX_POLICY.del of del modified by chardel` insert into PX_POLICY("PX_POLICY_ID","STOREENT_ID","STATUS", "NAME","IMPLCLS","XMLPARAM","O
PTCOUNTER");

但是 DB2 for i 并不支持 LOAD 命令,所以不能用这个方法来拷贝数据。但是 IBM i 上提供了一个叫 CPYFRMIMPF 的 CL 命令具有类似的功能。

CPYFRMIMPF

简介

CPYFRMIMPF(Copy From Import File)可以将源文件中的全部或者部分记录拷贝到目标文件中,具有 FROMSTMF、TOFILE、ERRLVL 等参数,具体信息请参考 IBM i 信息中心。在作者的测试数据处理过程当中,主要用到了如下几个关键参数:

表 1 CPYFRMIMPF 关键参数

参数 作用 示例 FROMSTMF 指定源 DEL 文件,可以使用绝对路径或者相对路径 FROMSTMF('../load/ACPLGPSUBS_0.del') TOFILE 指定目标文件,即数据库 schema 中的一个表,格式为 <schema 名称 >/< 表的名称 > TOFILE(demo120/ACPLGPSUBS) ERRLVL 错误记录数 ERRLVL(*NOMAX) RMVBLANK 移除源文件字段中的首尾空白字符 RMVBLANK(*BOTH) RPLNULLVAL(*FLDDFT) 替换源 DEL 文件中字段为 NULL 的值 RPLNULLVAL(*FLDDFT) RCDDLM 记录分隔符 RCDDLM(*LF) STRDLM 字符串分隔符 STRDLM('\`') FLDDLM 记录之间的分隔符 FLDDLM(',')

使用

CPYFRMIMPF 命令的使用可以直接在绿屏以 CL 格式命令运行,也可以在 QSH 下命令。由于作者在测试过程中有多个 DEL 文件需要拷贝到相应的数据表中,所以采用在 QSH 下使用的方法,命令如清单 2 所示:

清单 2 QSH 下执行 CPYFRMIMPF

system "CPYFRMIMPF FROMSTMF('../load/ACPLGPSUBS_0.del') TOFILE(demo120/ACPLGPSUBS) ERRLVL(*NOMAX) RMVBLANK(*BOTH) RPLNULLVAL(*FLDDFT) RCDDLM(*LF) STRDLM('\`')"

这里有一点需要注意的是清单 2 中的 DEL 文件用的相对路径,而该路径是相对于当前 QSH 路径的,不是相对于根路径。

使用 CPYFRMIMPF 拷贝数据最佳实践

获取表的短名称

DB2 for i 的数据表的名称不能超过 10 个字符,超过 10 个字符的名称会以短名称的格式在 IBM i 上进行表示(前 5 个字符为表的全名的前 5 个字符,后 5 个字符为 00001 开始的编号,比如作者处理的数据库中的一个表 ATTRDICTGRP 的短名称为 ATTRD00001)。如果多个表格的前 5 个字符相同,那么就只能通过后面的数字进行区分,所以在拷贝数据之前必须获得每个长表的短名称。该名称可以在 iSeries Navigator 中获得,如图 1 所示:

图 1 表的短名称

去除约束

上文阐述了使用 CPYFRMIMPF 来进行数据拷贝的命令的格式,但是在实际使用过程中,由于需要拷贝大量数据到同一个 schema 的不同表格当中,而表格之间又往往存在外键等约束,所以我们不但需要保证测试数据本身的准确性,即数据之间不违反约束条件,而且在插入的过程中按照一定的先后顺序。这样一来,无形之中就降低了数据拷贝的效率。一种替代的方法就是在拷贝数据之前去掉所有的约束条件,在拷贝完成之后,再加上去除掉的约束条件,而数据本身的准确性由数据来源保证,同时可以在加上约束条件之后使用 EDTCPCST 来帮助检查是哪个表的哪个字段违反了外键约束条件。

时间: 2024-08-30 16:07:16

使用CPYFRMIMPF把以del格式的大数据拷贝到IBM i上的方法的相关文章

easyui datagrid 大数据加载效率慢,优化解决方法(推荐)_jquery

在使用easyui datagrid途中发现加载数据的效率真的不是一般的差.经测试IE8加载300条数据就感觉明显的慢了,加载2000条数据就另人崩溃用时差不多60秒,就算在google浏览器测试结果也快不了几秒. 平时听闻easyui datagrid效率底下,自己测试才发现真是使人无法忍受. 笔者只好百度,google解决方法,发现一篇文章说改 //1.3.3版本是这样的,其它版本也是这句代码 $(_1e0).html(_1e4.join("")); 改为: $(_1e0)[0].

深入解析大数据虚拟化的架构(上)- 部署架构

继<零起点部署大数据虚拟化>系列教程之后,本着"知其然,亦知其所以然"的原则,本系列走进大数据虚拟化的内部,分上下两篇博文,帮助读者了解vSphere Big Data Extensions(以下简称BDE)的部署架构和系统架构,理解部署原理和内部构成,以及各自的作用.希望对您有所帮助,也欢迎您留言评价. 上: Serengeti虚拟化应用(即本文) 下: Serengeti管理服务器的系统架构 Serengeti虚拟化应用 vSphere Big Data Extensi

大数据背后的神秘公式(上):贝叶斯公式

  大数据.人工智能.海难搜救.生物医学.邮件过滤,这些看起来彼此不相关的领域之间有什么联系?答案是,它们都会用到同一个数学公式--贝叶斯公式.它虽然看起来很简单.很不起眼,但却有着深刻的内涵.那么贝叶斯公式是如何从默默无闻到现在广泛应用.无所不能的呢? 一. 什么是贝叶斯公式 18世纪英国业余数学家托马斯·贝叶斯(Thomas Bayes,1702-1761)提出过一种看上去似乎显而易见的观点:"用客观的新信息更新我们最初关于某个事物的信念后,我们就会得到一个新的.改进了的信念."

大数据探索:在树莓派上通过 Apache Spark on YARN 搭建 Hadoop 集群

有些时候我们想从 DQYDJ 网站的数据中分析点有用的东西出来,在过去,我们要用 R 语言提取固定宽度的数据,然后通过数学建模来分析美国的最低收入补贴,当然也包括其他优秀的方法. 今天我将向你展示对大数据的一点探索,不过有点变化,使用的是全世界最流行的微型电脑----树莓派,如果手头没有,那就看下一篇吧(可能是已经处理好的数据),对于其他用户,请继续阅读吧,今天我们要建立一个树莓派 Hadoop集群! I. 为什么要建立一个树莓派的 Hadoop 集群? 由三个树莓派节点组成的 Hadoop 集

大数据为互联网金融插上腾飞的翅膀

大数据无疑是当前ICT领域最为热门的词汇之一.2015年被认为是大数据应用元年,而2016年的大数据市场无疑将迸发出更多的活力.相比之前概念的热炒,如今的大数据正在渗入越来越多的传统行业,金融大数据.医疗大数据.交通大数据等新应用相继出现.当前,已经没有人怀疑大数据能够带来的大价值,而如何激发这些前所未有的价值则是人们关注和探索的重点. 走过了概念炒作期的大数据,正在与各行各业融合,加速"落地".在这些行业中,金融无疑是重头戏.相关数据显示,在中国大数据IT应用投资规模前五大行业中,金

赤峰市:大数据为智慧城市装上“最强大脑”

"近期有寒潮来袭,请各位党员干部注意关注各自辖区内的防寒防雪防大风工作,确保人民群众生产生活正常有序--"最近几天,随着冷空气的侵袭,赤峰市迎来了新一轮的大面积降温,部分区域降温幅度甚至达到10多度.看到手机上的"智慧社区"推送的这条信息,家住红山区阳光家园的老党员李孟成跟家里人交代了几句,披了件厚大衣走出了家门,"前几天小区里有处水管漏水,我看看修好了没,别结冰打滑摔着人." 近年来,赤峰市红山区围绕"两网两中心三体系N个应用&quo

加速企业级大数据方案落地 IBM聚力发挥Spark优势

大数据技术在近些年得到了长足发展,大数据软件框架Hadoop的快速兴起引领了大数据的行业潮流.作为一种类Hadoop的新计算框架,Spark自2014年从Apache中孵化出来后,在短短两年的时间中为大数据技术赋予了新的活力,这一基于内存的分布式计算框架已经在众多行业得到应用. 随着2.0版本的新近发布,Spark向大数据市场展现了其性能提升空间,其在Streaming概念上的进一步强化为实时流处理及查询加载了更强的保障.在大数据领域,Spark逐渐成熟,正在走向更多行业.更多企业. 面对这一逐

大数据国家战略有望提上议程

       记者最新获悉,最近,十多位院士向高层建议,我国应制定大数据国家战略,并在发展目标.发展原则.关键技术等方面作出顶层设计.与此同时,国家发改委与中科院正在启动"基础研究大数据服务平台应用示范项目".权威人士透露,有关部门正在积极研究,大数据国家战略或将提上议程. 多位中国科学院院士和中国工程院院士在接受<经济参考报>记者采访时表示,在我国国家战略层面的文件中,对大数据提得不多,希望国家制定大数据国家战略. 多位院士的建议方案认为,所要制定的大数据国家战略是国家层

[译]大数据将颠覆传统医疗的科学方法

斯坦福大学将于2015年5月20到22日举办一个生物医学领域的大数据会议,该会议针对各大高校.医院.政府部门和机构的医学研究人员,旨在鼓励合作.应对挑战以及建立在医疗保健领域使用大数据的可行步骤. 这里存在着很多机遇.无论是通过能处理海量数据的科学计算项目(mega-scientificcomputing projects),还是通过非正式的方法看待数据以及用全新的方法分析数据以获得过去无法获取的结果,医疗界正向利用大数据和分析法解决临床挑战进军. 举个例子,2011年的斯坦福Lucile Pa