【Alteryx Tips】ZIPファイルに圧縮する(バッチファイル利用)

Alteryxで出力ファイルをZIPファイルにバッチファイルを使って圧縮する方法

Alteryxは標準で出力ファイルをZIP形式にまとめる機能がありません。基本的にはコマンド実行ツールを使って外部ツールで実現することになります。別の記事では直接コマンド実行ツールに設定を書き込む方法についてご紹介しましたが、今回はバッチファイルで行う方法をご紹介します。

 

おさらい

  • Alteryxで出力ファイルをZIPファイルにまとめて圧縮する場合は、コマンド実行ツールで外部ツールを使う
  • 外部ツールは7zipなどを使う方法が有名ですが、Windows標準機能のPowerShellでCompressArchiveコマンドを使う方法がある
  • フォルダ構成は以下のイメージ

ファイル構成

 

バッチファイルで行う方法

前提として、前回のバッチファイルを使わないケースを読んでおいていただけると幸いです。

前回からの変更すべきポイントとしては、以下の部分です。

バッチファイルで圧縮するWF

この変更ポイントで行う内容は以下のとおりです。

  1. フォーミュラツールでバッチファイルを作成する
  2. セレクトツールで不要な項目を削除
  3. フォーミュラツールで作成したバッチファイルの中身をコマンド実行ツールで書き出し、実行

 

1.フォーミュラツールでバッチファイルを作成する

まず、フォーミュラツール内にバッチファイル用の設定を書き込みます。

フォーミュラツール設定

ここでは、圧縮ファイル作成からファイル削除までの手順をそのまま記載しています。以下のような形です。これは、zipフォルダの内容を、output.zipというファイルに圧縮するという内容になっています。

2行目は、zipファイルにあるフォルダを削除するコマンドです。

"powershell compress-archive -Force zip output
del /Q zip\"

 

なお、outputという文字列のあとに改行を入れています。改行は「\n」などで表記せず、そのまま改行を入れてください(ダブルクオテーション内の改行はそのまま改行として認識されます)。他にもファイルをコピーしたりといったバッチファイル内でやりたいことがあれば、ここに記載します。

 

2.セレクトツールで不要な項目を削除

セレクトツールでは、バッチファイル用のコマンドが入った項目だけ残して残りはチェックを外します。

セレクトツール設定

 

3.フォーミュラツールで作成したバッチファイルの中身をコマンド実行ツールで書き出し、実行

コマンド実行ツールの設定は、書き出し部分が若干複雑になっています(CSV設定でバッチファイルを書き出すため)。

なお、すべて相対パスにしていますが、事前にワークフローを保存しておいてください。

コマンド実行ツール設定

  • ソースの書き込み
    • 後ほどご紹介します
  • 外部プログラムを実行
    • ソースの書き込みの部分で指定したファイルをそのまま記載します

 

ソースの書き込み設定は以下のとおりです。

一旦CSVファイルとしてファイルの書き込み先を指定してください。ただ、実際のファイル名は拡張子「bat」にする必要があります。

ソースの書き込み設定

  • ファイル形式
    • CSV
  • 区切り記号
    • なしにします
  • 先頭行にフィールド名を含める
    • チェックを外す
  • 出力フィールドを引用
    • 「常に非表示」にする
  • コードページ
    • コマンドの内容が日本語を含まない場合は「ISO-8859-1 ラテン語-I」でも構いませんが、「日本語Shift-JIS」が無難です

 

なお、バッチファイルを動的に変更する必要がなければ、ワークフローのイベント機能を使うことで、ワークフロー完了時に圧縮用のバッチファイルを起動するということも可能です。

 

まとめ

  • Windows標準のPowerShellを使ってZip圧縮する際に、バッチファイルを用いて複雑な制御をする方法をご紹介しました

 

サンプルワークフロー

SampleWF_バッチファイル利用

 

 

 

※Alteryx Designer バージョン2021.4.1.04899時点の情報です

Alteryxの導入はぜひKCMEで!

セルフサービスデータ分析ツール「Alteryx」は4週間無償トライアルが可能です。

製品に対する操作方法、技術的な質問などは導入前・導入後に関わらずメールにてお答えします。また、Alteryxを用いた環境構築、開発、ヘルプデスク対応、ハンズオン、トレーニング、ワークフロー作成なども承りますので、お気軽にご相談ください。

おすすめの記事