ImageVerifierCode 换一换
格式:TXT , 页数:9 ,大小:15.73KB ,
资源ID:3890472      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-3890472.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DB2 ingest介绍.txt)为本站会员(eukav)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

DB2 ingest介绍.txt

1、简介: Ingest 应用工具是 DB2 Galileo 版本中新的概念 , 它是一个客户端工具。用户可以用 INGEST 来进行数据的导入 , 它有比 LOAD,IMPORT 更好的性能,本文介绍 Ingest Utility 支持的各种文件格式,并详细介绍 Ingest Utility SQL statement( insert, update, delete, merge,replace)的用法,并给出一实例进行分析。INGEST 是 DB2 Galileo( DB2 10 的开发代号) 的新特性 , 是为了有大量持续的数据流来实时和并发的快速进行数据导入而引入的新概念。本文将详细介绍了

2、 INGEST 支持的各种数据文件格式,以及所支持的insert, replace, update, delete, merge 的数据导入操作。-Ingest Utility 支持的各种文件格式介绍,用法和实例分析Ingest 工具支持两种数据格式:DELIMITED 和 POSITIONAL。语法如清单 1 所示。 选择用 DELIMITED 文件格式的时候后面跟着划分符,如果不指定,默认的是“,”,这点和 import 和 load 类似。如果选用的是 POSITIONAL 文件格式的数据时后面可跟数据记录的长度,这个长度是指每条记录每次截取的总长度,如果 RECORDLEN 指定的长度

3、小于各列的长度之和时就会报错并退出,如果大于各列的长度之和,ingest 工具将会 后一列 指定的长度之 的 。RECORDLEN 可指定的 是 1-32767。如果不指定 RECORDLEN 的长度, 默认是 符 行符作为每一条记录的 符。并 指定 field name 之后 可以 POSITION 指定每个 field 的 。清单 1:INGEST 支持的数据文件格式定 |-+-DELIMITED-+-+-+- | -BY-char- | -POSITIONAL-+-+- -RECORDLEN-length-field-definition |-$field-name-+-+- -POSI

4、TION-(-start-+-+-)- -:-end- 清单 2 是一个用 POSITIONAL 格式 有指定 RECORDLEN 数的例。 a.asc 文件中,每一行的 12 中不为, 17 19 有 符 。 为有 ingest 语中指定了 position 的 ,所以 ingest 工具currency1取 position 指定的 ,并不 “的 有 符。并 有指定 RECORDLEN 的长度,所以默认为 行符为一行的 。清单 2: POSITIONAL INGEST 示例数据文件 a.asc 的fifl2 2001 552010aaa 25 2002 452011bbb 143 2003

5、 2c2012ccc 1555 2004 3b2013ddd 1309 2005 7a2014eee 行 INGEST 语的 果INGEST FROM file format21_01.asc format POSITIONAL ( $field1 POSITION(1:4) int external, $field2 POSITION(6:9) DATE YYYY, $field3 POSITION(11:11) TIME H, $field4 POSITION(13:16) TIMESTAMP YYYY ) restart off insert into t1(perkey,periodd

6、ate, periodtime, periodts) values($field1,$field2,$field3,$field4) SQL2979I The ingest utility is starting at “08/08/2012 01:34:10.517287“. SQL2914I The ingest utility has started the following ingest job: “DB21001:20120808.013410.517287:00002:00004“. Number of rows read = 5 Number of rows inserted

7、= 5 Number of rows rejected = 0 SQL2980I The ingest utility completed successfully at timestamp “08/08/2012 01:34:16.322027“db2 = select * from t1 PERKEY PERIODDATE PERIODTIME PERIODTS - - - - 25 01/01/2002 04:00:00 2011-01-01-00.00.00.000000 1555 01/01/2004 03:00:00 2013-01-01-00.00.00.000000 143 0

8、1/01/2003 02:00:00 2012-01-01-00.00.00.000000 2 01/01/2001 05:00:00 2010-01-01-00.00.00.000000 1309 01/01/2005 07:00:00 2014-01-01-00.00.00.000000 5 record(s) selected. 清单 3 是一个指定了 RECORDLEN 的例。用例 1 中的文件 a.asc, 指定 RECORDLEN 长度为 20,这指定 20 是为 符了一个 ,Ingest 会以每次截取 20 个 符为一条记录的fifl。清单 3: RECORDLEN 示例db2

9、= INGEST FROM file a.asc format POSITIONAL RECORDLEN 20 ( $field1 POSITION(1:4) int external, $field2 POSITION(6:9) DATE YYYY, $field3 POSITION(11:11) TIME H, $field4 POSITION(13:16) TIMESTAMP YYYY ) restart off insert into t1(perkey,perioddate, periodtime, periodts) values($field1,$field2,$field3,$

10、field4) SQL2979I The ingest utility is starting at “08/08/2012 02:07:24.409826“. SQL2914I The ingest utility has started the following ingest job: “DB21001:20120808.020724.409826:00002:00004“. Number of rows read = 5 Number of rows inserted = 5 Number of rows rejected = 0 SQL2980I The ingest utility

11、 completed successfully at timestamp “08/08/2012 02:07:28.987315“db2 = select * from t1 PERKEY PERIODDATE PERIODTIME PERIODTS - - - - 1555 01/01/2004 03:00:00 2013-01-01-00.00.00.000000 25 01/01/2002 04:00:00 2011-01-01-00.00.00.000000 2 01/01/2001 05:00:00 2010-01-01-00.00.00.000000 1309 01/01/2005

12、 07:00:00 2014-01-01-00.00.00.000000 143 01/01/2003 02:00:00 2012-01-01-00.00.00.000000 -Ingest SQL statement 的特性介绍 INGEST INSERT,UPDATE,DELETE,REPLACE,MERGE 语之, 来介绍一 INGEST SQL 语的一”性。这”性于所有 INGEST SQL statement 用。1. 于 field-name: 以 符开($), 长度 符 fi为 2-129。 和 SQL 定 符一。 定 field name 的时候可以 符之后跟着一定 符,例如

13、$“My Field Name“。 的是 后面 insert 语引用量的时候一定和这定 的 。 和 DB2 定 的是一的。清单 4 是一个简单的例,例 中,“test”,“Test”和 test 是不 的, DB2 中,如果不用引号特“指定,会默认为 是 大 。 用 定符 引号指定时,就是 定符面的fifl。 的,于 Ingest 工具中的 field name 是如。清单 4: 列 “大小 示例db2 = create table test (“test“ int, test char, “Test“ smallint) DB20000I The SQL command completed

14、successfully. db2 = describe table test Column name schema Data type name Length Scale Nulls - - - - - - test SYSIBM INTEGER 4 0 Yes TEST SYSIBM CHARACTER 1 0 Yes Test SYSIBM SMALLINT 2 0 Yes 3 record(s) selected. db2 = INGEST FROM file c.del FORMAT DELIMITED ( $“test“ INTEGER EXTERNAL, $“TEST“ char

15、, $“Test“ smallint EXTERNAL ) restart off insert into test values($“test“,$“TEST“,$“Test“) SQL2979I The ingest utility is starting at “08/09/2012 04:54:37.919526“. SQL2914I The ingest utility has started the following ingest job: “DB21001:20120809.045437.919526:00002:00006“. Number of rows read = 2

16、Number of rows inserted = 2 Number of rows rejected = 0 SQL2980I The ingest utility completed successfully at timestamp “08/09/2012 04:54:42.530551“db2 = select * from test test TEST Test - - - 33 b 44 11 a 22 2 record(s) selected. 而清单 5 中,之所以会报错“$field2“ 有定 ,是为面定 的 $field2 默认为是大 的,而后面 insert 语中 指定小

17、 的 $field2。清单 5:列 “大小 示例db2 = INGEST FROM file c.del FORMAT DELIMITED ( $field1 INTEGER EXTERNAL, $field2 char, $field3 smallint EXTERNAL ) restart off insert into test values($“FIELD1“,$“field2“,$“field3“) SQL2921N Field “$field2“ is not defined. SQL2902I The ingest utility completed at timestamp “

18、08/09/2012 05:03:22.234715“. Number of errors: “1“. Number of warnings: “0“. 2. field 量定 的个数和实 INGEST SQL 语用 的量数可以不一 。 后 用 的量 用之定 。如清单 6 所示,field 量个数为 5, INGEST INSERT statement currency1用 了 中的两个。清单 6: field 个数 column 个数不一 示例INGEST FROM file format21_01.asc format POSITIONAL ( $field1 POSITION(1:4)

19、int external, $field2 POSITION(6:9) DATE YYYY, $field3 POSITION(11:11) TIME H, $field4 POSITION(13:16) TIMESTAMP YYYY ) restart off insert into t1(perioddate) values($field2) 3. 了 merge 操作currency1支持 table 和 view,insert,delete, update, replace 支持 table,view 和 nickname。4. delete, update 和 merge 操作可以指

20、定 “。默认 CS(cursor stability)。 CLI 中 量 DB2CLIINIPATH 来(默认文件为 default sqllib/cfg/db2cli.in), 这会 所有的 CLI 应 。5. 所有的 INEST SQL statement 语中 引用 $field 量。具 的应于各种操作如:1) insert 和 replace 的 VALUES 中 引用 $field 量。2) delete 和 update 的 WHERE 中 引用 $field 量, 有 WHERE 。3) merge 的 ON 中 引用 $field 量。6. 如果 的列是以 符($)开, ING

21、EST SQL 语中 用 引号 来,以和 fieldname “。( 详 清单 9 中的示例 )7. field 量 Casting SQL data type 例如清单 7 中,如果 registry 量 DB2_DEFERRED_PREPARE_SEMANTICS=NO。 将会 错:SQL0245N “The invocation of routine DAY is ambiguous“为 DB2 不能定用 day 数的 个版本。 定 field 时 指定了它是 DATE 数据类型。时可以 语 这:INSERT INTO my_table(int_col) VALUES( day(CAST

22、($date_fld AS DATE) )清单 7INGEST FROM FILE my_file.txt FORMAT DELIMITED ( $date_fld DATE ) INSERT INTO my_table(int_col) VALUES(day($date_fld); -页首Ingest Utility insert, update, delete, merge, replace 操作介绍,用法和实例分析Ingest load 和 import 比多了 update, delete, merge 操作,这 ingest 工具能给用户提供更多更方的操作。面分“介绍 ingest

23、工具中 insert ,replace ,delete, update, merge 的用方法并举例 明。Insert 操作用法ingest 的 insert 语比 import 和 load 丰富一。支持向 table, view, nickname 中插入数据,支持 expression, null 和 default 值。需 的几点:1 SQL 中的 insert 一 column-name 和 values 后面的列数 。2 SQL INSERT 一,如果向 的所有列插入值时( 开 中有列 定 为 IMPLICITLY HIDDEN),可以不用列出所有的列。3 仅 field 量的数量

24、和指定的 是隐藏的 的列数一 的时候,(所有的 的列 有定 为 IMPLICITY HIDDEN)可以省 VALUES 。4 更特殊的情况,如果向 的所有列插入数值,并 插入所有列应于定 的 field 个数 时,时列和 VALUES 可以省 (如清单 8)。清单 8: insert 示例db2 = create table insert(a int, b char(5), c double); =cat a.del 1,b, 201 2,abc,202.2 INGEST FROM FILE my_file.txt FORMAT DELIMITED ( $field1 INTEGER EXTE

25、RNAL, $field2 char(5), $field3 double EXTERNAL ) INSERT INTO insert; Replace 操作用法ingest 的 insert 语比 import 和 load 丰富一。支持向 table, view, nickname 中插入数据,支持 expression, null 和 default 值。Replace 操作的语法和 Insert 操作的语法一,不 的地方是 replace 会 插入数据之用 delete 中的所有数据记录删掉。如果 很大的话,delete 会需一时 并 会用一日志 。清单 9 是一个 的列以($)符开的

26、例。 INGEST REPLACE statement 中用 引号(“”)标记。清单 9:replace 示例db2 = CREATE TABLE t1( empid int not null, dept int not null with default 23, salary dec(9,2), name varchar(21), firstname varchar(10), lastname varchar(10), address varchar(60), jointime date, edlevel int with default 15, $bonus char, “$bonus“

27、dec(9,2), job varchar(10) ); INGEST FROM file c.del FORMAT DELIMITED FORMAT DELIMITED ( $field1 dec EXTERNAL, $field2 INTEGER EXTERNAL, $field3 CHAR(20), $field4 CHAR(1) ) replace into t1 (“$BONUS“,“$bonus“) values($field4, $field1) Delete 操作用法Delete 操作 加条件语 WHERE-search-condition,并 search-condition

28、 不能为。这能控制不会 整个 给删 ,如果删 整个 可以直接用 delete 语,而不是 ingest 的 delete 语。 时 where 条件语中 含 ingest 语中定 的 $field 量。如:where 条件语仅为:where 1=1 where col1=1 是不支持的。Ingest 语中不 分大小 ,如:where col1=$field1 and COL2=$filed2 这是可以的。Delete 语支持丰富的 where 条件,可以有多个 and 和 or 语的组合。清单 10 中 where 中用 了一比较复杂的 search condition.清单 10:delet

29、e 示例INGEST FROM c.del FORMAT DELIMITED ( $field1 INTEGER EXTERNAL, $field2 INTEGER EXTERNAL, $field3 INTEGER EXTERNAL, $field4 INTEGER EXTERNAL, $field5 INTEGER EXTERNAL, $field6 INTEGER EXTERNAL ) DELETE FROM t1 where empid=$field1 and dept source_table.c1 WHEN NOT MATCHED then INSERT VALUES(source

30、_table.c1, source_table.c2); INGEST 令(用应的 MERGE 语)是:INGEST FROM FILE source_table.del FORMAT DELIMITED ( $c1 INTEGER EXTERNAL, $c2 CHAR(32) ) MERGE INTO target_table ON c1 $c1 这个条件满足,所以二条记录将不会再 插入了。值 的是,上面的例并不是一个 INGEST MERGE 的常 用情况。比如 MERGE 语 基于匹配一 的时候,并 有更多的 updating 和 inserting 操作的场景。SQL MERGE 和 INGEST MERGE 产生的 果是 的。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报