プロセスフローとデータフロー

Avatar
dstn

開発部の土岐です。

dstnでは日々DataSpiderのさまざまなスクリプトを紹介・解説しています。

DataSpiderをスクリプトを見ればどのような処理を行っているか見た目で分かる、そんな「処理の見える化」ができることが大きなメリットの一つです。

その「スクリプトの見方」を知っておくと、ぱっと見ただけで処理の概要を把握することができるわけです。

ということで今回は! スクリプトの処理を把握するには必須の、DataSpiderスクリプト開発のキホンのキ、「プロセスフロー」と「データフロー」について解説します。

プロセスフローって?

はい、この黒い矢印がプロセスフローです。

これはその名の通り、処理(プロセス)の流れです。

スクリプトの中で、この黒い矢印順に処理が行われていきます。

というように黒い線が繋がれていたら、「スタートしてCSV読み取りが実行されてXMLファイル読み取りが実行されるんだな」ということが見た目で分かりますね。

もうちょっと複雑な例を見てみます。

逆引きリファレンスの「ディレクトリに存在するファイル名を判定し、拡張子ごとに処理を分岐したい」という処理のスクリプトです。

一旦黄色い矢印は見ずに黒い矢印だけ「Start」から追っていくと、だいたい処理が分かると思います。

Start後の最初の「list」のアイコンはファイル一覧を取得しています。その後「foreach」アイコンでループしています。

ループの中で黒い矢印が分岐しているところがこの処理のキモです。このように、処理の条件分岐などが発生するところはプロセスフローが複数引かれることがあります。

実際にどのような分岐を行っているかはアイコンのプロパティを確認すれば分かります。まずはスクリプトの見た目で「ここで何らかの条件によって分岐してるんだな」ということが分かればOKです。

その後、分岐した処理が戻り、ループが終了後、スクリプトの「End」に行き着きます。

ということで、この処理は「ファイルの一覧を読み取った後にループし、その中で条件によって分岐した各処理を行って終了している」という大まかな処理内容を読み取ることができます。

このように、「Start」から「End」までのプロセスフローを追っていけばそのスクリプトで行っている処理の概要を把握することが可能なわけです。

補足として、以下のようにEndに行かずに終了しているフローもあります。これはエラーを発生させるアイコンであるため、ここに行き着いた場合はエラーとして処理が終了します。

また、「End」アイコンは条件分岐によって複数あることもあります。

というところでプロセスフローを理解したら、次はデータフローです。

 

データフローって?

はいこれです。この黄色い点線の矢印です。

これも名前の通り、データの流れです。

この黄色い線の根元のアイコンからデータが取得されて、矢印の先のアイコンにデータが渡されます。

 

ということでこのアイコンの並び見ると、「CSV読み取りのデータをCSV書き込みに渡してるな」ということが把握できます。

実際のところ、このデータの流れと処理の流れは同じになることが多いため、プロセスフローが重なった場合以下のように黒と黄色の点線の矢印になります。

この場合踏切の色に似ているため、これは踏切フローと言われ・・ません!(すいません嘘です)

 

プロセスフローとデータフローから分かること

ということで「黄色い点線の矢印はデータの流れ」ということを踏まえた上で、先ほどのちょっと複雑なスクリプトに戻ってみましょう。

(逆引きリファレンス「ディレクトリに存在するファイル名を判定し、拡張子ごとに処理を分岐したい」)

この中でデータフローに注目すると、以下の3つですね。

左上のlistからforeachにデータフローが引かれています。listは「ファイル名取得」処理、foreachは「繰り返し(データ件数)」なので、ファイル一覧を取得してそのファイルごとにループを回していることが読み取れます。

右下のcsv_readからcsv_write、およびxml_readからcsv_write(1)の2つのデータフロー、CSVファイル・XMLファイルから読み取ったデータをCSVファイルに書き込んでいます。ファイルの種類ごとにファイル読み書きをやっているわけですね。

ということで先ほどプロセスフローから把握した「ファイルの一覧を読み取った後にループし、その中で条件によって分岐した各処理を行って終了している」という処理内容に加えて、データフローを読み取ると、

ファイルの一覧を読み取った後に「ファイル一覧ごとに」ループし、その中で条件によって分岐して「ファイルの種類ごとにファイル読み書き」を処理を行って終了している

とよりデータの流れも含めた処理を見た目から読み取ることができます。

このように、プロセスフローとデータフロー、そして置かれているアイコンの種類から、だいたいの処理の概要を読み取ることができます。


 

ということで今回は以上です。スクリプトをざっと見ただけで、把握できる情報がかなりあることが分かりますね。この辺もDataSpiderの便利なところです。

データフローに関しては、もう少し掘り下げて今後以下のようなことを解説していこうと思います。

  • データフローには通常のデータフローとPSPフローがある
  • データには「テーブルモデル型」と「XML型」の2つがある
  • Mapperでのデータスキーマの設定方法

このあたりを知っておくと、スクリプトの開発を行うときに悩まずに効率的に開発できるはずです。

ということで引き続き、DataSpiderによる開発を楽しんでいきましょう!

 

 

 

 

 

 

 

 

 

コメント

ログインしてコメントを残してください。

Powered by Zendesk