在 DB2 for Linux, UNIX and Windows 中使用管道加载数据
2010-04-27 00:00:00 来源:WEB开发网TestPipe.java — 创建、使用和关闭 Windows 指定管道的 JNI 调用。
TestUnixPipe.java — 包含对 mkfifo 命令的指纹调用,用于创建、使用和抛弃 UNIX 中的指定管道
db2load.sql — 包含使用管道的 DB2 LOAD 命令。
Windows 中的指定管道
在 Windows 中创建的指定管道并不如在 UNIX 和 Linux 中创建的管道那样持久,并且您采用与特殊文件相似的方式来创建它们。Windows 指定管道的访问更像是文件,但管道在 Windows Explorer 中并不可见。Windows 管道将加载到一种特殊的文件系统。您可以使用 Windows SDK 功能(如 CreateFile、ReadFile、 WriteFile 和 CloseHandle)来打开、读取、写入和关闭管道。
UNIX 和 Linux 中的指定管道
在 UNIX 或 Linux 中,您可以使用 mkfifo 或 mknod 命令来创建指定管道。两个独立的进程可以访问创建的管道。mkfifo 命令将创建一个 First In First Out (FIFO) 文件。然后,您可以使用此 FIFO 文件将信息从一个应用程序移到另一个应用程序,而不需要将数据存储在中间文件中。因此,您可以节省原本用于存储临时文件的空间。如果为类型指定了 p 选项,则 mknod 命令还将创建一个指定管道。
以下命令示例将通过两个步骤创建一个指定管道,并在 Unix 或 Linux 环境中载入数据。
步骤 1 — 将创建一个指定管道,并将未压缩的数据发送给管道:
$ mkfifo db2pipe
$ gunzip tabledata.gz > db2pipe
步骤 2 — 使用管道将未压缩的数据载入到 DB2:
$ db2 connect to sample
$ db2 "LOAD FROM db2pipe OF DEL INSERT INTO mytable"
$ db2 terminate
更多精彩
赞助商链接