李明慧 (limhui@cn.ibm.com), 软件测试工程师, IBM
2008 年 9 月 18 日 本文将介绍 InfoSphere Warehouse 9.5.2 Administration Console 有命令行接口,该接口能通过扩展现有架构在非图形化的环境中技持 SQL 仓储操作,能够自动化地执行大批量的任务。
IBM InfoSphere Warehouse 9.5.2 管理控制台为用户提供了一个部署在 WebSphere Application Server 上的基于 WEB 的用户接口 , 这一接口主要用来进行基本 SQL 仓储管理工作 , 例如配置、执行、进程监视以及执行数据的统计分析。与其它图形化的用户接口一样,它能够引导用户进行一系列的操作来完成某项任务。然而对大量的数据库对象(例如进程、概要文件和时间表)进行重复多次的操作是一件很耗时的事情,那么是否能够提供一种方式,可以对这些操作进行批量处理呢。
本文将介绍 InfoSphere Warehouse 9.5.2 管理控制台有命令行接口,该接口能通过扩展现有的架构在非图形化的环境中支持 SQL 仓储操作,能够自动化地执行重复的操作以及大批量的任务。
InfoSphere Warehouse 9.5.2 命令行接口是基于 Web Services 架构设计的。它在 WAS 的环境中实现对 InfoSphere Warehouse 9.5.2 的管理与监视。
InfoSphere Warehouse 9.5.2 CLI 拓朴结构
命令行客户端通过网络启动命令处理器,不管在什么平台上,命令行结果都将被返回到客户端。
图 1. CLI 拓朴结构
InfoShpere Warehouse 9.5.2 的安装包括:
-
扩展了现有的 InfoSphere Warehouse 9.5.2 Administration Console 的基于 WebSphere Application Server 的组件
-
安装新的 InfoShpere Warehouse 9.5.2 CLI 客户端组件到一个或更多个客户端系统
运行在 Unix 或 Windows 上 CLI 的客户端可以运行在安装在 Unix 或 Windows 系统上的可以通过网络访问到的 InfoSphere Warehouse 9.5.2 Administration Console, 只要服务器与客户端能够建立起连接。
使用 CLI
命令接口有两种操作模式:
1.交互模式
InfoSphere Warehouse 9.5.2 命令可以以一种交互的文本模式来运行。命令行系统以“wh=>”为提示符来表明其可以按受命令,系统执行命令并提供文本输出。
清单 1. 交互模式命令示例
C:\whcli\bin> wh
!whcommand.copy_right!
Command Line Interface for InfoSphere Warehouse
For general help, type: help.
wh => connect –user username –password pswd
DWE02981I: System is connected.
wh => listApplication
Application Status Description
------------------------------------------------------------
project_test Enabled
myapp Enabled
test_exe Enabled
appvar Enabled
----------------------------------------------
4 record(s)
|
2. 命令行 / 批处理模式
使用 InfoSphere Warehouse 9.5.2 命令行参数模式可能对 CLI 发出命令,例如 , 运行单条命令或是运行一个包含多条命令的批处理文件。可以使用批处理文件来简化日常的常规操作或是重复性的操作。也可以在别的脚本中或是调度程序中来调用脚本。一旦被调用,脚本就可以不需要人为干预的执行了。
清单 2. 命令行 / 批处理模式命令示例
C:\whcli>bin> wh connect –user username –password pswd
DWE02981I: System is connected.
C:\whcli>bin> wh listApplication
Application Status Description
------------------------------------------------------------
project_test Enabled
myapp Enabled
test_exe Enabled
appvar Enabled
----------------------------------------------
4 record(s)
|
任何时候都可以通过使用“-help”参数来获得命令的帮助。
清单 3. -help 参数命令示例
wh=> listApplication -help
Command : listApplication
Description : Displays an application list that includes application name, stat
s, and description.
Option(s):
-format csv
-connection <connection id>
|
Session 管理
在执行命令之前,需要先建立与 Administration Console 服务器的连接。通过执行 connect 命令专与服务器建立连接 connect 命令需要 4 个参数,分别用来识别:
-
布署运行 Administration Console 的应用服务器的主机名
-
与 Administration Console 应用相对映的端口号
-
用户信息,包括用来认证连接的用户名和密码
如果不指定“-hostname”和“-password”参数,则使用默认的参数值,hostname 为 localhost,portnumber 为 9080。用户名参数(-user <user>)必须指定,否则连接将会失败。如果用户使用了 -password 参数,但是没有提供参数值,则在命令执行以后,用户将被提示输入密码。
清单 4. connect 命令示例 1
wh=> connect –user administrator –password dwe07easy
DWE02981I: System is connected
|
清单 5. connect 命令示例 2
wh=> connect –hostname localhost –user administrator
Enter password:
DWE02981I: System is connected
|
注意:密码不会显示。用户的验证是通过服务器系统的基于操作系统的安全认证。
如果想要中断当前的连接,执行 disconnect 命令
清单 6. disconnect 命令示例
wh=> disconnect
DWE02807I: DISconnect command completed successfully.
|
Session 范围
当执行 connect 命令以后,InfoSphere Warehouse 9.5.2 CLI 就将当前的 session 信息就保存在用户目录中。这些信息只有在运行 disconnect 命令以后才会被删除,或者被重新执行的 connect 命令的新的 session 信息所替换。
由同一个用户开启的多个 CLI 的实例将共享同一 session 信息,不管这些 CLI 实例是否在同一操作系统 Shell 中启动。
同样,终止一个 CLI 实例的 session 也将同一用户的其它可能有的 CLI 实例的 session 终止。
命令总览
InfoSphere Warehouse 9.5.2 提供了 CLI 本地处理的命令以及由 InfoSphere Warehouse 9.5.2 Administration Console 服务器处理的命令。
下面将简单介绍一下目前所有可用的命令。命令与参数的详细介绍请参阅 CLI 的用户向导。
本地命令 表 1. 本地命令
|
Command
|
Description
| |
connect
|
Establishes a session with the specified IWH Administration Console server
| |
disconnect
|
Terminates an existing IWH Administration Console session
| |
help
|
Displays a list of supported commands
| |
quit
|
Exits the CLI but does not terminates an existing IWH Administration Console server connection
| |
saveConfig
|
Stores the current IWH Administration Console Server connection information into a file
|
CLI SQL 仓储管理命令
InfoSphere Warehouse 9.5.2 CLI 提供了两类 SQW 管理命令,信息类管理命令和操作类管理命令。信息类管理命令用来查询 SQW 控制表;操作类管理命令用来创建,更新或是删除 SQW 对象 , 例如启动一个 SQW 进程实例或删改一个进程时间表。
信息类管理命令
信息类管理命令都是以 list 或 get 开头的,用来查询 SQW 控制表并且以表格的形式返回比较粗略的信息(list-)或是某一特定的对象的详细信息(get-)。
表 2. 信息类 CLI 命令用来列出对象信息
|
Command
|
Description
| |
listApplication
|
List deployed applications
| |
listProcessInstance
|
List process instances
| |
listFailedProcessInstance
|
List failed process instances
| |
listProcess
|
List processes
| |
listSchedule
|
List process schedules
|
举例:
listApplication 列出已布署到目前连接到的 IWH Administration Console 服务器的数据仓库应用程序。
清单 7. 信息类管理命令示例 1
wh=> listApplication
Application Type status Description
----------------------------------------------------------
Test_DB2File Control Flow Enabled
Test_FTP Control Flow Enabled
-----------------------------------------------------------
2 record(s)
|
以 get 开头的开命令需要一个或多个参数来唯一的标识选定的 SQW 对象,例如,数据仓库应用程序,进程或进程实例。
表 3. 信息类 CLI 命令用来获取某一对象的信息
|
Command
|
Description
| |
getApplication
|
Display application properties
| |
getProcessInstance
|
Display process instance properties
| |
getFailedProcessInstance
|
Display information about a failed process instance
| |
getProcessInstanceStatus
|
Display current status of the process instance
| |
getSchedules
|
Display process schedule properties
| |
getProcess
|
Display process properties
|
举例:
getApplication 列出某一个 SQW 数据仓库应用程序的详细的配置信息。
清单 8. 信息类管理命令示例 2
wh=> getApplication –app Test_DB2File
Application = : Test_DB2File
Status =: Enable
Type =: Control Flow
Mail Provider = : mail/dwe
Home Directory = : /data/home/wh/apps
Log Directory =: /data/home/wh/logs
Working Directory =: /data/home/wh/temps
Description =: Data from DB to File
|
操作类管理命令
操作类管理命令可以用来创建或删除 SQW 对象,例如进程时间表或是启动、停止 SQW 进程实例。
表 4. 操作类管理命令
|
Command
|
Description
| |
createSchedule
|
Create a schedule for an SQW process
| |
deleteSchedule
|
Delete an SQW process instance
| |
startProcessInstance
|
Start a process instance immediately and return control to CLI (asynchronous process execution)
| |
executeProcessInstance
|
Start a process instance immediately and block CLI until the SQW process instance finished execution.(synchronous process execution)
| |
stopProcessInstance
|
Terminate execution of an SQW process instance
| |
deleteProcessInstance
|
Delete an SQW process instance
|
举例:
异步启动一个 DB2File 数据仓库应用程的一个进程实例,并且给该进程实例产生一个唯一的名字。
清单 9. 操作类管理命令示例
wh=> startProcessInstance –app Test_DB2File –process DB2File
|
应用举例
以下的应用举例表明如何将 CLI 以批处理的形式来自动的执行一些简单的 shell 脚本。注意建立连接时用到了事先通过 saveConfig 命令存储在一个文本文件中的用户信息。这样做,就不需要在 shell 脚本中保存用户信息了。
在另一个进程实例运行完成到最终状态后再运行另一个进程实例
清单 10. 应用示例 1
:: establish a session with the server using previously stored connection information
wh connect –configfile myconfig.conf
::launch process that exact data from DB table into a text file;
block CLI until the process
::instance completes(synchronous execution)
wh executeProcessInstance –app Test_DB2File –process DB2File
–profile DB2File_Prof –instance DB2FileIns
:: launch process that validate the data that was previous loaded;
CLI won’t start this process
:: unless the previous process has completed (this process could also
be started synchronously)
startProcessInstance –app Test_CheckFile –process CheckFile
–profile CheckFileProf –instance CheckFileIns
:: terminate current session
wh disconnect
|
想要进程实例 DB2FileIns 成功执行完之后才会去启动 CheckFileIns 进程实例,将以上的命令嵌入到脚本语言编写的脚本的中,可以使用 getProcessInstance 命令的回的进程实例状态来判断其否等于“Finish”。
为一个进程创建多个时间表
清单 11. 应用示例 2
::establish a session with the server using previously stored connection information
wh connect –configfile myconfig.conf
::create a schedule that extracts data for eastern region every Monday @ 8 am
wh createSchedule –app Test_DB2File –process DB2File –name ExtrDataMon
–date 2008/08/24 –time 08:00:00 –occurrence Monday –profile DB2FileProf_East
::create a schedule that extracts data for eastern region every Thursday @ 3 am
wh createSchedule –app Test_DB2File –process DB2File –name ExtrDataThur
–date 2008/08/24 –time 03:00:00 –occurrence Thursday –profile DB2FileProf_East
::create a schedule that extracts data for western region every day ot the week @ 1 am
wh createSchedule –app Test_DB2File –process DB2File –name ExtrDataThur
–date 2008/08/24 –time 01:00:00 –occurrence daily –profile DB2FileProf_West
:: terminate current session
wh disconnect
|
总结
InfoSphere Warehouse 9.5.2 命令行接口(CLI)通过实现批处理执行 SQW 管理工作来增强了现有的 IWH Administration Console。使用该工具,重复的操作可以自动化,进程实例可以有条件的执行,并且进程可有第三方应用来的监视。
希望大家能够发现更多的使用 CLI 来高效管理 InfoSphere Warehouse SQW 应用的更多方式。
参考资料
关于作者  | |  | 李明慧,在 IBM 中国软件开发中心 BI 团队工作从事 InfoSphere Warehouse Administration Console 的功能测试工作。曾在 IBM developerWorks 发表《将DB2 DWE 9.1.X 迁移到 DB2 Warehouse 9.5》 |
对本文的评价
|