Alteryx Desginerの動作が重いときに試したいメタデータの自動設定無効化

こんにちは、小澤です。

Alteryx Designerでワークフローを作成する際に知っておきたい知識として、 データがどのタイミングで処理されるのかと、メタデータの扱いがあります。

今回は、メタデータに関連した原因でワークフロー作成時の動作が重くなった時の対処についてお話しします。

はじめにちゃんと「Alteryxが重い」を分けて考える

Alteryxは基本的にはサクサク動いてくれますが、「Alteryxが重い」という状況が全く発生しないわけではありません。 しかし、実はこの「Alteryxが重い」という言葉だけでは、何を表現したいのか不明瞭です。 多くの場合、「実行してから処理が完了するまでに時間がかかる」か「ワークフロー作成時に数秒レスポンスが返ってこないことが頻繁に発生する」のどちらかを指していますが、 これらは全く別な話ですね。

今回、対象とするのは後者の「ワークフロー作成時に数秒レスポンスが返ってこないことが頻繁に発生する」となります。

ワークフロー作成時に重くなる原因

ご存じの通り、Alteryxでは、「RUNボタン」が押されるまで、実際にデータを読み込んでワークフローで定義された処理を実行するということはありません。 この動作によって、ツールを新しく配置したり削除したり、設定やコネクションを変更したりといった動作のたびに処理をするための待ち時間が発生しないということを意味しています。

そのため、通常はワークフロー作成時に都度待たされるとことは無いはずなのですが、残念ながらいつでもそうであるとは限りません。 ワークフロー作成時にツールを選択して設定画面を開いたり、他のツールを選択したりなどの際に重くなる可能性がある原因として、メタデータに起因するものがあります。

Alteryxにおけるメタデータは列名や列の型などの情報で構成されますが、 これらに関しては、実行時以外のみでなくワークフロー作成時にも随時やり取りの処理が実行されます。 これは例えば、Selectツールでチェックを入れる項目を変更すると、後続のツールの列一覧に表示される項目も自動で変わってくれるといった、 ワークフロー作成時の設定項目として利用する際に便利に使える仕組みとなっています。 詳細は以下も併せてご参照ください

メタデータは通常、サイズは小さいので都度伝播させる処理を実行していてもそのために毎回Alteryxからレスポンスが遅くなるといったことがありません。

しかし、常にそれが当てはまるとは限りません。 メタデータの伝播に時間がかかるケースとして以下のような場合が考えられます。

  • 列数が数百・数千と非常に多いため、メタデータのサイズも大きくなっている
  • ツールの設定値から、メタデータとして伝播させる情報を取得するのに時間がかかる

前者は分かりやすいケースですね。 Alteryxではメタデータのサイズは列数に依存します。 通常の利用の範囲では、その数が膨大にあるケースはあまりないので、常時伝播させる利便性を優先させているわけです。

後者はどういったケースが考えられるでしょうか? Cross Tabツールのように、データに対して処理を実行するまでどのようなメタデータが生成されるかわからないケースではメタデータも実行時まで出力しないような動作になっています。 しかし、これはツールの動作としてそういう設計にしているためであり、 新たに作成されたツールがメタデータを出力に渡すために都度計算するような仕組みになっていたとしたらその限りではありません。

このケースで想定される例としては、外部からデータを取得するようなコネクタの実装によるものが考えられます。 ツールの作り方次第では、メタデータを取得する処理の実装に際して、それを行うためにデータソース側から都度取得しているかもしれません。 その場合、その処理に時間がかかってしまい、結果的にAlteryx操作時にそこでカクカクしてしまうという可能性が考えられます。

重いメタデータを扱うワークフローを快適に作成するには?

これらのケースへの対処として、挙げられるものとしては、ワークフローの作り方を工夫して重くならないようにする、というのが考えられます。 一方で、メタデータの伝播に時間がかかるような実装が避けられないケースというのはどうしても発生してしまうものです。

そういったときには、データと同様メタデータも自動的に処理されないようにするのが得策です。 これは、設定から変更が可能です。 Option > User Settings > Edit User Settings で設定画面を開き、Advancedタブにある「Disable Auto Configure」にチェックを入れます。

これによって、自動的にメタデータの処理がされないようになります。 試しに、以下のようにファイルを読み込んだのち、Selectツールを接続すると、設定画面には「Unknown」しかないのが確認できます。

この設定が行われている状態では、「F5」キーを押すことで手動でメタデータの伝播を行わせることが可能です。 適宜手動で反映させながら、ワークフローを作成していくことで、そのタイミング以外でAlteryxからレスポンスが遅くなることを防げます。

おわりに

今回は、メタデータに依存してAlteryx Designerの動作が重くなる原因とその対処法を解説しました。

使いこなすには少々慣れが必要になりますが、こういった事象でお困りの際には一度お試しください。