【Alteryx】Tips:出力ファイル名に日時を付加したら複数ファイルに分かれてしまった原因と解決策

2021.03.03

こんにちは。データアナリティクス事業本部のまつおかです。

出力ファイル名に日時を付加して出力したら、ファイルが複数に分かれてしまったことありませんか?私はありました。そんな経験をされた方はきっと他にもいらっしゃると思います!

そこで今回は、出力ファイル名に日時を付加して出力した場合にファイルが複数に分かれてしまった原因と、解決策をご紹介します。

出力ファイルが複数に分かれてしまう原因

以前私は出力部分のワークフローをこのようにしていました。

フォーミュラツールを使用して各レコードに実行時点の日時を取得し、

データ出力ツールでファイル名に日時(yyyymmdd_hhmmss)を付加し出力。

一見特に何も問題ない気がするのですが、実はこの方法だと出力されたファイルが複数に分かれてしまう場合が・・・!
なぜだかわかりますか?

上記の方法を取った場合、1レコードずつ関数「DateTimeNow()」が実行されますので、レコード数が膨大な場合や、レコードによってたまたま秒や分をまたがって関数が実行された場合に異なる日時を取得してしまう可能性があります。
その結果、異なった日時がファイル名に付加されファイルが複数に分かれてしまうということが起こります。

出力されたデータのトータル数に不足はありませんが、ファイルが分かれてしまうと困りますね。。。

全レコードをひとつのファイルに出力するには

ではどうすれば全レコードをひとつのファイルに出力できるでしょうか。
答えは簡単!

「DateTimeNow()」関数の実行を1回だけにすればいいのです。
ということで、ワークフローを以下のように変更しました。

テキスト入力ツールで予め文字列を入力しておき、フォーミュラツールで実行時の日時に更新します。

その後、フィールド付加ツールを使って日時を全レコードに付加します。
あとは先程のデータ出力ツール同様、ファイル名に日時を付加すればOKです。この方法であれば全レコード同じ日時が付加されていますので、ファイルが複数に分かれることはありません。

おわりに

ちょっと考えればわかる簡単なことですが、あるあるな事象ではないでしょうか。
そんなあなたに、こちらのTipsが届きますように!