ビジネス課題への解決策(アイディア)と、新たな発想(+α)が見つかるIT情報メディア

Menu
  1. TOP
  2. データ活用
  3. 並列処理の話(その2) Windowsでコマンドを並列実行する(前編)

並列処理の話(その2) Windowsでコマンドを並列実行する(前編)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

並列処理のお話しをさせていただいていますが、Windowsでコンソールコマンドを並列処理させるにはどうしたらよいでしょうか。

例として、ちょっと時間のかかるコマンドとして以下のものを使いましょう。
コマンドプロンプトを立ち上げてコマンドを打ってみてください。

C:Usersosuga>tree c:

Windowsのシステムドライブを表示するため、ファイルのツリー構造が延々表示されてくると思います。

通常のコンソールコマンドの場合、コマンドを打ったら、処理が終わるまでプロンプトは返ってきません。

これを、非同期に実行するには、STARTコマンドを使います。

C:Usersosuga>start tree c:

コマンドを打ったウィンドウとは別にウインドウが起動され、そちらでtreeコマンドが実行されたことと思います。
また、コマンドを打ったウインドウはtreeの終了を待たずに次のコマンド入力待ちのプロンプトが出ているはずです。

次に、このコマンドを2つ同時に実行してみます。
メモ帳を起動してバッチファイルを作成します。

C:Usersosuga>notepad tst.bat

これを保存し、実行してみてください。

C:Usersosuga>tst.bat

先ほどと同じtreeコマンドを実行するウインドウが今度は2つ出て、同時に実行されます。

データ加工に使用するETLツールには、コマンドラインからの起動を行う機能が装備されているはずですから、treeコマンドと同じように複数の加工ジョブ(加工手順を実行する単位)を並行動作させることが可能です。
(ツールによっては外部から並行起動を許していないものや、同じジョブを同時に起動できないものがあるので注意が必要です)

このように、コンソールコマンドを同時に起動するのはごく簡単です。
しかし、これでは困ることがあります。
コマンドの終了待ちが行われないの後続の処理が待たずにすぐに実行されてしまいます。
きちんと処理を行うためには、2つのコマンドが終了したことを、どうにかして判断する必要があります。

大きなプロジェクトでは運用ツールを使ってジョブの実行順制御を行うのですが、次回は、これをバッチプログラム中で簡単に実行する方法を解説します。


関連コンテンツ

並列処理の話(その1) ~変換処理の並行動作について(前編)~

並列処理の話(その1) ~変換処理の並行動作について(後編)~

並列処理の話(その2) Windowsでコマンドを並列実行する(後編)

並列処理の話(その3) 並列処理の種類

並列処理の話(その4) ハイパースレッディング・テクノロジー

追記:Waha! Transformer 製品サイトの関連コンテンツ

Waha! Transformer の動作プラットフォーム


データの抽出や加工、連携にお悩みではありませんか?

20年以上の実績に裏打ちされた信頼のデータ連携ツール「Waha! Transformer」で、自社に眠るデータを有効活用。まずは無料のハンズオンセミナーや体験版で効果を実感していただけます。

> 純国産ETLツール「Waha! Transformer」

Waha! Transformer
メールマガジンの登録はこちらから
メルマガ登録 お問い合わせ