Alteryx上で日本語ファイルの(UTF-8への)文字コード変換を行う(Run Command Tool編)

2015.02.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Alteryxでは、データソースの入力元・出力先として実に様々なタイプのリソースをサポートしています。その中で最もシンプルと言えるのはテキストファイルやCSV等のファイルと言えるでしょう。当エントリはこの中でCSVファイルの文字コード変換に関してちょっと触れてみたいと思います。

目次

Input Toolのファイルエンコード一覧には『Shift_JIS』や『EUC-JP』等の日本語対応文字コードが存在しない

まず、(日本人にとって/日本国内でファイルを扱う人にとって)衝撃の事実をこちらに。(どーん)

alteryx-file-encode-by-runcommand-01

上記キャプチャは入力ファイル/データソースを扱う『Input Tool』のファイルエンコード指定の選択項目一覧です。ご覧の様に日本語ファイルエンコードの『Shift_JIS』や『EUC-JP』と言ったものがファイル選択時のエンコード指定一覧に存在していません。

ま、考えてみればそりゃそうですよね。これまで日本国内では扱われていなかった商品な訳ですし。...となると、この中で対応可能である『UTF-8』に文字コードを統一し、その上でファイルを読み込ませて処理を繋げて行く必要がありそうです。

とは言え、ファイルを都度テキストエディタで開いてエンコード指定を変えたファイルとして保存し直し、その別名ファイルを読み込ませる...みたいな作業は正直メンドイです。数が増えてくるようであれば尚更。折角Alteryxを使うのであればこの辺の作業も『ポチッとな』で済ませたいところ。

追記:

すみません。どうやら他にも調べてみると『Multi Field Formula Tool』というツールを使う事でShift_JISやEUC-JPを含めた文字コード変換処理が行える様です。詳しい使い方や対応方法等は後ほど別エントリでご紹介し、当エントリのタイトルもそれに合わせて若干変更させて頂きます。

『Run Command』ツールを使ってAlteryxの処理フローへ『nkfを使った文字コード変換』処理を組み込む

一番ベストな解決策は『ファイル読み込みの際のエンコード指定一覧にShift_JISやEUC-JPが追加される事』です。一応要望は出してみましたが、実際どうなるかは分かりません。仮に取り込まれるにしても、その時期が何時になるかも分かりません。

なので、ひとまず今の段階で出来る方法で何とかしてみたいと思います。以前御紹介したファイルエンコード変換ツールの『nkf』を使って、処理コード自体をAlteryxで動かしてみたら上手く行けるんじゃなかろうか。そう思って試してみました。

まずはnkfの入手&インストール。詳細については以下エントリをご参照ください。

Tableauで良く用いられるサンプルファイル『SuperStore Sample』のEXCELファイルを使ってCSVを作成します。この際にEXCELから保存されたCSVファイルのエンコードはShift_JIS

そのファイルを、nkfのコマンドで読み込み、UTF-8のCSVファイルとして生成します。この辺はnkf自体の普通の使い方なので特に難しい部分でも無いですね。

C:\app\nkf>C:\app\nkf\nkf32.exe -w -Lw C:\app\nkf\Orders.csv > C:\app\nkf\Orders-utf8.csv

C:\app\nkf>C:\app\nkf\nkf32.exe -g C:\app\nkf\Orders.csv
Shift_JIS

C:\app\nkf>C:\app\nkf\nkf32.exe -g C:\app\nkf\Orders-utf8.csv
UTF-8

次いで、上記実行文の中で実際に変換に使った部分を使い、バッチファイルを作成しておきます。

file_encode.bat

C:\app\nkf>C:\app\nkf\nkf32.exe -w -Lw C:\app\nkf\Orders.csv > C:\app\nkf\Orders-utf8.csv

そしてここからがAlteryxの操作。Alteryxでは『Run Command』というツールアイコンがあり、任意のコマンドやプログラムをAlteryx経由で実行させる事が出来ます。以下の様に設定を行った『Run Command』ツールを配置する事で処理を組み込む事が出来ます。

alteryx-file-encode-by-runcommand-02

こちらが実行時の入力ファイルの内容、日本語部分が文字化けしていて読めませんが...

alteryx-file-encode-by-runcommand-03

処理実行後の出力ファイルの内容はUTF-8に変換されていてちゃんと読めるようになっています。

alteryx-file-encode-by-runcommand-04

まとめ

Alteryxに於ける文字コード変換で、対応していない文字コード変換を行う手順についてのご紹介でした。今回のケースでは『nkf』及びバッチファイルを扱いましたが、勿論他のプログラムでも適用は可能です。Alteryx単体では出来ない処理についてもこの仕組を使えば利用の幅は格段に広がりますね。(とは言え、デフォルトで日本語文字コードやその他の文字コードについても対応してもらえるのが一番嬉しいところです。対応してくれると良いなぁ...) こちらからは以上です。