Alteryx 2018.3 新機能:「Python Tool with Jupyter Notebook」でPythonコードをAlteryxワークフロー上で実行出来るようになりました #alteryx

2018.09.04

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

日本時間の2018年08月28日、Alteryxの最新バージョンとなる「v2018.3」がリリースされました。

当エントリではv2018.3の新機能である「「Python Tool with Jupyter Notebook」でPythonコードをAlteryxワークフロー上で実行出来るように」についてその内容をご紹介したいと思います。

目次

Alteryx Designer上でJupyter Notebookを介してPythonコードを直接実行出来るようになりました

Alteryx 2018.3では、新しく「Python Tool」というツールが利用出来るようになりました。

Alteryx上でPythonコードを実行させるために、このツールでは「Jupyter Notebook」をAlteryx Designer上で使えるように「組み込みIDE」の形で用意する事でその機能を実現させています。「何のこっちゃ」という感じもしますが、実際に試してみたいと思います。

Python Toolは「Developers」カテゴリに展開されています。

Jupyter Notebookの起動

このツールをドラッグアンドドロップでキャンバスに展開します。すると以下の様なメッセージが表示されました。Designer上のNotebookインスタンスを使い始める際は一旦ツールの選択を解除の後再度選択する事で使い始める事が出来そうです。

選択OFF→再度選択を行うと、以下の様な形でJupyter NotebookがAlteryx Designer上で起動しました。

最初のコーディングステップでは、Alteryx APIパッケージをインポートして、Alteryx EngineとPython Toolの間でデータを渡すことができるようになっています。from ayx import Alteryxと記載されている部分がそのコードとなります。(この部分はツール起動時に自動挿入されています)

Pythonツールで個々の処理を実行するには、下記指定の「再生」ボタンを押下するか、キーボードショートカットで「Shift + Return」で対応します。

Alteryx.help()コマンドを実行し、Alteryxパッケージのヘルプを表示させてみました。

導入済みのパッケージ&パッケージのインストール

Pythonツールでは、以下のデータサイエンスに関するパッケージが含まれています(ヘルプページからの転載)。これらのパッケージに関する詳細な解説は「Python Tool Libraries - An Introduction to Python - Alteryx Community」をご参照ください。

  • ayx: Alteryx API
  • jupyter: Jupyter metapackage.
  • matplotlib: Python plotting package.
  • numpy: NumPy, array processing for numbers, strings, records, and objects.
  • pandas: Powerful data structures for data analysis, time series, and statistics.
  • requests: Python HTTP for Humans.
  • scikit-learn: A set of Python modules for machine learning and data mining .
  • scipy: SciPy, Scientific Library for Python .
  • six: Python 2 and 3 compatibility utilities.
  • SQLAlchemy: Database Abstraction Library.
  • statsmodels: Statistical computations and models for Python.

その他パッケージをインストールする場合はAlteryx.installPackages("パッケージ名")で導入可能です。

入力データの設定

Pythonツールでは、複数の任意の入力データを読み込む事が出来ます。入力データへの接続を行い、Pythonコードでその内容にアクセスするためには、データをキャッシュしておくために一度ワークフローを実行する必要があります。(でないとエラーになります)

入力データの指定はAlteryx.read("データに割り当てられたナンバー(例:#1など)")の形で参照が可能です。

また、Alteryx.read(Alteryx.getIncomingConnectionNames()[<インデックス番号>])の形ですべての接続を読み込み、返された0インデックス配列を参照することも可能です。

なお、読み込まれたデータは全て「Python Pandas DataFrame」として認識されます。これにより、Pythonでデータを処理する際の柔軟性が向上します。

出力データの設定

Python Toolでは、任意の出力を最大5つまで指定出来ます。Alteryx.write(, "出力アンカー番号")の形でコードを実行する事で、所定の出力を行う形です。

上記構文にあるように、出力内容としてはpandasのDataFrame形式のみが指定可能です。この形式以外のデータの場合は一旦DataFrame形式への変換を済ませておく必要があります。

Notebookの保存について

ワークフローは定期的に保存しておきましょう。そうする事で設定ウインドウから離れた際にコードが保持され、必要に応じて復帰するためのチェックポイントも用意されます。任意の場所まで戻すには、[File] > [Revert to Checkpoint]で選択します。

また、変更が保存される前にツールをクリックすると、「このページを離れる/再ロードしていいですか?」と尋ねられます。必要に応じて「Overwrite(上書き)」を指定し、内容を保存しておいてください。

まとめ

という訳で、Alteryx 2018.3の新機能「「Python Tool with Jupyter Notebook」でPythonコードをAlteryxワークフロー上で実行出来るように」の内容紹介でした。

この新機能については先日(このトピックが)発表された「Alteryx Inspire 2018」の現場でも大きな歓声が上がっていましたし、実際非常に嬉しい機能でもあります。Jupyter Notebookという馴染みやすいインタフェースでPythonが実行出来る、というのは便利ですね。この機能の登場により、AlteryxでのPython活用がより加速されていきそうです。私もこの環境を使ってPythonを勉強していきたいと思います。

その他参考情報

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400