Db2 Warehouse Client を導入してみた
Db2 Warehouse Client とは?
Db2 Warehouse Webページ からの抜粋です。
Db2 Warehouse クライアント・コンテナーは、Db2 Warehouse への移⾏、運⽤、保守を⾏うためのリモート・シェル環境として利⽤できます。
別記事「Db2 Warehouse SMP構成(シングルノード) x86版 を導⼊してみた」とあわせ、導入してみました。
導入環境
導入環境の情報です。
接続確認に使用するDb2 Warehouseコンテナは同サーバで動いています。
- Red Hat Enterprise Linux v7.4
- Docker Community Edition v18.03
- Db2 Warehouse x86版 v2.7(接続先データベース)
- Db2 Warehouse Client x86版 v2.7
Docker CEはCentOS7はサポートしていますが、RHEL7をサポートしていません。
RHEL7で動かして問題があってもコミュニティで質問するしかないです。
Db2 WarehouseはDocker CEでの動作をサポートしています。
検証している範囲では、RHELでDocker CEを動かしても特に問題はなかったです。
Db2 Warehouse Client導入の流れ
今回は、Db2 Warehouse Client導入と簡単な動作確認をしています。
手順はDb2 Warehouse クライアント・コンテナーのデプロイ (Linux) (⽇本語版)を参考にしています。
- Step01. Db2 Warehouse Clientコンテナイメージの取得準備
- Step02. Db2 Warehouse Clientコンテナイメージの取得
- Step03. Db2 Warehouse Clientコンテナの起動
- Step04. Db2 Warehouseへの接続登録
- Step05. コマンドラインからのDB接続
- Step06. テーブルへのデータロード
- Step07. データアンロード
Step01. Db2 Warehouse Clientコンテナイメージの取得準備
コンテナイメージは、Doker Store/Hubレポジトリまたは IBM Boxサイトから取得できます。
今回はDocker Storeからコンテナイメージを取得します。
※イメージ取得にDocker IDが必要です。
1). Docker Storeサイトへログイン
Docker Storeサイトに接続し、Docker IDでログインします。
2). Db2 Warehouse Client コンテナの検索
「Db2 Warehouse Client コンテナ」を条件に検索します。
検索結果から「IBM Db2 Warehouse client container」を選択します。
3). Db2 Warehouse Client コンテナのチェックアウト
画面右の Proceed to Checkout をクリックし、チェックアウトします。
4). Db2 Warehouse Clientコンテナの取得
利用規約に同意し、Db2 Warehouse Clientコンテナのコンテンツを取得します。
5). コマンドおよび手順の確認
Step02. Db2 Warehouse Clientコンテナイメージの取得
Docker StoreからサーバへDb2 warehouse clientコンテナイメージを取得します。
1). Docker レジストリサーバーにログイン
Docker Storeからコンテナイメージを取得するため、Docker IDでログインします。
[root@eo01 ~]# docker login -u='docker_id' -p='password'
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded
2). Db2 Warehouse Clientコンテナイメージの取得
docker pullコマンドで、コンテナイメージを取得します。
「Step02. 5). コマンドおよび手順の確認」で確認したpulコマンドを実行します。
[root@eo01 ~]# docker pull store/ibmcorp/db2wh_ce:v2.7.0-db2wh_client-linux
v2.7.0-db2wh_client-linux: Pulling from store/ibmcorp/db2wh_ce
18b8eb7e7f01: Already exists
・・・(省略)・・・
21da8c9ec911: Pull complete
Digest: sha256:a223736b7ed204082566cfcb7e1bc5a62b44dc79dfd93bc74ab87c8abff56176
Status: Downloaded newer image for store/ibmcorp/db2wh_ce:v2.7.0-db2wh_client-linux
3). コンテナイメージの確認
docker imagesコマンドで取得したコンテナイメージを表示します。
「v2.7.0-db2wh_client-linux」が取得できています。
[root@eo01 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
store/ibmcorp/db2wh_ce v2.7.0-db2wh_devc-linux 5ffc805a633c 4 days ago 7.72GB
store/ibmcorp/db2wh_ce v2.7.0-db2wh_client-linux 38c7d93fbfd8 5 days ago 3.28GB
Step03. Db2 Warehouse Clientコンテナの起動
取得したコンテナイメージを使用して、Db2 Warehouse Clientコンテナを起動します。
1). コンテナの起動
コンテナを作成するため、docker runコマンドを実行します。
[root@eo01 ~]# docker run -dit --net=host --name=client2.7 \
-v /mnt/tools:/mnt/clientdir \
-v /mnt/clusterfs/home/db2inst1:/mnt/blumeta0/home/db2inst1 \
store/ibmcorp/db2wh_ce:v2.7.0-db2wh_client-linux
※1 ホストの/mnt/toolsをコンテナの/mnt/clientdir にマウントします。
デプロイを開始する前に、ファイル・システムが空にする必要があります。
※2 ホストの/mnt/clusterfs/home/db2inst1をコンテナの/mnt/blumeta0/home/db2inst1にマウントします。
デプロイを開始する前に、ファイル・システムが空にする必要があります。
※3 -e REMOTE_DB=server[:port] パラメーターはリモートDb2 Warehouse データベースをカタログできます。
指定しない場合、デプロイ後にdb_catalog の実行が必要です。
今回はデプロイ後に設定します。
2). コンテナのログを確認
コンテナログを確認し、正常起動を確認します。
「successfully」 メッセージを出力しているので成功ですね。
[root@eo01 ~]# docker logs --follow client2.7
Starting up IBM Db2 Warehouse client container...
Creating Db2 client instance home and setup user environment
Creating client container directory structure and setup access controls
Verified existing database instance
#######################################################################
### IBM Db2 Warehouse client container was deployed successfully ###
#######################################################################
* If you used docker logs to monitor progress,
detach from the console by pressing Ctrl+C.
* To get a command line from a prompt on the host,
issue the following command:
docker exec -it <client container name> cli
#######################################################################
Step04. Db2 Warehouseへの接続登録
Clientコンテナが起動しました。
次はコンテナへ接続し、Db2 Warehouse BLUDBデータベースへの接続情報を登録(カタログ)します。
登録にはdb_catalogコマンドを使用しています。
1). クライアント・コンテナーに接続
Db2 warehouse clientコンテナに接続します。
[root@eo01 ~]# docker exec -it client2.7 cli
***********************************************************************
* *
* Welcome to IBM Db2 Warehouse client container interactive CLI *
* *
***********************************************************************
Last login: Wed May 2 01:47:58 UTC 2018 on pts/1
2). 登録前の確認
「-l」オプションで登録情報を確認します。
何も登録されていないですね。
[Db2wh - Client CLI ~]\> db_catalog -l
Retrieving alias information...
ALIAS | DATABASE | PORT | SSL | HOSTNAME
----------+----------+-------+-----+--------------
[Db2wh - Client CLI ~]\>
3). データベース接続の登録
「-add」オプションで接続情報を登録します。
「The remote database cataloged successfully as: BLUDB_7」と出力されています。
別名を指定しないと適当な番号が振られるようです。
[Db2wh - Client CLI ~]\> db_catalog --add localhost:50000
Running connectivity test against remote database server: localhost port 50000 ...
Cataloging the remote database from localhost ...
The remote database cataloged successfully as: BLUDB_7
[Db2wh - Client CLI ~]\>
4). 登録後の確認
「-l」オプションで登録情報を確認します。
「BLUDB」の接続が登録されていますね。
[Db2wh - Client CLI ~]\> db_catalog -l
Retrieving alias information...
ALIAS | DATABASE | PORT | SSL | HOSTNAME
----------+----------+-------+-----+--------------
BLUDB_7 | BLUDB | 50000 | NO | localhost
[Db2wh - Client CLI ~]\>
CLPでも確認してみます。
同じく登録されていますね。
[Db2wh - Client CLI ~]\> db2 list database directory
System Database Directory
Number of entries in the directory = 1
Database 1 entry:
Database alias = BLUDB_7
Database name = BLUDB
Node name = DB2WH_87
Database release level = 14.00
Comment =
Directory entry type = Remote
Catalog database partition number = -1
Alternate server hostname =
Alternate server port number =
Step05. コマンドラインからのDB接続
接続情報を登録したので、Db2 Warehouse Clientコンテナからデータベースへ接続してみます。
提供されているdbsqlコマンドを使用しています。
名称 | 説明 |
---|---|
dbsql | nzsql互換のコマンドラインインターフェース |
CLP | Db2標準のコマンドラインインターフェース |
CLPPlus | Oracle互換のコマンドラインインターフェース |
1). クライアント・コンテナーに接続
Db2 warehouse clientコンテナに接続します。
[root@eo01 ~]# docker exec -it client2.7 cli
***********************************************************************
* *
* Welcome to IBM Db2 Warehouse client container interactive CLI *
* *
***********************************************************************
2). dbsqlコマンドの実行
Clientコンテナから対話形式でデータベースに接続します。
SQLでシステム日付を取得できました。
コマンドラインは(\q)で終了できます。
[Db2wh - Client CLI ~]\> dbsql -d bludb -u bluadmin
Password:
Welcome to IBM dbsql, an interactive SQL terminal.
Type: \? for help with internal slash commands
\g or terminate with semicolon to execute query
\q to quit
BLUDB.BLUADMIN(BLUADMIN)=>
BLUDB.BLUADMIN(BLUADMIN)=> select current date from sysibm.sysdummy1;
1
------------
2018/5/29
(1 row)
BLUDB.BLUADMIN(BLUADMIN)=> \q
[Db2wh - Client CLI ~]\>
Step06. テーブルへのデータロード
次にdbloadコマンドを使用し、Clientコンテナからテーブルへデータをロードしてみます。
1).テーブルの作成
データロードを行うテーブルを作成します。
[Db2wh - Client CLI ~]\>dbsql -d bludb -u bluadmin -c "create table CLIENTLOAD (col1 integer,col2 integer)"
Password:
CREATE TABLE
[Db2wh - Client CLI ~]\>
2).ロードデータの作成
Clientコンテナに作成したロード用データです。
[Db2wh - Client CLI ~]\> pwd
/mnt/blumeta0/home/db2inst1
[Db2wh - Client CLI ~]\>
[Db2wh - Client CLI ~]\> cat loadsample.dat
1,100
2,200
3,300
[Db2wh - Client CLI ~]\>
※DATファイルはコンテナ作成時に-vオプションでマウントしているディレクトリへ格納しています。
(今回の例では/mnt/blumeta0/home/db2inst1)
3).dbloadコマンドの実行
dbloadコマンドでデータロードを行います。
「completed successfully」のメッセージが出ているので、成功です。
ログに「'bludb.bluadmin.CLIENTLOAD'」って出ていますね。
[Db2wh - Client CLI db2inst1]\> dbload -host <host_name> -port 50000 -u bluadmin -pw <password> -db bludb -schema bluadmin -t CLIENTLOAD -df /mnt/blumeta0/home/db2inst1/loadsample.dat -delim ','
============================== Load session: 1 ==============================
Connecting to: 'bludb'
Connected to: 'bludb'
'log' file: '/mnt/clientdir/clienthome/db2inst1/logs/dbload/CLIENTLOAD.bluadmin.bludb.log'
'bad' file: not found
Load session of table 'bludb.bluadmin.CLIENTLOAD' completed successfully
Session started: 2018-05-29 09:20:45
Session ended: 2018-05-29 09:20:47
Elapsed time [hh:mm:ss]: 00:00:02
===============================================================================
[Db2wh - Client CLI db2inst1]\>
4).データロードの結果確認
SELECT文を投げてみたところ、データが入っています。
[Db2wh - Client CLI db2inst1]\> dbsql -d bludb -u bluadmin -c "select * from clientload"
Password:
COL1 | COLW
------+------
1 | 100
2 | 200
3 | 300
(3 rows)
[Db2wh - Client CLI db2inst1]\>
Step07. データアンロード
最後にdbunloadコマンドを使用し、Db2 Warehouseコンテナのテーブルからデータをアンロードしてみます。
1).dbunloadコマンドの実行
コマンドからデータアンロードを実行します。
「completed successfully」のメッセージが出ているので、成功です。
こちらもログに「'bludb.bluadmin.CLIENTLOAD'」って出ていますね。
[Db2wh - Client CLI db2inst1]\> dbunload -host <host_name> -port 50000 -u bluadmin -pw <password> -db bludb -schema bluadmin -t CLIENTLOAD -df /mnt/blumeta0/home/db2inst1/unloadsample.csv -delim ','
============================= Unload session: 1 =============================
Connecting to: 'bludb'
Connected to: 'bludb'
Unload session of table 'bludb.bluadmin.CLIENTLOAD' completed successfully
Session started: 2018-05-29 09:46:08
Session ended: 2018-05-29 09:46:08
Elapsed time [hh:mm:ss]: 00:00:00
===============================================================================
[Db2wh - Client CLI db2inst1]\>
2).データロードの確認
データアンロードされ、Clientコンテナ上のファイルへデータ出力されています。
[Db2wh - Client CLI db2inst1]\> cat /mnt/blumeta0/home/db2inst1/unloadsample.csv
1,100
2,200
3,300
[Db2wh - Client CLI db2inst1]\>
終わりに
以上、Db2 Warehouse Clientの導入と動作確認でした。
Db2クライアントを入れず、接続登録(カタログ)だけで使えるのが嬉しいですね。
参考にした情報
Author And Source
この問題について(Db2 Warehouse Client を導入してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/m1914uk/items/7afe8bef7cf5cf61ea16著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .