特に実務部門では“あるある”ネタだと思いますが、分析やレポート用にデータを既存のシステムから抜き取ったり、抜き取ってもらったデータを共有してもらった場合、同形式(同じテーブル、同じ拡張子)のデータが別々のファイルとして多数蓄積することがあります。
例えば、アクセスログの集計データが毎日CSVで自動で吐き出されているケースなどです。この場合、Tableauで分析を行うには、いったんデータを一つに結合する必要があります。
プログラムが書けるエンジニアならば、ちゃっちゃっとコードを書いて、自動でまとまるようにしてしまうと思います。
しかし、実務部門においては、プログラミングができずに一つずつファイルを開いてエクセルで一つにまとめる作業を毎週繰り返し行っていたりすることが意外と多く存在するのではないでしょうか?
毎週でも30分で終わる作業だったりすると、わざわざシステム部門に申請しなくても、という考えもあるかもしれませんが、ヒューマンエラーのリスクと、累積していく不毛な集計作業時間を考えると極めて非効率・非生産的な業務と言えます。
こういった処理はAlteryxで簡単に実装することができます。
今回は先日の投稿で用いた、国交省が公開している日本の学校のポイントデータを使って処理のフローを見てみましょう。
実際にはこちらのサイトから全国分のデータを一括でダウンロードできるので、それを使えば済む話ですが、ここではデータの一括結合の処理事例を示すため、あえて都道府県別に47のZIPファイルをダウンロードします。
ありがちなケースを想定すべく、『都道府県別』フォルダの下に個々のダウンロードファイル(ZIPを解凍した後のフォルダ)を置く形にしています。
例えば、月別にフォルダがあって、その中に日別アクセスログのCSVが置いてあるようなケースが同類ですね。
個々のフォルダの中身は先日の投稿と同じく、シェープファイルなどが含まれています。
ではAlteryxモジュールを見てみましょう。[Directory]と[Dynamic Input]ツールで簡単に実装できます。
これで完成!
格好悪いので別のファイル群に切り替えようかと一瞬心が揺れましたが、エラーへの対処も実装の一部なのでその後の修正処理も記します。
上の画像では切れてしまっていますが、エラーは5つのファイルで発生していました。
エラー内容は全て以下のような感じです。
…\P29-13_02.shp” has a different schema than the 1st file in the set.
つまり、最初に読み込んだ(テンプレートでも使用した)P29-13_01.shpとスキーマが違うようです。
解決するのに意外と時間がかかってしまったのですが、結論から言うと、変数の型が違うだけでした。
上図で示した[Union]ツールのように厳密に型が一致しなくてもエラーが出ないものもありますが、そうでないものもあります。
[Dynamic Input]は後者なようで注意が必要です。
システムから自動的に吐き出されているデータならば、このようなエラーは生じにくいと思いますので通常はシンプルなモジュールで実装可能なはずです。
今回はトラブル処理のおまけつきということで。
T.Fuji