従来版DataStageのジョブをDataStage-aaS Anywhereに移行してみた
投稿者:岡本
こんにちは!
NI+C DataStage担当の岡本です。
従来版のDataStageのバージョン11.7が2017年にリリースされてから7年経過し、まだ製品サポートはありますが、そろそろHWの老朽化が進み移行を検討されているお客様もいらっしゃるのではないでしょうか。
移行を検討する中で新たに従来版を構築するのか、それとも以前のブログで紹介した新しいDataStage-aaS Anywhereのアーキテクチャにするのか悩みますね。
そんな時にポイントになってくるのが従来版の資産をDataStage-aaS Anywhereに移行できるか?というところになると思います。
ということで、本ブログでは従来版で作成したDataStageジョブをDataStage-aaS Anywhereに単純移行できるのかを見ていきたいと思います。
今回移行するジョブ
今回移行してみるジョブは下記となります。BigQueryよりデータを取得してTransformerで加工した上でファイルを出力する処理を行っています。
BigQueryはDataStageサーバ上に配置された認証用のjson用ファイルを用いて接続しますが、移行するとどうなるのかも気になりますね。
Step1.従来版からのジョブのエクスポート
DataStage-aaS AnywhereではDataStageのジョブファイルの形式、isxファイルのインポートがサポートされています。
なので、Step1では従来版からdsjobコマンドを利用してまずはジョブをエクスポートしていきたいと思います。
今回は下記の手順でプロジェクト内の特定のフォルダ内に存在するジ資産(ジョブ等)をエクスポートします。
①DataSatageのクライアントがインストールされているマシンにログインします。
②コマンドプロンプトよりディレクトリを移動します。
cd C:\IBM\InformationServer\Clients\istools\cli
(クライアントのインストールパスに応じて”C:¥IBM¥InformationServer”は修正ください)
③istoolを実行します。
istool.bat
④istoolのプロンプトにて下記コマンドを実行します。
export -dom <ホスト名>:<ポート 9446等> -u isadmin -p <パスワード> -ar <アーカイブ先/エクスポートファイル名.isx 例 C:\sample\datastagejob.isx> -ds '"<ホスト名>/プロジェクト名/フォルダ名/ジョブ名.*"'
※下記のように証明書の受け入れに関するプロンプトが表示された場合は、永続的に受け入れる場合は[1]、このセッション限定で受け入れる場合は[2]を選択します。
⑤指定したエクスポート先にisxファイルが生成されていることを確認します。
Step2.DataStage-aaS Anywhereへのジョブのインポート
それでは早速Step1でエクスポートしたisxファイルをDataStage-aas Anywhereに取り込んでいきましょう。
①IBM Cloud Pak for Dataのコンソールにログインします。
https://dataplatform.cloud.ibm.com/projects/?context=cpdaas
②左上のメニューよりジョブをインポートするプロジェクトを開き、[アセット]タブにて[新規資産]を選択します。
③[すべて]より[データの変換と統合]を選択します。
④左側のメニューより[ローカル・ファイル]を選択し、エクスポートしたファイルをプロンプトにドラッグ&ドロップすると下記画面が表示されますので、設定はデフォルトのまま[作成]をクリックします。
⑤左側のメニューに「インポートに成功」が表示されましたね。ただし、ステータスに「インポート(警告あり)」と表示されています。
<警告の内容>
⑥⑤でjsonファイルがないと警告がでていましたが、実際にジョブを実行したところアボートしました。
ということで次は、BQ_ITEMの接続情報をクリックし、設定を実施していきましょう。
⑦接続情報を設定していきます。
⑧BQ_ITEMで接続設定の横の「Convert to flow connection」をクリックしフロー接続に変換します。
⑨ジョブを実行してみると、正常終了しました。
まとめ
今回は従来版のDataStageからDataStage-aaS Anywhereにジョブを移行してみました。
検証の結果でDataStageサーバ上に配置されている証明書ファイルは移行されないため、接続定義の更新が必要でした。また、暗号化されているジョブパラメーターについても別途検証してみましたが、そちらについても接続定義の資格情報の更新が必要だという事がわかりました。
(従来版のDataStageとDataStage-aaS Anywhereの暗号化方式に互換性がないため)
という事で単純にインポートエクスポートするだけでは移行はできず、機能的にも100%互換ではないので注意は必要ですが、既存環境からのエクスポートは複数のジョブをまとめて対応する事が出来ますし、データソース接続定義もパラメータ化されていればインポート後の変更作業も最小限に抑えられるので比較的簡単に移行できるのではないかと感じました。
本ブログを読んでいただき、ありがとうございました。