本記事では、「Alteryx Disigner」においてハマりがちなポイントや頻出の操作をまとめています。検証に使用したAlteryx Designerの想定バージョンは2020.4.6です。
Alteryx Designerとは?
1. 作業用に全てのデータを使用すると実行に時間がかかってしまう
2. 漢字を含むデータを扱うと文字化けしてしまう
3. 選択ツールで並び順が消えてしまう
4. 日付でファイル名を付けたい
5. バッチファイルを起動したい
6. 任意の列で値が存在するデータを抽出したい
7. 最初に登場した時のみ、フラグを立てる
8. 外部結合をしたい
9. 正規表現ツール以外で正規表現を扱いたい
10. 複数ファイルを一括で読み込みたい
まとめ
本記事で扱うAlteryx Designerの概要は次の通りです。
「Alteryx(アルテリックス、アルタリクス)」は、米Alteryx社によるデータプレパレーションツール兼セルフサービスBIツールです。
GUIを用いた直感的なインターフェースを採用し、プログラミングを行うことなく、データ分析の前処理、データの高速分析、統計解析や機械学習、分析結果の可視化などが実現できます。
Alteryx上の具体的な操作として、処理や動作を示すアイコンを、マウスでドラッグ&ドロップし、必要な設定を行って線でつないでいくと、データ分析のワークフローを作成できます。また、作成したワークフローは保存して、再利用や共有が可能です。
データ分析においてコードを書く必要がないため、誰でも分析プロセスを作成して実行できるのが特徴です。そのため、ITエンジニアやデータサイエンティストに留まらず、ビジネスデータを取り扱うエンドユーザーでも使用できます。
特にデータの前処理に関しては定評があり、弊社のデータアナリティクスチームでも活用しているBIツールの「Tableau」との相性も抜群です。
ここからハマりがちなポイントに関して順番に説明していきます。
Alteryxワークフローを作成して実行する時に、データ量が膨大である場合や加工処理が複雑である場合、全体の処理時間が掛かります。
検証時などに、データ入力ツールの設定でレコード数を制限することで、短い処理時間での実行が可能です。
注意点としては全データを処理するわけではないため、パターンが全て含まれているか確認する必要があります。
Alteryxでデータ加工を行った場合、漢字が入ったデータで文字化けしてしまうことがあります。データ入力ツールとデータ出力ツールの2つでCSVファイルを指定した場合、初期で読み込む文字コードが「ANSI/OEM – 日本語Shift-JIS」となっています。読み込むファイルや読み込むファイルや書き出すファイルに合わせて適切に文字コードを設定することで、文字化けの回避が可能です。
(「UTF-8」など)
選択ツールでは、チェックボックスの上部をクリックすると、フィールドが昇順→降順の順でソートされます。
選択ツールの属性の並び順はデフォルトでは、入力された属性の順番が入りますが、一度並び替えてしまうと元の並び順が消えてしまいます。
一番上の行にチェックを入れる際に誤ってクリックしがちなので注意が必要です。
なお、直後であればキーボードで「Ctrl+Z」を押すことで元に戻りますが、処理に時間がかかります。
データ出力ツールでは、そのままの設定で現在日時を出力することができません。
現在日時ツールで取得した文字列を加工することで、データ出力ツールに日時の付与を行います。
①「フィールドからファイル/テーブル名を取得する」にチェックを入れる。
②「ファイル/テーブル名に接尾辞を追加する」を選択する。
③「ファイル名またはファイル名の一部を含むフィールド」で現在日時ツールで取得した「DateTimeNow」を選択する。
④現在日時(DateTimeNow)のデータを出力ファイルに含むかどうかで、
「出力でフィールドを保持する」の内容を変える(今回はチェックを入れる)。
⑤ファイル名にアンダーバー「_」を付け加える。
アンダーバー「_」をつけることで、ファイル名と日付を区別して視認性が上がります。
Alteryx Designerでは開発者カテゴリのコマンド実行ツールを利用することで、バッチファイルの実行が可能です。
Alteryx Designerを利用する上で、データの前処理として、任意の列で値が存在するデータを抽出したい場合があります。
フィルタツールの「空ではない」もしくはIsEmpty関数を使うことで、
任意の列を必須とみなして加工が可能です。
ここで空のデータに加えて、nullのデータもフィルタで除外されます。
複数行フォーミュラツールを利用します。
複数行フォーミュラツールでは[Row-1:属性名]と指定することで、1つ上の行の値を取得することができます。
例えば、下の例では、1個前のFLAG1が0であるか確認しています。
つまり、FLAG 1で1が未登場である時のみ、FLAG 2を1としています。
Id | SEQUENCE | DATETIME | FLAG1 | FLAG2 | |
12345 | 1 | 2022/02/17 10:44:15 | 0 | 0 | |
12345 | 2 | 2022/02/28 06:21:42 | 1 | 1 | |
12345 | 3 | 2022/02/29 13:15:32 | 1 | 0 | |
12345 | 4 | 2022/02/30 10:44:15 | 1 | 0 |
- FLAG 1の作成式
IF [SEQUENCE] == 2
THEN 1
ELSE 0
ENDIF
- FLAG 2の作成式
//1個前までに登場しているか[Row-1:FLAG1]で確認
IF [FLAG1] == 1 AND [Row-1:FLAG1] != 0
THEN 1
ELSE 0
ENDIF
Alteryx Designerで外部結合は、単独のツールアイコンでは実装できません。結合ツールとユニオンツールを組み合わせる必要があります。
正規表現ツールを使った場合、正規表現の文字列を個々のツールアイコンごとに設定する必要があります。そのため、判断する正規表現の文字列が多い場合、外部からファイルでリストを用意して使用することが望まれます。ファイルから読み込んだ列を利用した正規表現処理は、フォーミュラツールで実現可能です。
REGEX_Match :一致しているか否かを返す
ここで一致は-1(True) 、不一致は0(False)
REGEX_Replace :文字列を置換する
String :元の文字列
pattern :正規表現
replace :patternに一致したものをreplaceの内容で置換する
icase :1(英大文字と小文字を区別しない)
:0(英大文字と小文字を区別する)
Alteryx Designerではマクロを扱うことが可能です。
マクロの一種である「バッチマクロ」を利用することで、複数ファイルの読み込みが可能です。
今回はAlteryx Disignerを使い始めの時に、ハマりがちなポイントや頻出の操作をまとめました。Alteryx Designerではプログラミングを行わずに、誰でもデータ分析の前処理、データの高速分析、統計解析や機械学習、分析結果の可視化が実現できます。
使い始めの時にこちらの内容をご参照いただけましたら幸いです。