Alteryxで扱えるファイル形式のベンチマーク結果を紹介します
Alteryxでは非常にたくさんの形式のファイルを扱うことができますが、テンポラリ的にデータを保存したりする際に、どの形式が良いのか、速度面・容量面についてベンチマークを行ってみました。
※厳密なベンチマークを行っているわけではないので、目安としてご活用ください(すみません、試行回数は1回です。一応何度かやっていて大きく値が変わらないことは確認しています)
今回テストしたファイル形式
- 旧Excel(1997-2003)形式(XLS)
- 現行Excel(2007~)形式(XLSX)
- 旧Access(2000-2003)形式(MDB)
- 現行Access(2007~)形式(ACCDB)
- カンマ区切りテキスト(CSV)
- SQLite形式(SQLITE)
- Tableau 抽出ファイル(TDE)※書き込みのみ
- Tableau Hyper 抽出ファイル(HYPER)※書き込みのみ
- Alteryx Database(YXDB)
環境
CPU | Core i7-6600U |
---|---|
メモリ | 16GB |
ストレージ | SSD 500GB(SanDisk SD7SN6S-512G-100) |
OS | Windows7(64bit) |
ベンチマーク用ワークフロー
ある程度の件数のレコードをローカルに保存するようなワークフローで検証しました。
時間の計測は、Alteryxを実行した際の「XX秒」をそのまま用いているので、読み込みの時間、WFの内部処理時間も込みで計測しています。
使用したファイルは、Alteryx付属のサンプルファイル「TutorialDataAddressAll.yxdb」です。これをフィールド付加ツールでレコード数を6倍にして使っています。入力は、8,716件ですが最終的には52,296件のレコードを保存しています(AlteryxのWF上で出るデータサイズは約18Mでした)。
ちなみに、読み込みは、データ入力アイコンのみをワークフロー上においてWF実行時の時間を記録しています。
ベンチマーク結果
以下結果です。まずは、表形式です。
ぱっと見でわからないので、それぞれグラフ化して見ていきましょう。
読み込み
※Tableau形式は読み込みに対応していません
読み込みは、YXDB(Alteryx形式)、CSV(テキスト形式)、SQLite形式が早いです。Accessも早いです。一方、Excel形式は遅いです。
書き込み
書き込みは、YXDB(Alteryx形式)が早いです。その他CSV(テキスト形式)、XLSX(Excel2007以降)、SQLite形式、Hyper(Tableau抽出ファイル)も早いです。一方、TDE(Tableau抽出形式)、Access形式、XLS(Excel1997-2003形式)はかなり遅いです。
色でファイルサイズを表現していますが、ファイルサイズにある程度依存している傾向があるかと思います。
ファイルサイズ
ファイルサイズは、Alteryx、Tableau形式(Hyper、TDE)、XLSX(Excel2007~)が軽量です。その後、CSV(テキスト形式)、SQLiteが続き、XLS(Excel1997~2007)、Access形式が最重量となっています。
ちなみに、Accessの場合は何度もテーブルを書き換えるとどんどんサイズが大きくなるので要注意です。
最速のAlteryx形式比で見てみましょう
読み込み、書き込み、ファイルサイズも一番結果の良いAlteryx Database形式(YXDB)を基準とした時の倍率で見ていきたいと思います。
読み込み(YXDB比)
YXDBに対して、Excel形式は約20倍遅いです。データソースとしては、CSVが優秀に思います。型ごと持ってきたい、ということであればAccess形式も良いかもしれません(が、書き込みが遅いので・・・)。
書き込み(YXDB比)
YXDBに対して、Access形式、Excel(1997~2003)形式は約50倍遅いです。結果ファイルの共有のためにExcelやAccessは使いやすい形式ですが、なるべくExcelが良いのであれば、XSLX(Excel2007~)で共有したいところです。Accessの代わりはCSVが良いのではないでしょうか?(といってもCSVだと型とかが保存できないのが難点です)。
ファイルサイズ(YXDB比)
ファイルサイズは、XLSX(Excel2007~)が優秀です。Accessは肥大化傾向がありますね(上書きするたびにファイルサイズが巨大化するという問題もあります)。
まとめ
まとめとして、書き込み速度順に並べたグラフを掲載します。
- Alteryxのみで完結する場合はAlteryx Database(YXDB)が高速で容量も節約可能です(他で使い回しが効かないのが欠点)
- Excel(xlsx)は書き込みは早いですが、読み込みは遅いです。ファイル共有用には良いですが、Alteryxでの再利用用途には向きません(が、YXDBの4倍程度なので・・・)
- CSVは全体的に優秀ですが、型を保存できないのが欠点です
- Access形式(MDB、ACCDB)は、書き込みは極端に遅いですが、読み込みは比較的早いです。ファイル共有用としては書き込みが遅いのであまり使いたくないかと思います
- 意外とSQLite優秀なんですよね。他で使いまわしにくいのが欠点です
どれも一長一短なので、他のソフトでの使い回しが効くかどうか、Alteryxで再利用するか、など考慮して使い分けるのが良いかと思います(読み込みが遅いですが、他の形式との差はそこまで大きくないので、意外と何も考えずXLSXというのも一つの手ではあるかもしれません)。
また、WFの作成段階ではとりあえずYXDBで保存しておいて、最後にファイル形式を差し替える、という手もありかと思います。
※Alteryx Designer 2019.1.4.57073時点の情報です