The Beauty of Python Macros

The Beauty of Python Macros | Tableau-id Press -タブロイド-
Alteryx Inspire 2023

はじめに

こんにちは、石川です。

先月5/22~5/26にラスベガスで開催されたAlteryx Inspire 2023 へ参加してきました。
様々なセッションを聞いてきましたが、その中で面白かったセッションの一つを紹介します!

私のカメラの性能が良くなく、画質が荒かったり、文字認識の線が入っていたりしますのでご了承ください。。。

 

The Beauty of Python Macros

登壇者紹介

Alexander Gross さん
Alteryx ACE & Alteryx Lead, M2. technology & project consulting GmbH

 

講演概要

There are problems and scenarios that seem impossible to solve in Alteryx, such as sending a smartphone notifications, creating QR codes, and many more. Learn how the Python tool makes these problems very easy.

こちらのセッションは、スマホへのプッシュ通知送信、QRコードの生成など、一見Alteryxでは解決が難しそうな問題を、Pythonツールを利用して解決する方法を紹介しておりました。
Community のブログ「The Beauty of Python Macros」で同様の内容が公開されていますが、セッションではデモを交えて紹介しておりました。

 

講演内容

Python SDK と Python Macro の違い

まず、Python SDK(Software Development Kit)とは、pythonを利用してAlteryxのカスタムプラグインツールを作成することができるPython拡張モジュールです。
それに対しPython Macroは、Pythonツールを含めたMacroのことで、Alexanderさん曰く、Python SDKよりも遥かに開発するのが簡単で早いとのことでした。

Python SDK と Python Macro の違い

 

Python ツールの基本的な使い方

AlteryxのPythonツールは下記の3つのステップがベースとなっております。
 ①読み込み
   Alteryx.readメソッドでPythonツールにデータを読み込みます。
 ②書き込み
   Alteryx.write メソッドでPythonツールより出力します。
 ③パッケージのインストール
   Package.installPackages()!pip install Package を利用して、Pythonで用意されているパッケージをインストールします。後述する「スマホへのプッシュ通知送信」では、pushbullet.pyというパッケージをインストールします。

①読み込み と ②書き込み をAlteryx上で設定すると下図のようになります。
Inputの名称をわかりやすいように「fun」に変更し、それをpythonツールで「df = Alteryx.read(‘fun’)」(赤枠部分)で読み込んでいます。
Pythonツールから出力する場合は「Alteryx.write(df,3)」(青枠部分)で、二つ目の引数で出力アンカー「3」を選択しています。

Pythonツールの使い方

余談で、Alexanderさんはツールの配置がきれいに整うので、「3」の出力を利用するのがお好みとおっしゃってました。

 

スマホへのプッシュ通知送信

セッションではいくつかPythonツールを利用した事例を紹介されていましたが、本ブログではスマホへのプッシュ通知送信の事例を紹介します。

Alteryxではメールツールでメールを送信することができますが、現時点ではプッシュ通知送信のツールを備えていません。
ですが、Pythonツールで4行コードを書くことで、Alteryxからプッシュ配信をすることができます。

スマホへのプッシュ通知送信

事前準備として、送信先のスマホにPushbulletというアプリをインストールし、プッシュ通知を受信できるようにします。
また、Pushbulletにログインした後、Pythonツールに設定するアクセストークンを取得しておきます。

アクセストークンの取得

次に、利用するパッケージについてです。
今回はpushbullet.pyを利用します。こちらは、上記でインストールしたPushbulletのサービスを利用するためのパッケージです。

pushbullet.py

ここまで来れば、あとはコピー&ペーストの作業のみです。
pushbullet.pyより下記のコードをコピーし、Pythonツールに入力します。

pip install pushbullet.py
from pushbullet import Pushbullet
pb = Pushbullet(api_key)
push = pb.push_note("This is the title", "This is the body")

1行目の「pip install pushbullet.py」は1回実行すれば、削除可能です。
3行目の「api_key」の部分にPushbulletで取得したアクセストークンを入力します。
4行目の「"This is the title"」の部分にプッシュ通知のタイトル、「"This is the body"
の部分に本文を入力します。

最後にPythonツールをマクロにするため、マクロインプットを接続し、アクセストークンを動的に入力できるようアクションツールを設定します。

プッシュ通知マクロ

セッションでは、一番前の席に座っている方にAlexanderさんのスマホを渡して、上記のPythonマクロを利用して送信したプッシュ通知がちゃんと届いているか確認してもらいました。
無事、”Welcome Inspire, Welcome ○○(スマホを渡された方のお名前)“のメッセージを確認しました。

 

おわりに

こちらのセッションを聞いて個人的に大きな収穫だったことは、Alteryxの標準機能に備わっていないツールを自分で作ることができるという発想を得たことです。
日頃の業務で、Alteryxのツールを探すため「Alteryx ○○」と検索して、該当のツールがないとがっかりすることがあったのですが、変わりに「Python ○○」と検索してPythonで実現可能であることを確認したら、自分でツールを作ることができるので、Alteryxで実現できることがより広まりますね!

Alexanderさんのブログ「The Beauty of Python Macros」では、本ブログで紹介したプッシュ通知の他、ZIPファイルの生成、QRコードの生成などPython ツールを利用した開発方法が分かりやすく書かれているので、ぜひチェックしてみてください!