マーケットプレイスで配布されている「Workflow XML Parser」ツールをご存知でしょうか?このツールは、Alteryxのワークフロー自体を分析するツールです。このツールは2022.1以降のDesignerに対応しています。
Alteryxのワークフローはどのようになっている?
そもそも、AlteryxのワークフローはXML形式で作成されたファイルです。例えば、メモ帳などでyxmd形式のファイルを開いてみましょう。
確かにXML形式で書かれたファイルです。これをパースしていけばいろいろなことを知ることができます。内部でどのようなツールが使われているかなど、これをXML形式として分析してけばいろいろな分析が可能です。ただ、この分析結構大変だったのですが、公式のツールが出たので積極的に利用したいところです。
実際このツールはマクロとなっているようなので、右クリックで開いてみるとなかなかのボリュームのマクロに仕上がっています(ファイルは、おそらく「C:\Users\[ユーザー名]\AppData\Roaming\Alteryx\Tools\Workflow_XML_Parser_1_0」などにあると思います)
実際にこのマクロ自体をWorkflow XML Parserツールで分析してみたいと思います。
Alteryxのワークフローを読み込む
まずワークフロー(もしくはマクロ、分析アプリ)を読み込む必要があります。とはいえ、各ファイル形式の読み込みメニューが専用に用意されているわけではありません。基本的にはテキストベースなので、データ入力ツールで特殊なCSV形式として読み込んでいきます。
データ入力ツールの特殊なCSV形式として読みこむ
データ入力ツールで読み込む場合は、CSV形式を選択します。XML形式もありますが、XMLで読み込むとこのツールを利用することはできません。
ファイルを選択すると、標準的なCSVではないため、以下のようなダイアログボックスが出ます。
設定は赤枠の通り、「区切りテキストファイルとして読み込む」で、区切り記号は「なし」、「先頭行にフィールド名を含める」のチェックを外します。
これで読み込めるのですが、ちょとまってください。実行してみると以下のような変換エラーが出ることがあります(Workflow XML Parserマクロは必ずでます)。これは、データ入力ツールの文字数制限に引っかかっているからです。デフォルトでは1セル(区切り記号間のデータ)で254文字までしか読み込んでくれません。ただ、これは自由に設定で変えられるので十分大きなものに変えましょう。また、文字コードはUTF-8に変更する必要があります。
次に、Workflow XML Parserツールに読み込ませるためには、区切り文字で行に分かれているとNGです。そのため、集計ツールで結合します。
データが入っているフィールドに対して文字列の「連結」を行います。このとき、区切り記号がデフォルトでカンマで入っていますがさくじょするか、「\n」にしてください。
あとはこれを読み込ませるだけです。
Blobとして読み込む
実はBlob入力ツールで読み込むことも可能です。こちらの方が設定項目が少なく楽かもしれません。こちらの場合のワークフローは以下のとおりです。
まず、Blob入力ツールで先程のファイルを読み込みます。
次に、Blob変換ツールでUTF-8テキスト形式に変換します。設定は以下のとおりです。
変換モードは「Blobフィールドから変換する」で、BlobフィールドはBlob入力ツールで読み込んだ中身が入っているフィールド、残りの設定として、「BLOBはあるコードページでエンコードされたテキストである」にチェックを入れ、「Unicode UTF-8」を選択します。これで、UTF-8のテキスト形式で読み込みが可能となります。
あとはこれをこのままWorkflow XML Parserツールに読み込ませればオッケーです。
Workflow XML Parserツールの解析結果
このツールは出力が3つあり、W、T、Cとなっています。
中身を見た感じですと、W=Workflow、T=Tool、C=Connectionでしょうか。それぞれ最初のレコードとともに転置してみましょう。
W出力:
T出力:
長すぎるので2画像に分けます。
こちらはツールごとの設定が入っています。細かい設定は17行目(17フィールド目)のConfiguration Outer XMLの中を見ればすべてわかるはずです。代表的なものはこのテーブルに項目として存在しています。
C出力:
最後のC出力は項目としては5つしかないため、転置せずに掲載したいと思います。
レコード数的には159あり、各接続の線がリストアップされているようです。例えば、1行目であれば、ToolIDが44の出力から、ToolIDが416の入力につながっている、ということになります。
分析例
例えば、T出力からはツール名とカテゴリが取得できるので、この各ワークフローで使われているツールの数などの統計情報を取ることができます。
Workflow XML Parserツールについて調べてみると、セレクトツールが一位でした。
その他、接続情報があるため、T出力とC出力を組み合わせれば、ネットワーク解析ツールで各ツールの接続を確認することができます。
今回は、入力、出力、それ以外でグループを分けてみました。今回のツールは出力が3つなので、赤色のグループがちょうど3つあるので、出力だと思われます。また、一番数が多い青がその他のツールで、黄色が入力ツールです。入力自体は1つしかないのですが、テキスト入力も黄色のグループに入っているため入力がたくさんあるように見えています。
組織内のワークフローを集めて統計情報を取ってみると色々と人によって差があって面白いと思われます。例えば、T出力にAnnotationTextという項目があり、自分で記入したAnnotationしか格納されないため、コメントが少ないのではないか?みたいな類推も可能だったりします(もちろんコメントツールだけ抜き出せますし、コメントも抽出可能です)。
まとめ
- マーケットプレイスで配布されている「Workflow XML Parserツール」についてご紹介しました
- データの見方と、簡単な分析の示唆をしました
- また面白い分析内容があったらブログなどで共有したいと思います
- Workflow XML ParserツールのHelpはこちら
サンプルワークフロー
次回
未定です。
コメント