SpotfireにおけるIronPythonスクリプトとPythonデータ関数の最大の違いは、「Spotfireの画面や操作を自動化するか」、それとも「データそのものを加工・計算・分析するか」という目的と実行環境にあります。
どちらもPythonの構文を使いますが、裏側で動いている仕組みが全く異なります。
IronPythonスクリプトとPythonデータ関数の比較
| 比較項目 | IronPythonスクリプト | Pythonデータ関数 |
|---|---|---|
| 主な目的 | ダッシュボード操作の自動化・UI制御 (ボタン押下でページ移動、フィルター変更、ビジュアライゼーションのプロパティ変更など) |
データの加工・統計解析・機械学習 (テーブルの結合、予測モデルの実行、外部ライブラリの利用など) |
| 実行環境 | Spotfire application for Windows(Installed Client、旧称Analyst)、Web Player、Automation Servicesのすべてで実行可能 (※追加の環境構成は不要) |
・Spotfire application for Windows(Installed Client、旧称Analyst)では標準で実行可能 ・Web PlayerやAutomation Servicesでの実行には、別途Pythonサービス用のサーバー環境構築が必要 |
| 主なトリガー | アクションコントロール(ボタンなど)、文書のプロパティの変更時 | データの更新時、計算結果の自動再計算、アクションからの呼び出し |
| データの入出力 | 文書のプロパティや画面上の要素を直接書き換える | 「入力パラメータ」としてデータを受け取り、「出力パラメータ」としてテーブルや値を返す |
| 入門記事 | IronPython入門編 | Pythonデータ関数の使い方 |
続き。
| 比較項目 | IronPythonスクリプト | Pythonデータ関数 |
|---|---|---|
| Pythonのバージョン |
2.0 / 2.7 / 3.4 ※Spotfireのバージョンに依存・標準同梱 |
3.7~3.14 ※Spotfireのバージョンに依存・標準同梱 |
| 実行エンジン |
.NET環境上のIronPython |
標準的なPython(CPython) |
| 実行プロセス | Spotfireのメインプロセス内で実行 | Spotfireとは別の外部プロセス(標準の python.exe)で実行 |
| Spotfire APIへのアクセス | 可能 (ドキュメント、ページ、ビジュアライゼーションを直接操作できる) |
不可 (画面のUIや設定は直接操作できない) |
| 利用可能なAPI |
・Python 標準API ・.NET Framework 4.8 API ・Spotfire API(Spotfire Application C# API) |
・Python 標準API |
| 利用可能なPythonライブラリ |
・Python 標準ライブラリ ・カスタムモジュール(参考資料) ※サードパーティーライブラリ(NumPy、pandasなど)は原則使用不可(C言語ベースのライブラリが動作しないため) |
・Python 標準ライブラリ ・Spotfire同梱ライブラリ(NumPy、pandasなど、参考資料:v14.6.4 / v14.0.13) ・PyPIからのサードパーティーライブラリ追加が可能 |
| サンプルコード | IronPython Scripting in Spotfire® - Overview | Spotfire Data Function Library: Python and R Scripts for Data Analysis |
それぞれの使い分けの目安
- IronPythonスクリプトを使うべきケース
- 「ボタンを押したら、特定のフィルターをリセットして別のページに遷移させたい」
- 「選択した値に応じて、棒グラフの色や軸の項目を動的に切り替えたい」
- 「分析ファイルをExcelやPDFに自動でエクスポートしたい」
- Pythonデータ関数を使うべきケース
- 「pandas を使って複雑なデータクレンジングやピボット処理を行いたい」
- 「scikit-learn を使って、画面上のデータから売上予測やクラスタリングを実行し、結果を新しいカラムやテーブルとして出力したい」
- 「外部のWeb APIからデータを取得してSpotfireのテーブルに読み込みたい」