AlteryxでIn-DBを使ったマクロを作成する

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

こんにちは、小澤です。

AlteryxのマクロとIn-DB、どちらもある程度Alteryxを使いこなしてる人向けの機能っぽい響きですねぇ。 今回は、これらをいい感じに両方使う方法を解説したいと思います。

そもそもなんだっけ?って話

さて、「ある程度Alteryxを使いこなしてる人向けの機能っぽい響き」と書いてしまったので、それぞれがどんなものだったか簡単に解説したいと思います。

Alteryxのマクロって何よ?

Alteryxでマクロを利用するとよくやる処理を共通化できます。 公式のツールの中にも実体はマクロになっているものを多くあり、使いこなせば便利な機能です。

マクロの作成方法は通常のワークフローと基本的には同じです。 異なるのは"処理の共通化"という目的があるため、 汎用化するためにインターフェースツールを使って設定値の一部を利用時に変更できるようにするという部分にあります。

具体的なマクロの作成方法は以下に記載していますのでそちらを参照してください。

マクロを使うにはMacro Input/Outputツールを使うことになるわけですが、残念ながらこれらのツールはIn-DBには対応していません。

ツールのIn-DB対応・非対応ってどういうこと?って話はこの後すぐのIn-DBの簡単な解説にて記載します。

AlteryxのIn-DBツールって何よ?

続いてはIn-DBツールの解説といきましょう。

In-DBツールは単一のツールというわけではなく、In-DB機能を使うための複数のツール郡となっています。 これらはAlteryx Designer上ではIn-Databaseタブに存在しています。

では、このIn-DBとはどういった機能かというと、"処理をデータベース側"で行う仕組みを提供するものとなります。

Alteryxでは通常、ワークフローを実行する端末上のメモリにデータを読み込んで処理を実行します。 これは入力がファイルである場合はもちろんのこと、データベースであっても同様、指定したデータを一度すべて取得する処理が発生します。 Input Dataツールのみがデータベースとアクセスして、以降のツールはすべてローカル上に取得したデータに対して行うことになります。

一方In-DBツールを使うと、それらの処理がデータベース側で行われます。 In-Databaseタブにある末尾に"In-DB"とついているツールの処理はデータベース上で実行さます。 Data Stream Outというローカル上からデータを取得するツールに処理が渡されるまではすべてデータベース上での実行となるわけです。

そのため、処理の負荷がかかるのがデータベース側となり、ローカル端末で扱いきれなかった量のデータを扱うことも可能になるという仕組みとなります。

具体的なIn-DBツールの使い方に関しては以下をご参照ください。

In-DBツールを利用する場合の注意点として、通常のツールとの相互接続はできません。 それぞれデータベースはデータベースの中で、ローカルはローカルの中での処理となるわけです。 In-DBツールと通常のツールとのつなぎにはData Stream In/Outというツールがあり、それらを経由してデータを転送する必要があります。 それぞれ、以下のような役割になっています。

  • Data Stream In : 通常のツールから出力をIn-DBで使うためにデータベース側に上げる
  • Data STream Out : In-DBで処理した結果を通常のツールで使うためにデータベースから取得する

In-DBなマクロを作る方法

さて、Macro Input/Outputツールは上述の通り通常のツールなのでIn-DBツールとの接続はできません。

マクロを使う前にData Stream In、実行後にData STream Outとすることも可能ですが、それではIn-DBを使う利点が活かせません。

そこで、In-DBで接続化可能なMacro Input/Output相当のツールが欲しくなります。 実はなんと、そんなツールが存在してます!それがMacro Input In-DB、Macro Output In-DBツールです。 そのまんまな名前ですね。

簡単なワークフローで動きを確認してみましょう。

マクロ部分を作る

まず、以下のようなマクロを作成します。

まず最初のMacro Input In-DBでは以下のような設定をしています。

上部の設定はテンプレートとして利用する接続先情報です。 通常のMacro InputではテンプレートとしてInput Dataツール相当の機能が用意されていました。 In-DBバージョンなのでそれに該当するものをConnect In-DBツールと同様の方法で設定します。 下部は通常のMacro Inputと同じ項目となっています。

続いての利用しているFilter In-DBツールでIn-DBを利用する際のインターフェースツールの使い方を見てみましょう(とはいえ、これも実は同じなんですが)。

ツール自体の設定は以下のようになっています。

このFilter In-DBツールに接続したDrop Downツールは以下のように手動で項目を設定しています。

これらを接続するActionツールでは、対象となる値をDrop Downで選択したものに置き換える設定をしています。

Drop DownツールおよびActionツールの設定は通常のマクロと同じであることが確認できるかと思います。

In-DBツールといっても処理はデータベース側で行いますが、設定値は実行時に渡されるものなので、このように設定の変更に関する部分は通常のマクロと同様にそのまま行えます。

Macro Output In-DBツールは通常のMacro Outputツールと同様、出力名とアンカーに表示する値の設定のみとなっているので割愛します。 また、今回は設定していませんが、Interface Designerを使った設定も通常のマクロと同様に設定可能です。

マクロを使うワークフローを作る

続いて、このマクロを利用するワークフローを見てみましょう。 全体像は以下のようになっています。

In-DBを使ったマクロなので、In-DBツールから接続する必要があります。 今回は特に前段の処理をしていないため、Connect In-DBの後にそのまま接続しています。

マクロの設定は先ほど作ったDrop Downのみなので、以下のようになっています。

ローカル環境にデータを取得するData Stream Outツールの設定は取得時にソートする必要があるかというもののみでですが、今回は必要ないのでデフォルトのままにしています。

マクロの設定を変更して、Browseツールで出力結果を確認すると以下のように設定したもののみが取得できているのが確認できます。

おわりに

今回は、AlteryxでIn-DBを使ったマクロを作る方法を紹介しました。

入出力がIn-DBの接続となる以外は通常のマクロと同じように作成できることがわかっていただけたかと思います。 また、入力は通常のMacro Inputでマクロ内部でData Stream Inツールを使って出力はMacro Output In-DBで行う、あるいはその逆でMacro Input In-DBとMacro Outputといったマクロの実装ももちろん可能です。

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

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

alteryx_960x400